From ArchWiki
Jump to: navigation, search

Related articles

IBus (Intelligent Input Bus) is an input method framework, a system for entering foreign characters. IBus functions similarly to Fcitx, SCIM and UIM.


Install the ibus package from the official repositories.

Additionally, to enable IBus for Qt applications, install the ibus-qt library.

Input method engines

You will need at least one input method, corresponding to the language you wish to type. Available input methods include:

To see all available input methods:

$ pacman -Ss ^ibus-*

Others packages are also available in the AUR.

Initial setup

Now, run $ ibus-setup (as the user who will use IBus). It will start the daemon and give you this message:

IBus has been started! If you cannot use IBus, please add below lines in $HOME/.bashrc, and relogin your desktop.
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
  • Although IBus uses a daemon, it is not the sort of daemon managed by systemd: it runs as an ordinary user and will be started for you when you login.
  • If, however, IBus is not autostarted upon login, then move the “export …” lines above to either
    • $HOME/.xprofile instead and append this line to the same file: ibus-daemon -drx, or
    • $HOME/.xinitrc and append this line to the same file: ibus-daemon -drx.
Which works best, depends on your Window manager, see also xprofile and xinitrc.
  • You can also try adding ibus-daemon -drx after the export ... lines in $HOME/.bashrc.

You will then see a configuration screen; you can access this screen whenever IBus is running by right-clicking the icon in the system tray and choosing Preferences. See Configuration.

If IBus does not work in Qt/KDE applications, ensure that the ibus-qt library is installed and define IBus as the default IME in the Qt configuration editor:

$ qtconfig-qt4

In Interface > Default Input Method, select ibus instead of xim.


GNOME includes IBus by default, so you should only need to install the package specific to your language. To enable input in your language, add it to the Input Sources section of the Region & Language settings. After you add your input sources (at least 2), GNOME will show the input switcher icon in the tray. If you do not find your appropriate input source when trying to add your input sources, most likely you have not done locale-gen for that locale. The default keyboard shortcut to switch to the next input method in GNOME is Super+space; disregard the next input method shortcut set in ibus-setup.



Note: You need to have east Asian fonts installed if you want to enter Chinese, Japanese, Korean or Vietnamese characters.

The default General settings should be fine, but go to Input Methods and select your input method(s) in the drop down box, then press Add. You can use multiple input methods if you wish. Once IBus is set up, you can press Super+space to use it (multiple times to cycle through available input methods). IBus will remember which input method you are using in each window, so you will have to reactivate it for each new window. You can override this behavior by right clicking the system tray icon, selecting Preferences, and going to the Advanced tab.

Note: By default, IBus overrides your Xmodmap setting. You can disable this feature by enabling "Use system keyboard layout" option in Preference -> Advanced.


If you have decided to use the great ibus-rime IME, check out Rime IME for some help to configure it.

Entering Special Characters—The Compose Input Method

To type special characters, XKB supports compose key sequences. To fulfil this function, IBus supports an input method that is permanently in Compose mode. Instead of hitting a compose key, then typing out the compose sequence, the user switches to the Compose input method (by default using super-space (a.k.a. win-space)), types the compose sequence, then switches back to the previous method. In Archlinux, the Compose input method is not installed by default. To use it, install ibus-table-othersAUR from the AUR, restart IBus, then look for it in the list of input methods under 'other' at the bottom.

Tips and tricks

Pinyin usage

When using ibus-pinyin,

  • First type the pinyin (sans tones) for the characters you wish to enter.
  • Press Up and Down repeatedly to select a character (going on to the next page if necessary).
  • Press Space to use a character.
  • You can also use PageUp or PageDown to scroll pages, and use the number keys 1-5 to select the character you need.
  • You can enter multiple characters that form a word or phrase at a time (such as "zhongwen" to enter "中文"). ibus-pinyin will remember which characters you type most frequently and over time make suggestions that are more tuned to your typing profile.


Plasma 5

Some applications may not accept non-"direct input" text (e.g. Japanese and Chinese) from Mozc using IBus. In order to resolve this problem add

export QT_IM_MODULE=ibus

to ~/.xprofile and restart your X user session.


IBus main interface is currently only available in GTK+, but Kimpanel provides a native Qt/KDE input interface. Kimpanel is bundled with Plasma 5, but IBus needs to be launched as following to be able to communicate with the panel

