From Wikipedia:Input method:
- An input method (or input method editor, commonly abbreviated as IME) is an operating system component or program that enables users to generate characters not natively available on their input devices by using sequences of characters (or mouse operations) that are natively available on their input devices. Using an input method is usually necessary for languages that have more graphemes than there are keys on the keyboard.
In very simplified terms, an IME is an application that takes Latin characters that you type on your keyboard and outputs them on your screen as non-Latin characters. The IME does this through a process called romanization, which is the transliteration of non-Latin language sounds into the Latin equivalents that most closely resemble them.
As an example, the Japanese written word for sake is
酒, also written as
さけ, and romanized as "sake". The IME's role is to act as a middleman between the keyboard and the screen, so that when we type "sake" it will intercept the keyboard's input, replace "sake" with
さけ (as chosen by us) and put the native characters on the screen instead of what we actually typed.
Input method framework
Most IMEs work as part of an input method framework (commonly abbreviated as IMF), which is an application that allows the user to easily switch between different IMEs. In fact, this is the exact same application that many of us unknowingly use everyday to switch between the different Latin keyboard layouts (e.g. English, Spanish, German, etc).
The most common, most diverse and most well supported input method frameworks are Fcitx (mostly used in KDE and other Qt-based environments) and IBus (mostly used in GNOME and other GTK-based environments). Less common ones include Uim, Scim, Hime, Gcin and Nimf. Additionally, Emacs is a very popular text editor that contains its own internal IMF.
List of available input method editors
The following table shows the IMEs for the various languages currently available in the Arch repositories and the AUR.
In order for your desktop environment to properly register an installed input method framework as available and assign it to handle user input, a set of environment variables must be configured accordingly. A good place to do so is
See Fcitx5 for more information.
GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx
See IBus for more information.
GTK_IM_MODULE=ibus QT_IM_MODULE=ibus XMODIFIERS=@im=ibus
See Uim for more information.
GTK_IM_MODULE=uim QT_IM_MODULE=uim XMODIFIERS=@im=uim
According to this Fcitx wiki entry, "in some case, including emacs and java. Emacs has a historical bug, that under en_US.UTF-8 or similar locale, it will never use XIM (Though emacs is a gtk app, it use XIM). The only way to walkaround this is to use LC_CTYPE to fix this."
See Scim for more information.
GTK_IM_MODULE=scim QT_IM_MODULE=scim XMODIFIERS=@im=scim