IMSettings is a framework that delivers Input Method settings and applies the changes immediately. so it will takes an effect without restarting applications and the desktop.
Input Method is used to input some dozens of characters that can't be represented with ASCII characters, with some framework such as XIM and SCIM via GTK+/Qt immodule. particularly which to handle languages that is a bit complex to do the same thing with the keyboard layout such as XKB. In the past, those frameworks has been applied through the environment variables, such as XMODIFIERS and GTK_IM_MODULE. and can't be influenced immediately and can't be without restarting the desktop because of its nature - it's being inherited from the parent process unless it's being brought up with the obvious thing from the terminal say. Also, there are no such framework to bring up the necessary process at the run time - of course anyone could runs it manually though, it's totally out of focus on this project.
IMSettings may helps when:
To make Input Methods available from IMSettings, every Input Methods that hopes so has to have the information file to let IMSettings know. those files is usually put under a directory where you can change the default value with --with-xinputdir. the filename has to contain .conf or something that you can also change the default value with --with-xinput-suffix to avoid listing every Input Methods that might not work for some languages. Input Methods doesn't support multiple languages such as XIM doesn't have to have .conf suffix or so. xim.conf can deals with such configuration files properly for appropriate languages according to current locale.
The following parameters can be described as the shell environment variables like FOO=BAR in the information file.
AUXILIARY_PROGRAM=
An optional program that may want to bring up for Input Method, such as the panel and the toolbar and so on.
AUXILIARY_ARGS=
A list of command line options for AUXILIARY_PROGRAM.
GTK_IM_MODULE=
GTK+ immodule name that want to use.
ICON=
An icon file to use in GUI.
IMSETTINGS_IGNORE_ME=
A parameter to hide Input Method from the inventory. you however can still take an action against such Input Method via IMSettings.
LONG_DESC=
An optional long description to explain what this Input Method is.
PREFERENCE_PROGRAM=
An optional program that set up Input Method. IMSettings itself do nothing on this parameter. but other tools, such as im-chooser will take an action for that.
PREFERENCE_ARGS=
A list of command line options for PREFERENCE_PROGRAM.
QT_IM_MODULE=
Qt immodule name that want to use.
SHORT_DESC=
An optional short description to explain what this Input Method is. this variable is also sued for the key to do something on IMSettings. e.g. to start/stop Input Method and get the information and so on. so this parameter has to be unique.
XIM=
This variable is used for XIM. actually it looks like XMODIFIERS=@im=$XIM.
XIM_PROGRAM=
A XIM server be brought up to communicate through XIM protocol.
XIM_ARGS=
A list of command line options for XIM_PROGRAM.
DISABLE_IMSETTINGS=
If you want to disable imsettings feature entirely, set true. you'll miss the feature able to change IM on demand but just need to reboot or restart the desktop after changing something.
IMSETTINGS_DISABLE_DESKTOP_CHECK=
If your desktop has XSETTINGS manager support and you're sure it also supports imsettings, please file a bug to imsettings. and set true temporarily to ignore checking the desktop.
IMSETTINGS_INTEGRATE_DESKTOP=
This affects when Input Method would be brought up. If you are sure your desktop system doesn't support XDG autostart mechanism, set "no". if you disable imsettings feature, this won't affects anything.
im-settings-daemon
A DBus service that provide a imsettings facility to start/stop IM processes and gather input methods information.
gconf-im-settings-daemon
A DBus service that provide a bridge to communicate GTK+ through GConf.
imsettings-xim
A XIM bridge between client applications and real XIM server.
imsettings-applet
An applet that provides a facility of changing IM temporarily. this also supports XIM bridge. if imsettings-xim is running, this applet will sends a signal to be terminated.