(TODO: add documentation on group)

The Filter allows a user to reduce the number of characters displayed in the character map. The standard filter options used are by font name or block name.

The Character Map Grid displays each character in a square, with a visual representation of the character and the Unicode value displayed at the bottom of the square. Each font group is divided into a block headed by the font name.

The Filter allows a user to reduce the number of characters displayed in the character map. The standard filter options used are by font name or block name.

The filter format for a range is: [U+]XXXX-[U+]YYYY, where U+ is optional, XXXX is the starting Unicode value and YYYY is the finishing Unicode value.

The filter format for a range is: [U+]XXXX-[U+]YYYY, where U+ is optional, XXXX is the starting Unicode value and YYYY is the finishing Unicode value.

The filter format for a range is: [U+]XXXX-[U+]YYYY, where U+ is optional, XXXX is the starting Unicode value and YYYY is the finishing Unicode value.

The Filter allows a user to reduce the number of characters displayed in the character map. The standard filter options used are by font name or block name.

">" placed at the start of an entry will only show characters in the currently selected Character Map font. This is helpful when trying to determine which characters a given font supports.



Example: >LAO



finds all characters with names starting in "LAO" in the current font

"<" placed at the start of an entry will search Unicode block names instead of character names. This is helpful when searching for characters within related blocks



Example: <Thai



finds the Thai Unicode block

Using "*" in an entry serves as a wildcard for any number of places in that entry. For example, searching for "greek*alpha" will find characters whose Unicode names begin with the word "Greek" and contain the word "Alpha" any number of places later. This is helpful when searching for characters that share a common element in their names (e.g. capital).

Using "?" anywhere in an entry serves as a wildcard for that single place in the entry. For example, searching for "s???e" will return both the SPACE and the SMILE characters, among others.



Example: 1000-119F



finds all characters between U+1000 and U+119F (inclusive) - the Myanmar alphabet in this case

Example: LATIN * LETTER [AEIOU]



finds all all Latin A,E,I,O or U vowel combinations

"$" placed at the end of an entry will match from the end of a Unicode character name. This option works best when used with "*" or "?".



Example: LATIN * LETTER A$



finds only "a" and "A"

Click OK to save changes and close the dialog.

Click Cancel to close the dialog without saving changes.

Keyboard Editor page consists of:

  • Details
  • Layout
  • Icon
  • On-Screen
  • Touch Layout
  • Build

The name of the keyboard is displayed in Keyman Configuration, in the tray menu and in many other places. It should be a descriptive name, in any language, but remember that some applications may use a font that does not include the language you are writing the keyboard name in. Don't include a version number, help information or hotkey in the name.

This corresponds to the following source line:

store(&name) 'My Keyboard'

Specifies the platforms for which this keyboard is designed. Where possible, use more generic targets, for example, use

mobile
instead of both
androidphone
and
iphone
. preference, use
any
.

Your keyboard should be either Unicode or Codepage based. Most keyboards today will be Unicode. If you are designing in the source editor, you can create a keyboard that is includes both Unicode and Codepage (or "ANSI") rules.

This corresponds to either of the following source lines:

begin ANSI > use(main)
begin Unicode > use(main)

Copyright details for the keyboard are displayed when the keyboard is installed. They can also be viewed in Keyman Configuration.

This corresponds to the following source line:

store(&copyright) '© 2006 My Company'

The message provides some additional information to a user of your keyboard, when they install the keyboard.

This corresponds to the following source line:

store(&message) 'Here is a message about a keyboard'

The Keyboard Version documents the version of the keyboard.

A keyboard version should be updated whenever there are changes to a keyboard. The good principles to follow are:

  • Increment the major version number for a keyboard that has significant new functionality.
  • Increment the minor version number for changes that impact functionality but not in a significant manner.
  • Optionally, use a third number for bug fixes.

This corresponds to the following source line:

store(&keyboardversion) '1.1.2'

Note: there is a difference between &keyboardversion, which documents the keyboard version, and &version, which determines which version of Keyman a keyboard will run with.

In this field, enter information about the keyboard for your own reference. These comments will only be visible in the source file, and not to users of your keyboard.

The comments are placed at the top of the source file, e.g.:

c Version 1.2 - fixed a bug with the 'k' key
c Version 1.1 - improved matching on vowels
c Version 1.0 - initial version

To select another key in the keyboard, either:

  • Click on the key with the mouse, or
  • Press and release the Ctrl key to choose with the keyboard

Select this option to tell KeymanWeb to flag text entered by this keyboard as right-to-left (e.g. Arabic, Hebrew)

A simple line of text to show under the On Screen Keyboard in KeymanWeb. Can contain HTML formatting and links. Mutually exclusive with the Help File box

