diff options
| author | Ryan Miville <[email protected]> | 2026-02-07 20:26:54 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-02-07 19:26:54 -0600 |
| commit | ecaeb9e6027c6be2d3f848812dc41c22342e9917 (patch) | |
| tree | 2f50960a569f23f21d20f40bc9edb9619f734081 /packages/app/src | |
| parent | e772fc6e2372cf2b82252d3ce2154696cec25d72 (diff) | |
| download | opencode-ecaeb9e6027c6be2d3f848812dc41c22342e9917.tar.gz opencode-ecaeb9e6027c6be2d3f848812dc41c22342e9917.zip | |
fix(app): respect terminal toggle keybind when terminal is focused (#12635)
Diffstat (limited to 'packages/app/src')
| -rw-r--r-- | packages/app/src/components/terminal.tsx | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/packages/app/src/components/terminal.tsx b/packages/app/src/components/terminal.tsx index 64adc797c..3baafe511 100644 --- a/packages/app/src/components/terminal.tsx +++ b/packages/app/src/components/terminal.tsx @@ -3,6 +3,7 @@ import { ComponentProps, createEffect, createSignal, onCleanup, onMount, splitPr import { usePlatform } from "@/context/platform" import { useSDK } from "@/context/sdk" import { monoFontFamily, useSettings } from "@/context/settings" +import { parseKeybind, matchKeybind } from "@/context/command" import { SerializeAddon } from "@/addons/serialize" import { LocalPTY } from "@/context/terminal" import { resolveThemeVariant, useTheme, withAlpha, type HexColor } from "@opencode-ai/ui/theme" @@ -10,6 +11,8 @@ import { useLanguage } from "@/context/language" import { showToast } from "@opencode-ai/ui/toast" import { disposeIfDisposable, getHoveredLinkText, setOptionIfSupported } from "@/utils/runtime-adapters" +const TOGGLE_TERMINAL_ID = "terminal.toggle" +const DEFAULT_TOGGLE_TERMINAL_KEYBIND = "ctrl+`" export interface TerminalProps extends ComponentProps<"div"> { pty: LocalPTY onSubmit?: () => void @@ -237,12 +240,11 @@ export const Terminal = (props: TerminalProps) => { return true } - // allow for ctrl-` to toggle terminal in parent - if (event.ctrlKey && key === "`") { - return true - } + // allow for toggle terminal keybinds in parent + const config = settings.keybinds.get(TOGGLE_TERMINAL_ID) ?? DEFAULT_TOGGLE_TERMINAL_KEYBIND + const keybinds = parseKeybind(config) - return false + return matchKeybind(keybinds, event) }) const fit = new mod.FitAddon() |
