summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/components/terminal.tsx
diff options
context:
space:
mode:
authorRyan Miville <[email protected]>2026-02-07 20:26:54 -0500
committerGitHub <[email protected]>2026-02-07 19:26:54 -0600
commitecaeb9e6027c6be2d3f848812dc41c22342e9917 (patch)
tree2f50960a569f23f21d20f40bc9edb9619f734081 /packages/app/src/components/terminal.tsx
parente772fc6e2372cf2b82252d3ce2154696cec25d72 (diff)
downloadopencode-ecaeb9e6027c6be2d3f848812dc41c22342e9917.tar.gz
opencode-ecaeb9e6027c6be2d3f848812dc41c22342e9917.zip
fix(app): respect terminal toggle keybind when terminal is focused (#12635)
Diffstat (limited to 'packages/app/src/components/terminal.tsx')
-rw-r--r--packages/app/src/components/terminal.tsx12
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()