More complex help can be included by including an external file. See the European Latin keyboard in Samples for a comprehensive example.

Choose a help file to include in the keyboard

Compiles the keyboard for KeymanWeb. Two output files will be generated: [filename].js and [filename]_load.js. The KeymanWeb Tutorial contains more information about the difference between the two output files.

Tests your KeymanWeb keyboard in an Internet Explorer embedded window

The Features grid controls which additional file components are included in the keyboard. Each of the features relates to a system store. Here are the file components:

  • Embedded JavaScript
  • Embedded CSS
  • Web Help
  • Include Codes
  • Desktop On-Screen Keyboard (auto-included if Targets is any)
  • Touch-Optimised Keyboard (auto-included if Targets is any)
Icon will be automatically included when a new keyboard project is created.

This will open a selection dialog allowing you to choose a feature to add to the keyboard project. Adding a feature will add an extra tab to the editor, and add the corresponding store to the keyboard source

Depending on what is included in the Feature Grid, you can select a feature from the grid then click on Edit... This will take you to the corresponding tab and let you make changes.

Removing a feature will not delete the component file, but will just remove the store from the keyboard source.

The Change option allows the editing of the icon filename.

The Export option allows the exporting of the new image to a selected location.

The import option allows for the loading of an existing icon from a selected location.

The toolbox allows for the changing of the colours, addition of text and shapes. It also allows for the moving of the icon around the canvas and also a preview of the icon is displayed.

Click on a colour from the box to apply the colour onto the Keyboard's icon. You can see the Foreground Color displays the colour you chose. To deselect the colour, click on the X mark on the corner left of the colour box, or choose another colour.

This tab allows you to edit the visual representation of your keyboard layout. The content on this tab is stored in the .kvks file associated with your keyboard. The visual representation is used only in desktop and desktop web; however if no touch layout is defined, this layout will be synthesized into a touch layout automatically.

An On-Screen keyboard is optional but in most keyboards is recommended. The On-Screen keyboard may not always match the actual layout identically, because you may choose to hide some of the details of encoding from the interface presented to the user.

This keyboard layout can also be printed or included in HTML or other documentation. The editor allows you to export the file to HTML, PNG or BMP formats.

If this option is checked, when the Fill from layout button is clicked, then keys without corresponding rules in the Layout will be filled with the base layout character.

A custom on screen (visual) keyboard can be included with your new keyboard. Check this option to display the on screen keyboard and options available.

On European Keyboards a 102nd key is added. This allows you to map a character on the 102nd key.

This option allows the user to choose whether the keyboard icon is displayed on the taskbar and to customise the look of the icon. Check the Include Icon on the Taskbar to display the icon bitmap editor.

Allows for more combinations and also leaves the left Ctrl and Alt keys for general keyboard shortcuts, for example Ctrl C for Copy and Ctrl V for Paste.

This option adds the keyboard to the current active project.

Select this option to begin the compiling of the keyboard. The success of the compile is displayed at the bottom of the screen. If errors are displayed, click on the Start Debugging button.

Insert Copyright

This allows for the insertion of a copyright symbol if needed.

Install the compiled keyboard on to the computer.

To test on other platforms, open one of the debug host addresses on your device. Your device will need to be on the same network as this computer.

You can test within the web browser on your device, or in the native app if you have it installed: just click the Install button on the debugger web page.

The Send to email function makes it easier to open the addresses on your mobile device without having to enter them manually.

This option will open the folder that contains all the files saved for the new keyboard project.

This option will allow for the debugging of a keyboard that could not be compiled and specific errors are displayed. It will direct the user to the source code of the keyboard file.

Uninstall the keyboard from the computer.

This option allows the user to upload the compiled keyboard to Tavultesoft website to allow the sharing of the keyboard files.

The change button allows the change of the filename and/or location of the on screen keyboard.

Your keyboard should be either Unicode or Codepage based. Most keyboards today will be Unicode. If you are designing in the source editor, you can create a keyboard that is includes both Unicode and Codepage (or "ANSI") rules.

This corresponds to either of the following source lines:

begin ANSI > use(main)

begin Unicode > use(main)

The message provides some additional information to a user of your keyboard, when they install the keyboard.

This corresponds to the following source line:

store(&message) 'Here is a message about a keyboard''

Copyright details for the keyboard are displayed when the keyboard is installed. They can also be viewed in Keyman Configuration.

If the Unicode value is known, enter the value and the corresponding character will be displayed on the key.

To add additional details about the keyboard. The message will be displayed when the keyboard is selected in Keyman Configuration.

To select another key in the keyboard, either:

Click on the key with the mouse, or

Press and release the Ctrl key to choose with the keyboard

KVK Filename

Displays the file path and file name of the Keyman Visual Keyboard (KVK). Press the END key on your keyboard to view the filename or click on the Change button to change the filename and location.

