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
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:
Two Basic mobile grids + long-press list.
Keyman Dev basic training
Create a folder for Keyman projects on your hard drive
In the past, Keyman files were stored in \Documents\Keyman\. Check to see if you have that directory and look at what is in there. If you have existing projects, you have two choices:
- Move them elsewhere and use the empty Keyman folder for Keyman 11+ projects
- Create a different data directory for Keyman that will only contain data managed by Keyman 11+
Starting with Keyman Developer 11, the project directory structure is in the format needed for uploading keyboards to the Keyman.com repository. It also includes the source files inside the folder so that they can be modified and updated.
Create a project in Keyman Developer
- Select Create a New Project from the Project menu
- Choose Basic.
(The option to import a Windows keyboard is about importing a Windows system keyboard to use as a starting point, not a Keyman keyboard)
- Name the keyboard, assign copyright, version, author
The default is "any". Since this includes all the others, we can leave this. Since Keyman 10, a single keyboard package can contain keyboards that will work on all major platforms.
- Set the Path
At the time of this tutorial, the default path was set to "Documents", which would make every keyboard a subdirectory of Documents. Not a good option! Make sure to select the directory you designated at the beginning of this document.
- Keyboard ID
The proposed name must be all lowercase. This is important for the Keyman.com directory structure.
- Choose Add language...
- Select the appropriate BCP47 (or ISO 639-3) code for each language the keyboard will support. You can usually find these codes on ethnologue.com. For Windows keyboards, the language code should also include the script. Keyman already inserts what it thinks the script is for the language you choose, but you can correct this if needed.
- Select OK
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
- It 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 long-press 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
- The 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 don’t work well on mobile except that you can specify the font used on the keyboard display.
- 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