$ ibus-daemon --panel=/usr/lib/kimpanel-ibus-panel

To get a menu entry for launching ibus this way, save the following file to ~/.local/share/applications/ibus-kimpanel.desktop:

[Desktop Entry]
Name=IBus (KIMPanel)
GenericName=Input Method Framework
Comment=Start IBus Input Method Framework
Exec=ibus-daemon --panel=/usr/lib/kimpanel-ibus-panel

Then you can either let KDE autostart ibus, or set it as the input method application in Kimpanel, and manually click on the kimpanel icon to start it. In either case, choose Utility/Ibus (Kimpanel) in the Choose Application dialog.

Finally, add the input panel widget to show the panel.


If anyone has any issues with IBus and rxvt-unicode, the following steps should solve it.

Add the following to your ~/.Xresources (possibly not required, first try without):

URxvt.inputMethod: ibus
URxvt.preeditType: OverTheSpot

And start IBus with:

$ ibus-daemon --xim

If you start ibus-daemon automatically (e.g. in ~/.xinitrc or ~/.xsession) but used to use ibus-daemon & without the --xim option, make sure to kill the existing process before testing the new command.

GTK+ applications

Some users have had problems using Input Methods with GTK applications, because it seems that the gtk.immodules file cannot be found. Adding:

export GTK_IM_MODULE_FILE=/etc/gtk-2.0/gtk.immodules

for GTK+ 2, or:

export GTK_IM_MODULE_FILE=/usr/lib/gtk-3.0/3.0.0/immodules.cache

for GTK+ 3, in addition to the three lines above in your $HOME/.bashrc seems to fix the problem.

Note: If you set it to GTK+ 2, then you cannot use GTK+ 3 applications like gedit, if you set it to GTK+ 3, then you cannot use GTK+ 2 applications like Xfce.

Chinese input

If you encounter problems when using Chinese input, check your locale setting. For example in Hong Kong, export LANG=zh_HK.utf8.

Note: There are large revisions after IBus 1.4, you might not be able to input Chinese words with ibus-pinyin or ibus-sunpinyin, which are written in C. So the solution is to install ibus-libpinyin.

To start ibus with GNOME, add this in ~/.profile and restart the GNOME.

export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
ibus-daemon -d -x

Chinese users can refer to this page for detailed solution concerning this bug.


If IBus does load but does not see LibreOffice as an input window, add this line to ~/.bashrc:

export XMODIFIERS=@im=ibus

And then, you need to start ibus with --xim -d, for example, add this line to ~/.xinitrc:

ibus-daemon --xim -d

But the horrible thing is that you need to start LibreOffice in terminal.

If you are using KDE and the above does not work, install libreoffice-still and add this line to ~/.xprofile if you do not mind running LibreOffice in GTK+ 2 mode:

export OOO_FORCE_DESKTOP="gnome"

That will make IBus work with LibreOffice, and you can start LibreOffice from anywhere, not just the terminal.

Non US keyboards

If Ibus does not let you write in a given language, let's say Chinese, with a different keyboard layout other than US, then you need to tell it which one to use.

Each input method specifies its desired input layout in an XML configuration file in /usr/share/ibus/component/<method_name>.xml. Setting the <layout> tag to the desired value will make the ibus use that layout. With the special value default, ibus will use whatever is the default layout configured on the system.

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: Undone on package upgrades (Discuss in Talk:IBus#)

You need to change /usr/share/ibus/component/<method_name>.xml and change the <layout> tag to the expected keyboard layout.


In the specific case of ibus-m17n, a helper, /usr/lib/ibus/ibus-engine-m17n, generates the necessary XML at runtime. With version 1.3.4-4 of the package, this unfortunately uses us as the layout without a possibility of override. Fortunately, this was changed to default a few commits later in Git, but no new release was made since then. To remediate the issue, a Git-master version of the package is available from AUR, which works nicely.

English international AltGr

If you want to use AltGr as compose key for the english keyboard, choose English international AltGr in the ibus-setup instead of 'English'.

Trouble with Japanese

If you have trouble with Japanese input try to generate the locales with uncommenting ja_JP.UTF-8 UTF-8 in the /etc/locale.gen file and then run locale-gen.