Introduction to ibus

ibus is an Intelligent Input Bus. It is a new input framework for the Linux OS. It provides a fully featured and user friendly input method user interface.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Optional Download

ibus Dependencies


DConf-0.40.0, ISO Codes-4.12.0, and Vala-0.56.4



GTK+-3.24.36 (to build IM module for it), GTK-4.8.3 (to build IM module for it), D-Bus Python-1.3.2 and PyGObject-3.42.2 (both to build the Python support library), GTK-Doc-1.33.2, and libxkbcommon-1.5.0, Wayland-1.21.0 (both to build the Wayland support programs), and EmojiOne

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/ibus

Installation of ibus

If the optional Unicode Character Database was downloaded, install it now as the root user:

mkdir -p                /usr/share/unicode/ucd &&
unzip -uo ../UCD.zip -d /usr/share/unicode/ucd


Be sure to also remove the --disable-unicode-dict in the configure step below.

Fix an issue with deprecated schema entries:

sed -i 's@/desktop/ibus@/org/freedesktop/ibus@g' \

Install ibus by running the following commands:

./configure --prefix=/usr          \
            --sysconfdir=/etc      \
            --disable-python2      \
            --disable-emoji-dict   \
            --disable-unicode-dict &&
rm -f tools/main.c                 &&

To test the results, issue: make -k check. The test named ibus-compose fails because it uses some locales not installed in LFS. The test named ibus-keypress is known to fail in a Wayland based desktop environment. The test named xkb-latin-layouts is known to fail with a recent xkeyboard-config release. The test named test-override-ibus.py is known to fail if Python support library is enabled.

Now, as the root user:

make install &&
gzip -dfv /usr/share/man/man{{1,5}/ibus*.gz,5/00-upstream-settings.5.gz}

Command Explanations

--disable-emoji-dict: This switch disables the use of emoticon dictionaries. Omit if you installed the optional package.

--disable-unicode-dict: This switch disables the use of unicode dictionaries. Omit if you installed the optional Unicode Character Database.

rm -f tools/main.c: This command removes a generated file that was not removed when packaging.

--disable-gtk2: This switch disables building the GTK+ 2 immodule. Use it if you have not installed GTK+ 2.

--enable-gtk4: This switch enables building the GTK 4 immodule. Use it if you have installed GTK 4.

--enable-python-library: This switch enables building the Python support library. Use it if you have installed the optional dependencies.

--enable-wayland: This switch enables building the Wayland support programs. Use it if you have installed the optional dependencies.

--with-python=python3: This switch makes the configure script look for Python 3. Use it if you want to build the Python 3 support library alongside the Python 2 one.

--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild and install the API documentation.

gzip -dfv ...: Decompress installed man pages in accordance with other man pages.

Configuring Ibus

If GTK+-3 or GTK+-2 are installed and --disable-gtk{3,2} are not used, the ibus IM module for GTK+-3 or GTK+-2 will be installed. As the root user, update a cache file of GTK+-3 or GTK+-2 so the GTK-based applications can find the newly installed IM module and use ibus as an input method:

gtk-query-immodules-3.0 --update-cache

The command above updates the cache file for GTK+-3. For GTK+-2, use gtk-query-immodules-2.0 instead of gtk-query-immodules-3.0. GTK-4 does not require a cache file for IM modules.


Installed Programs: ibus, ibus-daemon, and ibus-setup
Installed Library: libibus-1.0.so and im-ibus.so (GTK+ Immodule)
Installed Directories: /etc/dconf/db/ibus.d, /usr/include/ibus-1.0, /usr/share/gtk-doc/html/ibus, and /usr/share/ibus

Short Descriptions


is the Intelligent Input Bus Daemon


is the GTK+ program used to configure the ibus-daemon


contains the ibus API functions