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:

Context

Key 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.

Context

Key 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.

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

Context

Typed

Text stored

Display

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.

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.