If selected, then the visual keyboard will only be used if the current underlying layout is active.

Display 102nd Key

On European Keyboards a 102nd key is added. This allows you to map a character on the 102nd key.

Allows for more combinations and also leaves the left Ctrl and Alt keys for general keyboard shortcuts, for example Ctrl C for Copy and Ctrl V for Paste.

This allows for a bitmap/picture to be displayed on the selected key. Click on the Browse button to select the bitmap.

Export the keyboard to other file formats (HTML, BMP, or PNG), for use in documentation. Export the structure of the keyboard to XML format for automated processing.

Import an existing on screen keyboard layout.

Use the same layout as the new keyboard, assigning the same characters to the same keyboard letters.

Allows the user to enter text to be displayed on the selected key.

The Touch Layout tab is used to create the visible representation of the keyboard layout for touch devices. It works similarly to the On Screen Keyboard Editor conceptually, but has a number of additional features specific to touch. Keys on the touch layout trigger rules within the normal Keyman keyboard; if no rule is defined for a given key, it will be given output if it has a standard code beginning with K_, or if it is a Unicode value code, starting with U_.

Keyman Developer Debugger

Debug information must be included in the compile keyboard before the debugger process can be started. From the Keyboard menu select Include Debug Information. The debug information will display the error sources when compiling.

The debugger can be used without the debug information by clicking on Test without debugger.

Enter the name for your new keyboard. Click on the Browse button to change the location of the new keyboard.

You can include an image file that will be displayed to the left of the install details when the package is installed. This image should be 140 pixels wide and 250 pixels high.

The readme file can be displayed after the installation of the keyboard package, but can also be accessed from the keyboard folder at a later time. The file must be loaded under the Files tab, add option before being able to be selected from the drop down list.

This option will allow you to create a folder on the Start menu when the keyboard package is installed.

The uninstall shortcut will be added automatically to the shortcut menu list when the package is installed.

This option allows the user to add new files to the package.

To delete the selected shortcut menu item from the Start menu folder.

This allows for the insertion of a copyright symbol if needed.

A readme file can be a text file (ANSI, UTF-8, or UTF-16), or an HTML file (recommended). Other file types are also acceptable, but the package installer will load the file in a separate program.

You can include an image file that will be displayed to the left of the install details when the package is installed. This image should be 140 pixels wide and 250 pixels high.

You should try installing your package on your system before distributing it, to ensure that all files are installed correctly. If you can, try installing your package on several different machines.

Displays the output path and filename of the file when the package is compiled.

Creates a self-extracting installer consisting of the package plus Keyman or another Keyman Engine product that was created with the Branding Pack.

Displays the output filename and path for the self-extract installer.

Chooses a product installer, such as the Keyman installation source. You can download Keyman installers from keyman.com.

This option allows the user to add the compile package to the project, keeping all files together in the one location.

This option checks the package has all the required files and for any errors. The success of the compilation is displayed at the bottom of the screen.

This option will install the package on the computer. A message will be displayed as to the success of the install.

To add a new menu item to the list of shortcuts to be displayed in the Start menu folder created when the keyboard package is installed.

Opens the source folder of the selected file.

This option will open the folder the selected package is located in.

This option allows the user to edit the selected file if the appropriate editor is available.

This option allows the user to remove a selected file from the list.

This option will uninstall the package from the computer. A message will be displayed as to the success of the uninstall.

This option will enable the developer to upload the package to the Tavultesoft website.

Displays the location of the selected file.

File Type

Enter the details of the file type being added to the keyboard package.

Enter the name of the author or authors of the keyboard package.

Enter the copyright details of the keyboard package This information will be displayed with the version, author and message information when the package is installed.

Enter the contact email address for the keyboard package.

Package Name is the name that will be displayed when the package is installed. It should be a descriptive name, in any language, but remember that some applications may use a font that does not include the language you are writing the keyboard name in. Don't include a version number, help information or hotkey in the name.

The version number allows the user to check whether they have the latest version of the keyboard. The format should be 'major.minor[.subversion]'. Each number should be an integer, and you should avoid non-integer version strings. See help for more details.

The website details for the keyboard package if available.

The text to be displayed for the selected file as a menu item in the Start up folder that is created when the package is installed.

Start Menu Path

Enter the path of the start menu to be displayed when the keyboard package is installed.

This will display all the files that have been added to the keyboard package. It allows for the addition and removal of files, the entering of file details and the editing of any of the files listed if the appropriate editor is available.

This option allows the user to enter details and other additional information about the selected file.

The Project Manager allows you to manage all the files related to a keyboard layout in a single location.

The name of the developer of the keyboard. This is either your full name or the organization you're creating a model for.

