Skip to content

[FEATURE]: Keybinds should work regardless of active input method (non-English IME support) #16252

Closed as not planned

Description

@eunjios

Feature hasn't been suggested before.

  • I have verified this feature I'm about to request hasn't been suggested before.

Describe the enhancement you want to request

Enhancement

Currently, keybinds (including the leader key Ctrl+x) appear to rely on character values rather than physical key codes. This means that when a non-English input method is active (e.g., Korean), shortcuts don't work at all.

For example, with Korean IME active, pressing Ctrl+x is registered as Ctrl+ㅌ (the Korean character mapped to the physical X key), so the leader key never fires. This effectively locks non-English users out of all keybind functionality until they manually switch to English input.

Benefits

  • Non-English speaking users can use shortcuts without constantly switching their input method
  • This is the standard approach used by other tools (e.g., VS Code, most modern editors)
  • Eliminates a common source of confusion — users think shortcuts are broken when they're simply in the wrong input language
  • Affects all leader key combinations: session navigation, new session, etc.

Reproduce

  1. Set keyboard input method to any non-English language (e.g., Korean)
  2. Press Ctrl+X to activate the leader key
  3. Nothing happens — the leader key is not recognized
  4. Switch input to English → works as expected

Environment

  • OpenCode version: 1.2.17
  • Interface: TUI
  • OS: macOS
  • Keyboard input method: Any non-English IME

Activity

  1. added
    discussionUsed for feature requests, proposals, ideas, etc. Open discussion
    on Mar 6, 2026
  2. added
    opentuiThis relates to changes in v1.0, now that opencode uses opentui
    on Mar 6, 2026
  3. github-actions commented on Mar 6, 2026

    @github-actions
    Contributor

    This issue might be a duplicate of existing issues. Please check:

    For keybind-related issues, please also check our pinned keybinds documentation: #4997

  4. pereng11 commented on Mar 28, 2026

    @pereng11

    +1 — Confirming this issue persists on v1.3.3 with Korean (Hangul) IME on macOS.

    All Ctrl+key shortcuts are silently ignored when Korean input is active: Ctrl+C, Ctrl+A, Ctrl+L, Ctrl+E, Ctrl+X (leader key), etc. Switching to English immediately restores them.

    This is not a terminal issue — the same shortcuts work fine in Terminal.app, iTerm2, and tmux bare shell with Korean IME active. The problem is specific to OpenCode's TUI input handling.

    Previously reported as #8652 (Korean IME) and #13805 (Zhuyin IME) — both went unresolved. This is a fundamental accessibility barrier for all CJK users.

    For reference, the same issue exists in Claude Code: anthropics/claude-code#40291

  5. SamWang32191 commented on Apr 1, 2026

    @SamWang32191

    I’m also seeing this exact issue.

    I’m on OpenCode 1.3.13 (TUI) with non-English IME active on macOS, and Ctrl+X (and other leader shortcuts) are not recognized when IME is on. The key appears to be interpreted as the IME character (e.g., the non-English mapped key) instead of the physical key, so shortcuts are effectively unusable unless I switch back to English input first.

    It would be great if keybind handling could use physical key codes rather than character values, so shortcuts work consistently across IME/input methods.

  6. nooobkevin commented on Apr 2, 2026

    @nooobkevin

    Faced the same issue when using vscode. Follow #16310 , setting
    "terminal.integrated.enableKittyKeyboardProtocol": false
    fixes my issue.

  7. removed
    opentuiThis relates to changes in v1.0, now that opencode uses opentui
    discussionUsed for feature requests, proposals, ideas, etc. Open discussion
    on May 3, 2026
  8. github-actions commented on Jul 6, 2026

    @github-actions
    Contributor

    To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions