[Pkg-ime-devel] Re: ITP: kmfl -- Keyboard Mapping for Linux

Daniel Glassey wdg at debian.org
Thu Mar 16 09:49:13 UTC 2006

Some people asked for more explanation of what KMFL is[1]. Here is an
extended description from upstream. We are hopefully going to get a more
condensed version for the package description.


[1] http://lists.debian.org/debian-devel/2005/09/msg01161.html

KMFL stands for “Keyboard Mapping For Linux”. It is effectively a ‘soft’
input method for X11 systems. KMFL is based on an intuitive keyboard
description language that works well for the great majority of
non-ideographic scripts. KMFL allows complex keyboard ‘mappings’ or
‘layouts’ to be defined in a natural, declarative way using a high-level
language. It does not require a programming background in order to
implement new layouts. It enforces well-formedness, and provides helpful
visual feedback to the user as they type.

Although complex script rendering takes care of many of the complexities
of a non-roman script, it is important to be able to generate and edit
well-formed Unicode sequences of base and diacritic characters using the
keyboard. It is also important to enforce well-formedness at the
keyboard level. KMFL is able to do this by examining the surrounding
characters (known as the context) when text is inserted or changed.
Through this context-sensitivity, KMFL is also able to provide
progressive visual feedback to the user when multi-key sequences are
being entered, which is much more reassuring than when ‘invisible’
dead-key sequences are used. KMFL is also able to do in place editing to
handle character reordering based on the surrounding context.

KMFL is based on a commercial product for Windows called Keyman from
Tavultesoft. Keyman is a mature and successful product, and the
definition language has been refined and strengthened over a long period
of time in response to field needs. Tavultesoft was instrumental in the
development of KMFL. Tavultesoft developed the platform-independent
library, and SIL implemented the SCIM module. The result was KMFL, which
is 100% compatible with Keyman at the keyboard definition source level.

A good explanation of the benefits and use of Keyman is available at

KMFL is implemented as a platform-independent library together with an
IM-framework specific module. KMFL currently includes a SCIM (Smart
Common Input Method) module that passes the mapping work on to KMFL.

There are currently a large number of keyboards available for Keyman for
languages such as Tamil, Burmese, Lao, and Tlingit. KMFL allows these
keyboards to be used under Linux.

More information about the Pkg-ime-devel mailing list