We recommend the name of the language, dialect, or community that this model is intended for. The name must be written in all the Latin letters or Arabic numerals.

Who owns the rights to this model and its data? Typically, you can use the automatically generated default value: © 2024 Your Full Name or Your Organization.

If this is the first time you've created a lexical model for you language, you should leave the version as 1.0. Otherwise, your version number must conform to the following rules: A version string made of major revision number.minor revision number.

Specifies the default BCP 47 language tags which will be added to the package metadata and project metadata.

To add a language tag, click the Add button to bring up the “Select BCP 47 Tag” dialog box.

Click the Edit button to bring up the “Select BCP 47 Tag” dialog box again and edit the language tag.

Click the Remove button to delete the language tag.

Specifies the base path where the project folder will be created.

Browse for a folder or create a new folder to save the project to.

An Author ID is a unique identifier used to distinguish you from others who have the same or similar names.

Choose your primary language which generated from the “Select BCP 47 Tag” dialog box.

Enter a unique name of the model. You can use the name of the language, dialect, or community that this model is intended for.

Keyman automatically generates a model ID for you, given all the information already filled out. Model ID helps Keyman sorts and organizes different lexical models.

Specifies the base path where the project filename (.model.kpj) will be created.

Enter information about the model.

Click Cancel to close the dialog without saving changes.

Wordlist tabs have two views: Design, and Code. Changes to one view are reflected immedaitely in the other view. Wordlist files should be stored in UTF-8 encoding (preferably without BOM), and tab-separated format.

Every line of the tab-separated format file is shown here, and can be edited directly. For most wordlists, it will be more effective to use an external dictionary tool, such as SIL Fieldworks or SIL PrimerPrep to generate the wordlist from a text corpus, and use this tab just to preview the contents of the file.

The Delete row button will delete the selected row in the wordlist.

The Sort by frequency button has no effect on the functioning of the wordlist, but can help you, the editor, by showing more common words earlier in the list.

Editor windows in Keyman Developer supports standard Windows editing keystrokes. Many file formats, including .kmn, .kps, .xml, .html, .js and .json, support syntax highlighting. The text editor in Keyman uses the Monaco component from Visual Studio Code, so all the functionality available in that editor is also available here.

Attempt to identify the fonts on your system that will support the characters. You can quickly change fonts by clicking on a font name in the grid of identified fonts.

Display the Unicode value of the selected character.

The message window appears at the bottom of the screen, or floating in a toolbar window. It contains a list of error and warning messages returned from a compilation session. You can undock and dock the window by dragging its title bar.

The debugger input window is used for typing input to test the keyboard. In the top half of this window, input you type while testing your keyboard will be displayed, exactly the same as in use, with one exception: deadkeys will be shown visually with an OBJ symbol.

The lower half of the window shows a grid of the characters to the virtual left of the insertion point, or the selected characters if you make a selection. Deadkeys will be identified in the grid. The grid will show characters in right-to-left scripts in backing store order, from left to right. If there are more characters in your text than can fit on the screen, then only those that fit will be shown in the grid.

The idea in regression testing is to record a sequence of keystrokes and the output the keyboard produced, in order to test for the same behaviour when you make changes to the keyboard.

Use Start Log/Stop Log to record the input and output. You can then use Start Test to run the test again, or go the Options menu to clear the log, or save or load a test, or use the batch mode to run several tests in a row.



If the output produced while running a test is different to that stored when recording it, Keyman will halt the test on the line where the failure occurred, and activate Single Step mode.

In the Options menu, you can clear the log, save or load a test, or use the batch mode to run several tests in a row.

Pressing the Restart button will clear the keystroke log as well as clearing the text in the debug window.

This window shows the current keystroke state, and the sequence of keystrokes that were typed to arrive at this state.

This shows the elements that make up rule currently being processed: the context, the key, and also what the output will be. If the rule uses stores, the contents of the store will be shown in the right-hand column, with the matched letter in red.

Here all the lines that have been processed to this point are shown in a list. You can double-click on any entry in the list to display the line in the keyboard source.

This lists all the deadkeys that are currently in the context. You can select one from the list to see it highlighted in the debug input box. This information can also be seen in the character grid in the lower half of the debugger input window.

The About dialog displays copyright and registration information for Keyman Developer, and has a link to the Keyman website.

This dialog lets you check the virtual key code for any key combination (except Window reserved key combinations such as Alt + Tab). You can then insert the virtual key code into the last active edit window at the current cursor position.



Press Shift + Enter to insert the current virtual key code into your source at the insertion point.

You can see the virtual key codes for left and right Ctrl / Alt combinations by checking the "Distinguish between left and right ctrl/alt" checkbox.

To close the dialog, click the Close button or press Shift + Esc.