Fcitx

Fcitx (, ) is an input method framework with extension support for the X Window System that supports multiple input method engines including Pinyin transcription, table-based input methods (e.g. Wubi method), fcitx-chewing for Traditional Chinese, fcitx-keyboard for layout-based ones, fcitx-mozc for Japanese, fcitx-hangul for Korean.
It supports UTF-8, GBK and GB 18030 character encodings, can run in Linux and FreeBSD, and supports XIM protocol, GTK+ (both 2 and 3) and Qt input method modules.
Before version 3.6, Fcitx used GBK encoding internally, which has been changed to UTF-8 in the 4.0 release. Since version 4.1, it has become highly modular, and has added support for Google Pinyin (which was ported from the Android version), fbterm, and KDE.