[Bug Report] Unable to process empty bug report submission
Bug Description
Environment Info
- Platform: linux
- Terminal: vte-based
- Version: 2.1.173
- Feedback ID: f8f8b230-33b8-4c1d-812f-a4ddc91e98b5
Title
[BUG] IME candidate window not displayed in interactive TUI on Linux X11 (IBus / Bopomofo) — re-filing auto-closed #30982
What's Wrong?
When using an IBus-based IME (Bopomofo 注音 / chewing 新酷音) inside the Claude Code
interactive TUI on Linux X11, the candidate selection window never appears. The same
IME works correctly in the same GNOME Terminal at a normal shell prompt; the problem
only occurs inside Claude Code. This makes it impossible to type Chinese (or other
CJK languages) directly in Claude Code without resorting to external workarounds
(e.g. composing text in a separate dialog and pasting it in).
This was previously reported as #30982, which reproduced the exact same environment
(Ubuntu 24.04, GNOME X11, IBus, chewing). That issue was auto-closed as inactive on
2026-04-04 without a fix, and the bot instructed affected users to file a new issue
referencing it. The bug still reproduces on the current version (2.1.173).
What Should Happen?
The IME candidate window should appear and allow character composition/selection
inside the Claude Code TUI, just as it does at a regular shell prompt in the same
terminal.
Steps to Reproduce
- On Ubuntu 24.04 (GNOME, X11 session) with IBus running, add the chewing (新酷音)
or any Bopomofo input engine.
- Open GNOME Terminal and confirm the IME works at the shell prompt — candidate
window appears normally.
- Launch
claude. - Switch to the IME and try to type Chinese in the input box.
- The candidate/selection window never appears; characters cannot be composed.
Additional Information
- A commenter on #30982 noted that OpenCode (a Go TUI built with Bubble Tea) handles
IME pre-edit correctly in the exact same terminal/IME setup, so this is not a
terminal or IME-framework limitation — it appears to be specific to how the
Ink/React-based TUI manages the terminal cursor, causing the IME to lose track of
the caret position (or to never receive composition events at all).
- Related issues: #30982 (auto-closed, same bug), #22147, #19616, #1547, #50650.
- Workaround currently in use: a zenity dialog bound to a global hotkey that copies
the composed text and pastes it into the terminal — usable, but this should work
natively.
Environment
- Claude Code Version: 2.1.173
- OS: Ubuntu 24.04.4 LTS
- Desktop: GNOME (X11 session,
XDG_CURRENT_DESKTOP=ubuntu:GNOME) - Terminal: GNOME Terminal 3.52.0 (VTE 0.76.0)
- IME Framework: IBus 1.5.29-rc2
- Input Engines: chewing (新酷音), libbopomofo, m17n:zh:bopomofo
- Node.js: v18.19.1
Is this a regression?
I don't know — it has never worked in this environment.
Errors
[]