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/IBus 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:
Please visit here to get the latest archive. the latest version is 1.6.3 now.
API reference are available here. also see README for more details.