Keyman Developer 10 - Beginning

See Keyman 10 Documentation on the Keyman website.
Watch the recorded Keyman Workshop Videos

Advance Preparation

Bring an orthography statement on the language.

Are tone marks or accents considered independently? Or are they considered part of a unit?  Should backspace remove just the tone, or should it delete the whole unit? Are digraphs considered separate characters or a unit?

Prepare keyboard layout grids for the language

Physical keyboards

Have participants fill out a keyboard grid for both the normal and shift layers for their target language. Here are two different grids to choose from:

​​ Keyboard Layout Keyboard Layout (2)

Mobile Keyboards

Two Basic mobile grids + long press list.

Keyman Dev basic training

Create a folder for the project on your hard drive

  • It is good to maintain a clear file structure. Later you may be submitting your directory with all the files to GitHub.
  • It is also important to always include the source files with the distribution so that they can be modified and upgraded.

Create a project in Keyman Developer

  • Save it inside of the directory you created.

Create a keyboard in the project

  • Note: Keyboard filename should be all lowercase for cross-platform compatibility.
  • Name keyboard
  • Choose targets:
    • ​Windows, Mac, Linux (not active yet), iPhone, iPad, androidphone, androidtablet
  • ​Add copyright, version
  • Add features
    • ​Desktop Onscreen keyboard
    • Touch optimized keyboard
      • ​Select template-basic.js
Create the layout onscreen first
  • Copy from your paper template
Switch to code view to create the logic
  • Might be better to avoid “dead” keys or comma/semicolon modifier keys if it isn’t too disruptive. Keys that modify after are more easily discoverable.
  • Should output NFC
  • Avoid using groups in this introduction to keyboard building.

Create an onscreen keyboard

  • Fill from layout

Create a mobile keyboard

  • Select template-basic.js
  • Import onscreen keyboard
  • Select basic template again
  • Arrange the keys as needed visually.
  • Add the output code
    • K_A - Virtual keys
    • U_NNN - Unicode direct output
      • If your physical keyboard is already outputting the code 
    • T_NNN - Touch variables for use in coding logic.
  • Create long press characters
  • Add the output code for the longpress characters (as explained above)

Compile the keyboard

Test the keyboard

  • Type a whole page of text in the language

Create the documentation for the keyboard

  • HTML file that will be shown on installation, within the app it will appear in help menus. (Use LibreOffice Write to create html docs, not Word.)
  • Include pictures of the layout

Make the Keyman Package

  • Name the package file (lowercase)
  • Specify the language(s)
  • Bundling fonts doesn’t work well on mobile except that you can specify the font used on the keyboard display.

Practise installing

  • On windows with Keyman Desktop
  • On Android with Keyman Mobile

Submit to Keyman

  • Using GitHub, but that is a whole lesson in itself. Find out how on this page.



Mnemonic vs Positional

Mnemonic can avoid having to create different keyboards for French/German/US/UK computers.  But much thought needs to go into the actuators used. Alt+GR is a good key in this situation

Contributors to this page: dhigby .
Page last modified on Saturday May 5, 2018 12:40:35 GMT-0000 by dhigby.


Creative Commons License
All content on this LingTranSoft wiki are by SIL International are licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.