Skip to content

[bug] Terminal swallows unbound Ctrl/Cmd chords that should stay inside the PTY #3337

Closed as duplicate

Description

@surlymochan

Summary

In Superset Desktop, terminal panes currently let registered app hotkeys bubble out to the app, but they also end up swallowing unbound Ctrl/Cmd chords that should stay inside the shell/TUI.

In practice this breaks native terminal behavior for readline/TUI apps, for example:

  • Ctrl+A / Ctrl+E in shells
  • Ctrl+B, Ctrl+O and similar chords inside terminal TUIs

Environment

  • Superset Desktop built from current main
  • macOS, Apple Silicon
  • Reproduced with shell readline and Codex CLI inside the integrated terminal

Reproduction

  1. Open a terminal pane.
  2. Run a shell or TUI app inside it.
  3. Press unbound terminal chords such as:
    • Ctrl+A
    • Ctrl+E
    • Ctrl+B
    • Ctrl+O
  4. Observe that they do not reach the PTY as expected.

Expected behavior

Only chords that are actually registered as Superset app hotkeys should bubble to the app layer.

All other Ctrl / Cmd chords should remain inside the terminal so shell bindings and TUIs behave normally.

Actual behavior

The terminal keyboard handler treats almost any modifier chord as an app-level shortcut candidate, so unbound terminal chords never reach the PTY.

Suspected area

apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/helpers.ts

Specifically the custom key event handler that decides whether a keyboard event should be handled by xterm or be allowed to bubble to the document/app hotkey layer.

Proposed fix

Only let a key event bubble if it resolves to a registered app hotkey.

If a chord is not reserved by the terminal and also does not match any app hotkey, return it to xterm so it reaches the shell/TUI.

Activity

  1. eungkyu commented on Apr 12, 2026

    @eungkyu

    +1 on this. I rely heavily on readline keybindings (Ctrl+A, Ctrl+E, Ctrl+B, Ctrl+F, Ctrl+K, Ctrl+U, etc.) for everyday terminal work, and this regression in v1.5.0 makes the integrated terminal feel significantly less usable.

    Traced it to PR #3178 — the old setupKeyboardHandler checked isAppHotkeyEvent() so only actually-registered app shortcuts were intercepted; the new handler blanket-blocks every Ctrl/Cmd chord that isn't in the small TERMINAL_RESERVED set. Agreed that the fix should flip the default: let unbound chords stay in xterm and only bubble the ones that resolve to a registered hotkey.

  2. jdillon commented on Apr 12, 2026

    @jdillon

    #3333 is related to this as well.

    +1 this degradation of terminal behavior and decades of muscle memory makes superset terminals very very painful to use now.

    CTRL-B to background tasks in claude 100% broken.

    :-(

  3. Kitenite commented on May 6, 2026

    @Kitenite
    Member

    Related reports (cross-referenced during issue triage — same area, may or may not share a root cause):

  4. Kitenite commented on Jul 11, 2026

    @Kitenite
    Member

    Closing as a duplicate of #5604, the consolidated tracker for stale terminal-input issues from the July 2026 stale-issue sweep (no activity since 2026-06-01). If this still applies on a current build, comment on #5604 and we'll reopen.

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

Metadata

Metadata

Assignees

No one assigned

    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