On Tue, 31 Jul 2001, Manisha Joshi wrote:
I wanted to know abt the XIM (X input method) and the xkb support for Indian langauges.
XKB keyboard description files are in /usr/X11R6/lib/X11/xkb/symbols directory. In the newest X releases (X11R61 and higher) there are two "standard" input methods: the original one, working through the xmodmap utility, and the new one called Xkb (X KeyBoard). Both require a keyboard description file. With xmodmap you can directly use keyboard map that you have defined. xkb requires you to compile keyboard defination file and create one with .xkm extention. This .xkm file can be used later on by xkb.
Do we have to have ur own XIM installed to support input in Devnagri ? What is this XIM all about, is it like a key-board handler routine which maps conjuncts and combination of characters to a single glyph (which is required in Devnagri) ?
XIM/XOM support was built into Xlib originally by Japanese people to enable complex Japanese language. It was originally designed and developed with CJK (Chinese-Japanese-Korean) script in their mind. In XIM an input method server runs that handles all input mechanism. XIM is not very much suitable for Indic scripts and it is overcomplicated. Moreover there is no document available describing how to write an XIM. XOM too is not very much suitable for Indic script as it is built on top of underlying "draw string" functions in Xlib. The underlying API functions in Xlib don't pass information that is required for our complex Indic scripts. For example, Indic scripts are phonetic and characters may change their position and appearance as the new characters are typed in. There is no client or server side support available to handle such thing.
As XIM and XOM are not very much suitable for Indic script, providing a solution based on this is very difficult.
There are two alternative solutions to handle these things. The first is to modify underlying framework (sometimes called "soft changes") so that "draw string" functions change their behaviour to render Indic script characters _properly_. The other solution is to completely bypass "draw string" functions and introduce new API in Xlib so that client can pass necessary informations to the server.
Documents on XOM/XIM API are available with source code of XFree86.
- Keyur