Skip to Content
DocsDesktopDesktop BasicsChinese Input Methods

Chinese Input Methods: A Practical Setup Guide

Chinese input is the step where most new Ubuntu users get stuck, and the usual failure is not “no input method installed” — it is installed but never enabled. This page goes from “make it type” to “make it pleasant”.

What 26.04 actually ships

Measured on a Chinese-language 26.04 desktop:

dpkg -l | awk '/^ii/ && $2 ~ /ibus-libpinyin|fcitx5/ {print $2, $3}'
ComponentVersionState
ibus-libpinyin1.16.5installed (IBus Intelligent Pinyin)
ibus-table-wubi1.17.16installed (Wubi)
fcitx5 + fcitx5-chinese-addons5.1.19 / 5.1.12installed, not running

So the framework and the engines are already there. What is missing is registering Chinese as an input source:

gsettings get org.gnome.desktop.input-sources sources

If that prints only [('xkb', 'us')], you are in the classic “cannot type Chinese” state — the system has no Chinese input source at all.

Step 1: add the Chinese input source

Open Settings → Keyboard and find the Input Sources section. On a fresh install it lists only English:

GNOME Settings Keyboard panel with Input Sources listing only English (US), an Add Input Source button, and the input source switching and special character entry sections
Settings → Keyboard → Input Sources: with only English listed, switching sources can never produce Chinese

Click + Add Input Source, type chinese in the search box, and pick Chinese (Intelligent Pinyin). The same list also offers m17n engines (pinyin, bopomofo, cangjie, quick) — most people only need the first one.

After adding, the list has two entries and an input-source indicator appears in the top bar (en / 中).

Tip

Faster: Super + Space cycles between input sources. When the indicator shows the Chinese character, typed letters go to the candidate window instead of the document.

Step 2: prove it works

Open any text field and press Super + Space until the indicator changes, then type nihao:

Text editor after typing nihao, showing the IBus Intelligent Pinyin candidate window with 你好 as the first candidate followed by 你好吗, 你, 尼 and 呢
A candidate window means the whole chain works: space commits the first candidate, digits pick others, arrows or minus/equals page through

Common operations:

ActionKey
Switch input sourceSuper + Space
Toggle Chinese/EnglishShift (the IBus Pinyin default)
Pick candidate Nnumber keys 1–9
Page forward/back- / = (or the arrows on the popup)
Commit first candidatespace
Toggle Chinese punctuationCtrl + .

Tuning the dictionary

The Pinyin preferences are not in Settings; run:

ibus-setup

or right-click the indicator → Preferences. The settings worth touching:

  • Fuzzy pinyin — turn it on if you mix up zh/z, ch/c, sh/s or the -n/-ng endings; first-candidate accuracy improves noticeably
  • Traditional/Simplified conversion — needed only if you type traditional
  • Cloud input — better coverage, but it sends what you type to a server; leave it off if that matters
  • Candidates per page — default 5, 7–9 is comfortable
Note

Preferences live in dconf and ~/.config/ibus/libpinyin/, while the learned word frequency is cached under ~/.cache/ibus/libpinyin/. Copy that cache to carry your personal dictionary to another machine.

Advanced: the fcitx5 route

If you need Shuangpin, Wubi, Zhengma, RIME or a nicer candidate window, fcitx5 is the alternative framework.

It is already installed but not started

26.04 ships fcitx5 5.1.19 with fcitx5-chinese-addons 5.1.12, but nothing runs it — the desktop uses IBus.

im-config -n fcitx5 does not work under Wayland

This is measured, and it matters because many guides still recommend it:

im-config -n fcitx5 # writes ~/.xinputrc

After logging out and back in, IBus is still running and fcitx5 never starts:

systemctl --user show-environment | grep -E 'IM_MODULE|XMODIFIERS' # QT_IM_MODULE=ibus # XMODIFIERS=@im=ibus ← still ibus pgrep -a fcitx5 # nothing

The reason: ~/.xinputrc is only read by X11 sessions. A GNOME Wayland session lets GNOME Shell own input handling (its built-in IBus integration) and never consults that file.

The way that works

All three pieces are required:

  1. Environment variables — without them applications never load the fcitx frontend
mkdir -p ~/.config/environment.d cat > ~/.config/environment.d/90-ime.conf <<'EOF' GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx EOF
  1. Autostart — otherwise the daemon never runs
mkdir -p ~/.config/autostart cat > ~/.config/autostart/fcitx5.desktop <<'EOF' [Desktop Entry] Type=Application Name=Fcitx 5 Exec=fcitx5 -d X-GNOME-Autostart-Phase=Applications EOF
  1. Log out and back in, then verify:
fcitx5-remote # any output means the daemon is up

Adding the Pinyin engine

