From 9e9d50db86c60b8ac50ac424b6cc8bd27d8af40a Mon Sep 17 00:00:00 2001 From: vimtor Date: Mon, 22 Jun 2026 15:04:32 +0200 Subject: [PATCH 1/2] feat(tui): add diff viewer keybind --- packages/opencode/src/cli/cmd/tui/config/keybind.ts | 2 ++ packages/opencode/test/config/tui.test.ts | 2 ++ 2 files changed, 4 insertions(+) diff --git a/packages/opencode/src/cli/cmd/tui/config/keybind.ts b/packages/opencode/src/cli/cmd/tui/config/keybind.ts index 4c11cf837d51..3bd498b52829 100644 --- a/packages/opencode/src/cli/cmd/tui/config/keybind.ts +++ b/packages/opencode/src/cli/cmd/tui/config/keybind.ts @@ -59,6 +59,7 @@ export const Definitions = { command_list: keybind("ctrl+p", "List available commands"), help_show: keybind("none", "Open help dialog"), docs_open: keybind("none", "Open documentation"), + diff_open: keybind("none", "Open diff viewer"), diff_close: keybind("escape,q", "Close diff viewer"), diff_toggle: keybind("enter,space", "Toggle diff viewer item"), diff_expand: keybind("right", "Expand diff viewer item"), @@ -265,6 +266,7 @@ export const CommandMap = { command_list: "command.palette.show", help_show: "help.show", docs_open: "docs.open", + diff_open: "diff.open", diff_close: "diff.close", diff_toggle: "diff.toggle", diff_expand: "diff.expand", diff --git a/packages/opencode/test/config/tui.test.ts b/packages/opencode/test/config/tui.test.ts index be3e397dc2be..5644835c0ec8 100644 --- a/packages/opencode/test/config/tui.test.ts +++ b/packages/opencode/test/config/tui.test.ts @@ -467,6 +467,7 @@ it.instance("resolves keybind lookup from canonical keybinds", () => keybinds: { leader: { key: { name: "g", ctrl: true } }, command_list: "alt+p", + diff_open: "ctrl+j", which_key_toggle: "alt+k", editor_open: "ctrl+e", "prompt.autocomplete.next": "ctrl+j", @@ -482,6 +483,7 @@ it.instance("resolves keybind lookup from canonical keybinds", () => expect(config.keybinds.get("leader")?.[0]?.key).toEqual({ name: "g", ctrl: true }) expect(config.leader_timeout).toBe(1234) expect(config.keybinds.get("command.palette.show")?.[0]?.key).toBe("alt+p") + expect(config.keybinds.get("diff.open")?.[0]?.key).toBe("ctrl+j") expect(config.keybinds.get("session.new")?.[0]?.key).toBe("n") expect(config.keybinds.get("which-key.toggle")?.[0]?.key).toBe("alt+k") expect(config.keybinds.get("which-key.layout.toggle")?.[0]?.key).toBe("ctrl+alt+shift+k") From d16ad581129a9c9be463f651ecab6605dc001103 Mon Sep 17 00:00:00 2001 From: vimtor Date: Mon, 22 Jun 2026 16:18:19 +0200 Subject: [PATCH 2/2] fix(tui): register diff open binding --- packages/tui/src/app.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/tui/src/app.tsx b/packages/tui/src/app.tsx index 17a9a554c2e4..bc3134990ed8 100644 --- a/packages/tui/src/app.tsx +++ b/packages/tui/src/app.tsx @@ -118,6 +118,7 @@ const appBindingCommands = [ "theme.mode.lock", "help.show", "docs.open", + "diff.open", "workspace.list", "app.debug", "app.console",