Well, after years of vague threats to do this, I finally got around to cleaning up my simple input methods for the X Windowing system, called MIM (MUTT Input Methods for historical reasons). I've been using variations of this system in our Unix-based multilingual applications over the last 6 years. http://crl.nmsu.edu/~mleisher/mim/mim-1.0.tar.gz Some of you are aware that I am not, and have never been, a fan of the XIM mess, and xmodmap has always been a problem because of the inability to add new KeySym's to X at runtime. In short, XIM is too complicated, and xmodmap is too simple. The MIM library provides a very small, simple C/C++ API that provides fairly sophisticated input methods that are very easy to add to applications. The biggest problem with this library is that you do have to add it to applications and recompile them. But the process is simple, unlike the XIM and xmodmap approaches. The input methods in the current distribution are all set up to transmit strings of hex codes representing UTF-16 text (our multilingual apps all use Unicode internally). These strings can in fact be pretty much any string. And one of the best features is that strings intended to be displayed on virtual keyboards are available as well. I am releasing this in its current state because I will not have time to do more work on it for a while, and other developers will undoubtedly be able to use or mangle the code for their own purposes as soon as they get it. Documentation is included as 2 HTML files: one for the API and one for the input method file syntax. Here is a list of things I think might be useful to work on: 1. Add table-based CJK input methods a la cxterm. Included is a Perl script called "mkcands" which will generate a compact linear lookup trie for this. 2. Write virtual keyboard programs in Xlib, GTK+, and Qt that can display the keycaps from the input methods. 3. Add more input methods! The set of input methods included in the current distribution are: "Arabic" "ATeX" "MLT Arabic" "Arabic Windows" "Armenian" "Standard" "English" "ASCII" "Euro Latin" "German Windows" "Georgian" "Heinecke" "Imnaishvili Arrangement" "MLT" "Greek" "XTerm Layout" "Greek Windows" "Hebrew" "Standard Layout" "Hindi" "Inscript Hindi" "VOA Hindi" "Japanese" "TCode" "Korean" "Standard Hangul" "Lao" "Standard Lao" "Russian" "YAWERTY (Phonetic)" "CRL YAWERTY (Phonetic)" "SerboCroat" "Cyrillic MLT" "Latin MLT" "Thai" "CRL Thai" "Vietnamese" "VIQR Implicit" "VIQR Implicit (Decomposed)" "Telex" ----------------------------------------------------------------------------- Mark Leisher Computing Research Lab Cinema, radio, television, magazines are a New Mexico State University school of inattention: people look without Box 30001, Dept. 3CRL seeing, listen without hearing. Las Cruces, NM 88003 -- Robert Bresson - Linux-UTF8: i18n of Linux on all levels Archive: http://mail.nl.linux.org/lists/