The configuration tool is fcitx5-config-qt — note that the package fcitx5-configtool does not exist in the archive, which is why copying old guides fails with “package not found”:

sudo apt install fcitx5-config-qt fcitx5-config-qt

In the Input Method tab, pick Pinyin (or Shuangpin, Wubi, Zhengma…) from Available Input Methods → Chinese (China) and move it to the left:

Fcitx 5 configuration window, Input Method tab, listing available engines under Chinese (China) such as pinyin, shuangpin, wubi and zhengma
Fcitx 5 configuration: the right pane lists engines, the arrows in the middle move them across; the first entry must be a keyboard layout or the IME stays inactive

Do not ignore the hint at the bottom: the first input method is treated as inactive, so put “Keyboard — English (US)” first and Pinyin second.

Warning

In our test, starting fcitx5 from an SSH session with systemd-run made the config tool report “cannot connect to Fcitx over DBus” — the daemon and the desktop app were in different D-Bus sessions. Start fcitx5 from the desktop (autostart entry or application menu), never from SSH.

Optional engines

WantInstallNotes
Pinyin / Shuangpin / Wubi / Zhengmafcitx5-chinese-addons (already installed)the whole list in the screenshot
More shape-based tables (Cangjie, Quick…)fcitx5-table-extra5.1.11 and later
RIME / Rime Icefcitx5-rime (5.1.13)most flexible dictionaries, needs YAML tuning
RIME without leaving IBusibus-rime (1.6.0)the compromise option

Third-party input methods

Sogou Pinyin for Linux

The official download page (pinyin.sogou.com/linux/) serves sogoupinyin_4.2.1.145 in amd64, arm64, mips64el and loongarch64 builds.

Honest status: the official CDN returned 403 to every download attempt from this network (ime-sec.gtimg.com), so we could not complete an install test. What we can give you is the check that settles it in two seconds:

# Which framework does the package depend on? fcitx = fcitx4, fcitx5 = new framework dpkg-deb -I sogoupinyin_*.deb | grep Depends # Are both frameworks available here? (measured on 26.04) apt-cache policy fcitx fcitx5

26.04 reality (measured):

fcitx candidate: 1:4.2.9.9-2.1 ← fcitx4 still exists fcitx5 candidate: 5.1.19-1 ← fcitx5 also present

Both frameworks survive in 26.04, so a package depending on fcitx4 can in principle be installed — but note:

  • fcitx4 and fcitx5 cannot both be the active framework; stop fcitx5 before installing a Sogou build that needs fcitx4
  • fcitx4-only input methods often show the candidate window in the wrong place under Wayland; switching to an Xorg session is the usual workaround
  • re-run im-config and log out afterwards, or the environment still points at the old framework
Caution

Guides that say “uninstall fcitx5, install fcitx4, switch to Xorg” were written for 24.04. Verify with the two commands above before you paste anything.

The alternatives

OptionHow to get itWho it suits
IBus Intelligent Pinyinpreinstalledalmost everyone, zero setup
fcitx5 Pinyin / Shuangpin / WubipreinstalledShuangpin, Wubi, better candidate window
RIME (Rime Ice)fcitx5-rime / ibus-rimepeople who want to tune dictionaries and schemas
Sogou Pinyinofficial debusers who rely on Sogou’s dictionaries; verify compatibility yourself

Baidu, iFlytek and WeChat keyboard have no official Linux desktop build; what circulates as a “Linux version” is usually an Android port or a repack, not something to put on a machine you rely on.

FAQ

The Chinese language pack is installed but I still cannot type

A language pack (language-pack-zh-hans) provides translations and fonts, not an input method. Go back to Step 1 and add the input source — that is the answer nine times out of ten.

No candidate window, or it does not follow the cursor

Check in order:

# 1. is Chinese actually registered? gsettings get org.gnome.desktop.input-sources sources # 2. is the daemon alive? pgrep -a ibus-daemon # 3. is it an Electron app (VS Code, Discord…)?

Electron apps do not use the Wayland IME protocol by default; launch them with:

code --enable-wayland-ime

or run them under XWayland with --ozone-platform-hint=auto.

Only Pinyin, no Wubi

The Wubi engine (ibus-table-wubi) is installed but never appears automatically. Add it the same way as Step 1, choosing Chinese (Wubi) or Chinese (Wubi Pinyin) from the Chinese list.

Removing extra input sources

Settings → Keyboard → Input Sources, click the ⋮ on the row → Remove. Keep at least one English layout, otherwise some password prompts become impossible to fill.

The switch shortcut conflicts with something

Change it under Settings → Keyboard → Keyboard Shortcuts → View and Customize Shortcuts → Input Sources. Ctrl + Space or Super + \ are common replacements.

Last updated on