Muneyuki Noguchi edited this page Mar 22, 2015 · 2 revisions

What's uim?

Uim is a multilingual input method library, whose goal is to be a flexible development platform and useful user environment for input methods of all languages.

Features of uim

There are some input method frameworks in the world. What is the feature of uim and how it is different from other input method frameworks?


uim works in many environments, including of course general desktop systems such as GNOME or KDE. It also supports Linux Zaurus, Mac OS X.

uim on Linux Zaurus uim on MacOS X

Just a library

Many input method frameworks such as XIM are implemented as client/server systems. But uim is a library, not a server.

Most users don't need an input method system at all or only need simple, table-based converters. Such users don't require or are unwilling to install a complex input method system, so we want to keep uim simple.

What applications can I use with uim?

  • All X applications. (You can use them with uim-xim.)
  • Gtk+ applications such as gedit. There are two way to use uim. Through uim gtk-immodule directly, or through uim-xim. We recommend using uim through gtk-immodule directly.
  • All Qt applications. There are two ways to use uim, through XIM or Qt-immodule. If you want to uim with Qt-immodule with old Qt3, you need to use a patch.
  • All console applications. (You can use them with uim-fep.)
  • Emacs (You can use it with uim.el).
  • All Mac OS X applications. (You can use them with MacUIM.)
application type/module uim-xim uim-gtk2 uim-gtk3 uim-qt3 uim-qt4 uim-fep uim.el MacUIM
GTK+ 2 applications Yes1 Yes - - - - - -
GTK+ 3 applications Yes1 - Yes - - - - -
Qt 3 applications Yes1 - - Yes2 - - - -
Qt 4 applications Yes1 - - - Yes - - -
Other X applications Yes - - - - - - -
console applications - - - - - Yes - -
Emacs - - - - - - Yes -
Mac OS X applications - - - - - - - Yes
  1. not recommended due to its feature limitation
  2. need to use a patch

What Languages and Input modules can I use with uim?

And you can input many languages by using uim-m17nlib, see (http://www.m17n.org/m17n-lib-en/)

Why is uim written in C?

We can ensure a stable ABI, which is crucial to uim since it's a basal library. Particularly, maintaining an ABI in C++ is sometimes difficult.

Why does uim have an embedded scheme interpreter?

Because C is too primitive to work with directly. Scheme lets us be more productive.