82 lines
3.5 KiB
Plaintext
82 lines
3.5 KiB
Plaintext
im-config for Debian Osamu Aoki <osamu@debian.org>
|
|
|
|
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 <osamu@debian.org>, 2021-12-06T14:10:15+00:00
|
|
|
|
# vim: set tw=72 sts=4 sw=4 ai si et:
|