Fcitx is an input method framework with extension support. Currently it supports Linux and Unix systems like freebsd. Fcitx supports typing with many languages all over the world with a large number of engines. Fcitx has a slim core while provides powerful features with addons. It is easy to customize fcitx to satisfy your own needs. Fcitx5 is the next generation of fcitx. Some cmake options to keep in mind before building are: - ENABLE_WAYLAND: Wayland support. Defaults to On and should be fine for desktop environments such as KDE and GNOME. Users running X11-based window managers will need to turn it off. - ENABLE_ENCHANT: Enchant support. Defaults to On. Used for word prediction (hinting). Depends on libenchant, which is provided by most distributions. The user is encouraged to check the contents of CMakeLists.txt for an exhaustive list of options. For example, an i3 user who wishes to install it to /opt would run (likely with sudo privileges): cmake -DENABLE_WAYLAND=Off \ -DCMAKE_INSTALL_PREFIX=/your/install/path . make sudo make install To make fcitx5 the default input method, please add these lines to your /etc/environment (or .profile): GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx