im-config (8) Linux Manual Page
im-config – set up input method framework configuration
Synopsis
im-config [OPTION]-
Options
-a- List all; force to list all possible input method frameworks in menu or STDOUT even if any associated packages are not installed on the system.
-c- Use console dialogue.
-x- Use X dialogue with zenity.
-s- No action; perform a simulation of events that would occur but do not actually change configuration files.
-l- List all available input method frameworks to STDOUT. Unless
-ais used, list only ones with associated packages installed. -m- List configuration values to STDOUT:
- • active configuration (system)
- • active configuration (user)
- • automatic configuration for the current locale
- • override configuration for the current locale
- • automatic configuration for most locales
- If the active configuration is
custom, the user made a custom configuration and im-config should not change it.
-n- <input method name>
Set input method framework to <input method name>. This option is for other configuration tool to set the input method. Since the default value of <input method name> is "auto" or "cjkv", you usually do not need to use this from other configuration script.
Specifying invalid <input method name> causes the error exit. Updating the configuration file which was not updated by
im-configalso causes the error exit.When this <input method name> is "REMOVE" then it always removes the configuration file even if it was not updated by
im-config. -o- <input method name>
Print the localized description of the input method <input method name> to STDOUT.
The
-l,-m,-n, and-ooptions are meant to be API for other programs to control the im-config.Description
This manual page very briefly documents
im-configand the configuration of the input method.im-configprovides the framework to configure the input method framework on GUI system (Wayland or original X Window) with its GUI or console terminal dialogue. If this is invoked without option, this lists available input methods as its choice while marking automatic choice with trailing @-mark. The listing is ordered by the priority of the input method framework. The input method framework with the highest priority comes first. The availability of the input method frameworks are judged by the installation of the input method framework packages. After you make a choice for the input method framework, this displays a guidance for associated input method engine packages which enables to input non-latin characters specific to the need of some languages to be installed. The activation of input method engines are out of scope forim-config. You need to activate them using the mechanism offered by the deployed input method framework. For GNOME Desktop which normally uses ibus as its input method framework, activate input method engines by "Setting" -> "Keyboard" -> "Input Sources" and click "+"-sign. For other Desktop environments, you should see something like a small tray icon for the input method framework which can be used to activate input method engines. If only a set of required input method packages along with the im-config package is installed, you do not need to use this command. Such a installation works well in its default and there is no need to use this command. When you wish to have multiple input method frameworks installed and wish to switch among them, you need to use this command. If you have no idea for what package to install,im-configinvoked with both-aand-sis a good start. This input method is the essential mechanism for Japanese, Chinese and Korean (CJK) languages to enter their non-ASCII native characters. This is also useful to support specialized keyboard bindings for other non-European languages such as Indic and other Asian languages. Input method frameworks such as IBus, fcitx5, and uim support not only one of these CJK languages but support almost all languages simultaneously by dynamically switching keyboard modes with GUI on the fly. The im-config package installs a hook script/etc/X11/Xsession.d/70im-config_launch. At session start it sources this file as a POSIX shell code. Then this hook script tries to source the user configuration file~/.xinputrc, if it exists. Otherwise, this hook script sources the system configuration file/etc/X11/xinit/xinputrc. The im-config package also installs another hook script/etc/profile.d/im-config_wayland.shand a desktop file/usr/share/applications/im-config.desktop. When a desktop system starts under wayland, it uses these files instead. Then this hook script and the desktop file tries to source the user configuration file~/.xinputrc, if it exists. Otherwise, this hook script sources the system configuration file/etc/X11/xinit/xinputrc.im-configinvoked from a user account updates the user configuration file~/.xinputrc.im-configinvoked from the root account updates the system configuration file~/etc/X11/xinit/xinputrc. The essential contents of generated files are:run_im<input method name> When these files are sourced, therun_imshell function instructs to source the initialization code for the corresponding input method. This initialization code is defined in the <2 digits number>_<input method name>.rcfile in/usr/share/im-config/data. The im-config hook script,/etc/X11/Xsession.d/70im-config_launch, exports following variables to programs: $XMODIFIERS, $GTK_IM_MODULE, $QT_IM_MODULE, and $CLUTTER_IM_MODULE. The im-config hook script,/etc/X11/Xsession.d/70im-config_launch, also set $STARTUP to use/usr/bin/im-launchfor starting required daemons. If you wish to create a custom configuration beyond whatim-configcan do for you, please copy one of these initialization code files into~/.xinputrcor/etc/X11/xinit/xinputrcand edit it to suite your need. For example,02_cjkv.rctells how input method can be customized for each locale. This script should be written to set environment variables if "$IM_CONFIG_PHASE" = 1 and to start daemon programs if "$IM_CONFIG_PHASE" = 2 . Please note that this <2 digits number> part of these configuration files may change for every new releases of the im-config package. When a user makes manual changes to~/.xinputrcor/etc/X11/xinit/xinputrcwithout usingim-config,im-configwill detect it using a md5sum hush value embedded in the shell comment and will not overwrite such files. You must erase them manually if you wish to replace them with ones created byim-config. The <2 digits number>_<input method name>.conffiles in/usr/share/im-config/dataprovide the UI data forim-configand the heuristic logic of selecting desirable input method under the auto mode. The smaller number of the <2 digits number> indicates the higher priority of <input method name>. These <2 digits number>_<input method name>.conffiles define few variables and functions. The value ofIM_CONFIG_SHORTis the short description of the input method for the menu. The value ofIM_CONFIG_LONGis the long description of the input method explaining its package dependency. Thepackage_menushell function defines as a function to return true if any associated input method packages are installed to activate its menu entry. Thepackage_autoshell function defines as a function to return true if the sufficient input method packages are installed for the auto mode. These definitions use thepackage_statusshell function which takes package name as its argument and returns true if it is installed properly. The menu lists input methods with the <2 digits number> between00and89. The auto mode considers its input method candidate from <2 digits number> between10and79in this order. The usage convention of <2 digits number> is:00-09:- Input Method choice mode (default/auto/cjkv/REMOVE)
10-49:- Input Method supporting multiple languages.(auto ready)
50-79:- Input Method supporting limited languages. (auto ready)
80-89:- Input Method (deprecated one) (not for auto)
90-99:- Used internally by
im-config(not for auto)
This structure ensures to have different input methods to be installed side-by-side with minimal user configurations.
Troubleshoot
If you have any problem, see the first part of
~/.xsession-errorsand look for the cause. If you are runningim-configwhile Debian (sid) system is undergoing a major library transition, you may need to manually set up~/.xinputrcwith adjusted library version number etc. Please file a bug report to the im-config package using reportbug(1) describing your resolution experience.See Also
/usr/share/doc/im-config/README.Debian.gzAuthor
This manual page was written by Osamu Aoki <osamu [at] debian.org>, for the Debian GNU/Linux system (but may be used by others).
