-
Notifications
You must be signed in to change notification settings - Fork 142
Description
Describe the bug
There is a critical usability issue with the web terminal's handling of Input Method Editors (IMEs), specifically for Chinese and likely other CJK languages. The IME candidate window, which is essential for selecting characters, is blocked from appearing. This makes it impossible to type Chinese characters directly into the terminal.
However, pasting Chinese text into the terminal works correctly, which confirms the terminal itself can render the characters properly. The problem lies purely with the input process.
This is a significant barrier for users who need to work with files, scripts, or commands that involve Chinese characters.
To Reproduce
Steps to reproduce the behavior:
- Start the VibeTunnel server and open the web UI in a browser (e.g., Chrome, Safari).
- Open a new terminal session.
- Switch your operating system's input method to a Chinese IME (e.g., Pinyin - Simplified, Zhuyin, etc.).
- Click inside the terminal to give it focus.
- Attempt to type a Chinese word using its phonetic spelling (e.g., type
nihao
for "你好").
Expected behavior
As I type nihao
, the IME candidate window should appear above or below the cursor, displaying a list of Chinese characters (like 你好, 您好, etc.) for me to select from. After selecting a character, it should be inserted into the terminal.
Actual behavior
The IME candidate window does not appear at all. The pinyin letters (nihao
) might be inserted directly into the terminal, or nothing appears, but there is no way to trigger the character selection process. Direct Chinese input is therefore impossible.
Workaround
Pasting Chinese text from another application into the terminal works as expected.
Environment
- OS: [e.g., macOS Sequoia 15.5]
- Browser: [e.g., Chrome 138.0, Safari 18.5]
- VibeTunnel Version: [e.g., v1.0.0-beta13 or if built from source]
- Input Method: [e.g., macOS Pinyin - Simplified]
Additional context
This seems to be a common problem with web-based terminal emulators (like xterm.js, which I believe VibeTunnel uses) if keyboard events are not handled in a way that allows the browser's native IME to function. The event capturing might be too aggressive, preventing the IME from activating.
This is a major accessibility issue for a large portion of potential users. I would be very grateful if you could look into this.
Thank you for your excellent work on this project! I'm happy to provide more information or help test any potential fixes.