Skip to content
omarchyFIELD GUIDE
TROUBLESHOOTING / FIELD NOTES

Chinese input fails in some apps: locate the failing stage

Use switching, candidates, and commits to distinguish session, engine, app integration, font, and popup-position problems.

Based on public documentation; not hardware-tested. Match the instructions to your version and hardware.

Input failure may mean no switching, no candidates, failed commits, or simply boxes instead of characters. Separate symptoms before changing the wrong layer. Without any working app, complete the basic Pinyin guide first.

This workflow is based on source and upstream documentation. It does not treat one community post’s application flags as a universal fix.

Type nihao, select “你好”, and return to English in an ordinary browser field, an idle Foot prompt, and a temporary editor document. Do not execute terminal test text with Enter; enter insert mode in Neovim.

Observation Record Purpose
Switching Selected method before and after Key path versus later processing
Candidates Whether Pinyin produces candidates Engine processing versus commits
Commit Whether selected characters enter the app Framework versus application integration
Display Boxes, corrupted text, or misplaced popup Separate display from missing engines

“Browser switches, shows candidates, commits; editor switches and shows candidates but cannot commit” narrows the failure much better than “Chinese is broken.” Different apps’ indicators do not prove identical input paths.

Query inside the logged-in graphical desktop:

Terminal window
systemctl --user status omarchy-fcitx5 --no-pager
pacman -Q fcitx5 fcitx5-chinese-addons

The service name belongs to the pinned source. Older or independently managed installations may lack it; “unit not found” does not itself prove Fcitx is uninstalled.

This service follows the graphical session and requires a Wayland environment. Seeing it inactive over SSH or before graphical login does not establish desktop failure. Service source

With the service running, check Pinyin in fcitx5-configtool’s current list. Installed package, running service, and selected engine are separate conditions. Inspect this boot’s log if needed:

Terminal window
journalctl --user -b -u omarchy-fcitx5 --no-pager

Do not add a second autostart instance. For a confirmed transient fault in the existing service, save input first, then restart it:

Terminal window
systemctl --user restart omarchy-fcitx5

This interrupts input and composition. Repeat the sentence test. For repeated crashes, keep logs rather than using repeated restarts as diagnosis.

Focus a real editable field, not a password or shortcut-recorder field. Check the local binding list and Fcitx settings. This source uses Super + I, not an assumed Ctrl + Space; see switching keys.

If selecting Pinyin through its menu works but the key does not, investigate the key path first. Record the old key before testing another, compare two apps, and restore it afterward. Application completion shortcuts may conflict; one failure does not require reinstalling an engine.

Apps can use native Wayland text-input protocols or toolkit input modules; XWayland has its own integration requirements. The same app name may behave differently with another version, launch path, or backend.

Fully quit the failing app after saving work, confirm its background instance has exited, then launch from your normal desktop entry. Existing processes may retain old environments; closing one window does not necessarily restart the application.

Collect the terminal’s environment and system modules:

Terminal window
printenv WAYLAND_DISPLAY DISPLAY QT_IM_MODULE GTK_IM_MODULE XMODIFIERS
pacman -Q fcitx5-gtk fcitx5-qt

This describes the terminal, not necessarily a desktop-launched app. System Qt plugins do not prove that a proprietary app with bundled Qt uses them. Missing variables are not automatically errors, particularly an unset GTK_IM_MODULE.

This source’s session environment sets QT_IM_MODULE=fcitx and XMODIFIERS=@im=fcitx, without forcing GTK_IM_MODULE in that file. Environment source

Upstream documents different requirements by toolkit and backend and warns that Chromium/Electron defaults and flags change. Establish the specific version, actual backend, and supported input route, then make one application-scoped test using its current documentation. Record and undo launch changes without improvement; do not write every suggested environment variable globally. Fcitx Wayland integration

5. Boxes, misplaced candidates, and special fields

Section titled “5. Boxes, misplaced candidates, and special fields”
Symptom First investigation Comparison
Committed Chinese appears as boxes Font contains Chinese glyphs Display the same text in another app
Candidates misplaced but commits work Backend, scale, field location Move the same app to another display and record behavior
Normal field works, password field has no candidates Field may disable input methods Test ordinary text without sharing real passwords
Editor failure in one mode Insert mode and mappings Same mode and phrase in a temporary document

For displacement, record each monitor’s scale and app location; see displays. Do not change every monitor’s scale first for an issue isolated to one app.

6. Read diagnostics and request useful help

Section titled “6. Read diagnostics and request useful help”
Terminal window
fcitx5-diagnose

It collects system, session, frontend, and config information; it does not automatically repair every warning. Focus on relevant findings: service state, current engines, and modules used by the failing app. Missing modules for unused toolkits need not explain this failure.

Native Wayland contexts do not necessarily list every app by name. A missing app name alone is not proof it failed to connect. Diagnostic reading guide

Report Omarchy and app versions, engine, launch entry, a working comparison app, the three observations, and any scale or suspend relationship. Inspect user paths and environment content before sharing reports. Success means switching, candidates, commits, and English return work in normal fields after restarting the app; temporary keys and launch changes must be restored or explicitly documented.

Reviewed on 2026-10-12: Omarchy input, Fcitx diagnostics, Wayland integration, and pinned session service. Compatibility needs version-specific verification; no single flag set is promised to work everywhere.