diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/helpers.ts b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/helpers.ts index ab05215b28e..5abc578d44d 100644 --- a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/helpers.ts +++ b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/helpers.ts @@ -8,7 +8,11 @@ import { Unicode11Addon } from "@xterm/addon-unicode11"; import { WebglAddon } from "@xterm/addon-webgl"; import type { ITheme } from "@xterm/xterm"; import { Terminal as XTerm } from "@xterm/xterm"; -import { getBinding, isTerminalReservedEvent } from "renderer/hotkeys"; +import { + getBinding, + isTerminalReservedEvent, + resolveHotkeyFromEvent, +} from "renderer/hotkeys"; import type { DetectedLink } from "renderer/lib/terminal/links"; import { TerminalLinkManager } from "renderer/lib/terminal/terminal-link-manager"; import { electronTrpcClient as trpcClient } from "renderer/lib/trpc-client"; @@ -592,9 +596,9 @@ export function setupKeyboardHandler( return false; } - // Any other ctrl/meta combo → let it bubble to document for react-hotkeys-hook - if (event.type === "keydown" && (event.metaKey || event.ctrlKey)) - return false; + // Only bubble chords registered as app hotkeys; everything else reaches the PTY. + // Mirrors v2 terminal-runtime.ts:21 (VSCode terminalInstance pattern). + if (resolveHotkeyFromEvent(event) !== null) return false; return true; };