Skip to content

Input Issue: Terminal blocks Chinese IME candidate window, preventing Chinese input #421

@Ahua9527

Description

@Ahua9527

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:

  1. Start the VibeTunnel server and open the web UI in a browser (e.g., Chrome, Safari).
  2. Open a new terminal session.
  3. Switch your operating system's input method to a Chinese IME (e.g., Pinyin - Simplified, Zhuyin, etc.).
  4. Click inside the terminal to give it focus.
  5. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions