im-config for Debian Osamu Aoki Please also read * https://wiki.debian.org/Keyboard * https://www.debian.org/doc/manuals/debian-reference/ch08.en.html#_the_keyboard_input The modern keyboard input to a GUI application has 3 components: * Linux kernel to accept incoming signal from connected input devices including keyboard. * Input method (IM) framework to generate a sequence of characters from data accepted by Linux kernel. * Application to read a sequence of characters from IM via specified data path. The IM framework can generate sequence of over 130,000 characters in the ISO/IEC 10646 using inputs using less than 90 keys. The actual data flow conversion is offloaded from IM framework to IM engines. Simple IM engines are ones which generate accented Latin characters (This can emulate xmodmap(1) based mapping). More elaborate IM engines are ones which generate CJK (Chinese, Japanese, Korean) characters. There are IM engines supporting inputs of Arabic, Cyrillic, Ethiopic, Georgian, Greek, Hebrew, Indic, Thai, ... characters. There are a few popular general purpose IM frameworks: * iBus -- default for GNOME Desktop (Yes, I use this) * Fcitx5 -- good alternative (used by Chinese task) * uim -- good alternative (used by Japanese task) You can install all these IM framework packages simultaneously but you can activate only one IM framework for one desktop session. This im-config package is a meta-framework to manage these IM frameworks by offering: * automatic selection of system wide best IM framework choice * manually configurable system wide IM framework choice * automatic selection of user's best IM framework choice * manually configurable user's best IM framework choice If only one IM framework is installed, that is used automatically as the IM framework choice. The activation of IM framework involves staring daemon for communication and setting up pertinent environment variables to let the application know data protocol and connection (IM framework specific data protocol over dBus connection, or xim data protocol over X connection) to use to obtain input data sequence. The activation of IM engines is out of scope for this im-config package. You must activate IM engines using configuration mechanism offered by the IM framework. (Some IM engine packages come with installation script to activate it upon installation.) In order to ensure im-config settings and IM engine setting to be updated, you should restart the session or reboot the system. (Yes, you should be able to use systemctl but it is prone for problems.) NOTE: When adding support for Wayland GUI environment, GNOME decided to integrate iBus IM infrastructure tightly by hard-coding environment variable setting and start of daemon process in its startup code and by writing its own IM engine configuration mechanism as a part of "Settings". So im-config does nothing for iBus under GNOME. For specific IM environment set up, see Debian wiki pages. * iBus -- https://wiki.debian.org/I18n/ibus * Fcitx5 -- https://wiki.debian.org/I18n/Fcitx5 * uim -- https://wiki.debian.org/I18n/uim You should consult the im-config(8) manage for the details of this command behavior. For some rare GUI programs run under Wayland which don't use any of X, GTK, or Qt, im-config may not set up input method framework for you. See README.Debian of ketty package for the work around example which sets specific environment variable to enable access to the IM framework. For the technical inner details of im-config, please read README.internal. -- Osamu Aoki , 2021-12-06T14:10:15+00:00 # vim: set tw=72 sts=4 sw=4 ai si et: