IM-CONFIG(8)IM-CONFIG(8)NAMEim-config - set up input method configuration for X Window System
OPTIONS-a List all; force to list all possible input methods in menu or
STDOUT even if any associated packages are not installed on the
-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 configuration settings to STD‐
OUT. Unless -a is used, list only ones with associated pack‐
-m List active configuration (system), active configuration (user)
and automatic configuration values to STDOUT. If custom means
the user made a custom configuration and im-config should not
-n <input method name>
Set input method 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", 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-
config also 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
-o <input method name>
Print the localized description of the input method <input
method name> to STDOUT.
The -l, -m, -n, and -o options are meant to be API for other programs
to control the im-config.
This manual page very briefly documents im-config and the configuration
of the input method.
im-config provides the framework to configure the input method on X
Window System with GTK 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. The input method with
the highest priority comes first. The availability of the input method
is judged by the installation of any associated packages. After you
make a choice for the input method, this displays a guidance for asso‐
ciated packages to be installed.
If only a set of required input method packages along with the im-con‐
fig 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 environments
installed and wish to switch among them, you need to use this command.
If you have no idea for what package to install, im-config invoked with
both -a and -s is 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.
Some input methods such as IBus, fcitx, 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. When X starts, 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.
im-config invoked from a user account updates the user configuration
file ~/.xinputrc. im-config invoked from the root account updates the
system configuration file ~/etc/X11/xinit/xinputrc. The essential con‐
tents of generated files are:
run_im <input method name>
When these files are sourced, the run_im shell 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>.rc file in /usr/share/im-config/data.
The im-config hook script, /etc/X11/Xsession.d/70im-config_launch,
exports following variables to X programs: $XMODIFIERS, $GTK_IM_MODULE,
$QT_IM_MODULE, $QT4_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-launch for starting required daemons.
If you wish to create a custom configuration beyond what im-config can
do for you, please copy one of these initialization code files into
~/.xinputrc or /etc/X11/xinit/xinputrc and edit it to suite your need.
For example, 02_cjkv.rc tells how input method can be customized for
each locale. This script should be written to set environment vari‐
ables 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 ~/.xinputrc or /etc/X11/xinit/xin‐
putrc without using im-config, im-config will 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 by im-config.
The <2 digits number>_<input method name>.conf files in /usr/share/im-
config/data provide the UI data for im-config and 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
These <2 digits number>_<input method name>.conf files defines few
variables and functions. The value of IM_CONFIG_SHORT is the short
description of the input method for the menu. The value of IM_CON‐
FIG_LONG is the long description of the input method explaining its
package dependency. The package_menu shell function defines as a func‐
tion to return true if any associated input method packages are
installed to activate its menu entry. The package_auto shell function
defines as a function to return true if the sufficient input method
packages are installed for the auto mode. These definitions use the
package_status shell 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> between 00 and
89. The auto mode considers its input method candidate from <2 digits
number> between 10 and 79 in 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.
If you have any problem, see the first part of ~/.xsession-errors and
look for the cause. If you are running im-config while Debian (sid)
system is undergoing a major library transition, you may need to manu‐
ally set up ~/.xinputrc with adjusted library version number etc.
Please file a bug report to the im-config package using reportbug(1)
describing your resolution experience.
This manual page was written by Osamu Aoki <firstname.lastname@example.org>, for the
Debian GNU/Linux system (but may be used by others).