IBus (Intelligent Input Bus) is an input method framework for Linux, allowing you to type Vietnamese, Japanese, Chinese, Korean, emoji... on any application.
IBus is a intermediary software between the keyboard and the application, helping you type complex characters, for example “hello friend” instead of "chaof baajn".
| Components | Role |
|---|---|
| IBus daemon | Runs in the background, processes keyboard signals and sends them to the application |
| Input engines | Each type of typing (unikey, mozc, anthy...) is an "engine" plugged into IBus |
| Frontend | UI (suggestion bar, settings) for you to choose typing style, layout, etc. |
xinchaoxinchao → xin chao"xin chao" from D-Bus| Engine | Language | Package |
|---|---|---|
ibus-unikey |
Vietnamese | ibus-unikey (PPA/Arch AUR) |
ibus-mozc |
Japanese | ibus-mozc |
ibus-anthy |
Japanese | ibus-anthy |
ibus-table |
Han tu… | ibus-table + specific table |
# Check if IBus is running
ibus engine
# Select Unikey engine
ibus engine unikey
# Restart IBus daemon
ibus restart
| Framework | Notes |
|---|---|
| IBus | Most popular default, good compatibility |
| Fcitx | More flexible, good for Chinese, Japanese |
| uim | Older, less popular |
Because Snap limits communication between app and daemon (like D-Bus), IBus sometimes doesn't work in Snap-installed apps (like Brave, Slack...).