What is Keyman Desktop?

Keyman Desktop is a program that allows you to use custom-designed keyboards for input. This makes it possible to input in languages such as Burmese, Amharic or Urdu, or even just to use alternate keyboard layouts for other languages such as English or French. It features an on-screen keyboard and close integration with Windows. Keyman Desktop has been designed with ease-of-use in mind. You can download packages of keyboards and fonts from the Internet and install them in with a single mouse click.

What is Keyman Developer?

Keyman Developer provides the tools to allow you to create your own keyboard input methods. These can range from a simple remapping of keys on your keyboard, to complex phonetic input of languages such as Burmese, Amharic, or Chinese.

You can create keyboards with a simple point-and-click wizard, or through a powerful keyboard programming language. In either case, Keyman Developer includes all the tools you need to develop, test and distribute these keyboards.

Develop: Keyman Developer includes, among other things, a keystroke identifier, a powerful character map, projects and comprehensive context-sensitive documentation. The editor includes features such as syntax highlighting, bookmarks and box selection. Also available are a bitmap editor for creating keyboard icons, a keyboard documenter for creating documentation and on-screen keyboards and HTML and XML editing.

Test: When you have created a keyboard, you need to test it. Keyman Developer provides a fully interactive debugger and a keyboard regression test suite to assist you in testing your keyboard.

Distribute: Once you have created your keyboards, you can package your keyboard with fonts and documentation, for simple one-click installation by others. You can even include Keyman Desktop itself in a package, so that others can download a single file from the Internet and start using your keyboard in seconds. Keyman Desktop packages also include deployment features.

Contextual Input

Keyman Desktop can read the characters around the cursor on the screen. We call these characters the context. For example, when using a Keyman Desktop Lao keyboard:

ContextKey press

Keyman Desktop notes that the diacritic is the last character in the context and rejects the input because it is not correct to have the same diacritic twice over a single character.

ContextKey press

Keyman Desktop notes that a vowel () is the last character in the context and rejects the diacritic vowel, because diacritic vowels are only allowed on top of consonants in Lao.

Manipulation of Context

As well as being able to read the characters already on-screen, Keyman Desktop can change them. This is important, as it allows the computer to transparently reorder characters for consistency and correct display.

For example, with our Lao keyboard mentioned above, diacritic tone marks (, ) need to be stored after diacritic vowels. The example below shows one reason why:

When the text is stored in the order typed, this is how it displays:

ContextTypedText storedDisplay

However, Keyman Desktop can reorder the text as it is typed, resulting in the correct display below:

ContextTypedText storedDisplay

Even with modern smart rendering (e.g. OpenType, Graphite, AAT), character reordering is important. The smart rendering engines will move diacritics to ensure they do not overlap as in the first example above, but only if they are stored in the correct order. So the first example will still display incorrectly.

Even if the computer displayed the text correctly, the text store would be inconsistent. Why is consistency important? If the input of text is not consistent in spelling and internal character ordering, you will be unable to search for text or run automatic tools to process the text, thus removing one of the primary advantages in using a computer in the first place.

Languages with non-visual text ordering

Contextual manipulation is not just important for ensuring input accuracy. For some languages, such as Burmese, the text is stored by applications in a different order to its display order. If contextual manipulation is not possible, then you must input the text in this stored order, which is confusing, reduces accuracy and hampers rapid input. Keyman Desktop makes it simple to input in visual order for these languages.

Phonetic Input

Another area in which Keyman Desktop excels is making phonetic keyboards. You may need to input text in a language that does not use a Latin script. While it may possible to obtain a keyboard with this language printed on the key caps, or even stickers to put on your normal key caps, this will probably not be practical. With Keyman Desktop, you can create a phonetic keyboard that will transliterate your Latin/English keystrokes into the language as you type.

A sample of a Tamil phonetic keyboard is available from the Tamil keyboards home.

Visual Keyboards

Once you have created a keyboard, you need to make sure it is easy for others to use. Keyman Desktop 7.0 provides an on-screen keyboard allowing users to see the layout visually. The on-screen keyboard can also be printed or displayed in a web page for quick reference.

Mnemonic Layouts

Not all European keyboards have the same basic "QWERTY" layout. If you wish, Keyman Desktop will detect the physical keyboard you are using and will rearrange the keyboard you have designed to work more effectively with the physical keyboard.