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:
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.
https://help.keyman.com/developer/keyboards/
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