fix: keybind docs out of sync

This commit is contained in:
adamdotdevin
2025-08-15 06:45:20 -05:00
parent 40ed73af17
commit 79a4e35a74
5 changed files with 37 additions and 48 deletions

View File

@@ -199,12 +199,6 @@ export namespace Config {
.object({ .object({
leader: z.string().optional().default("ctrl+x").describe("Leader key for keybind combinations"), leader: z.string().optional().default("ctrl+x").describe("Leader key for keybind combinations"),
app_help: z.string().optional().default("<leader>h").describe("Show help dialog"), app_help: z.string().optional().default("<leader>h").describe("Show help dialog"),
switch_mode: z.string().optional().default("none").describe("@deprecated use switch_agent. Next mode"),
switch_mode_reverse: z
.string()
.optional()
.default("none")
.describe("@deprecated use switch_agent_reverse. Previous mode"),
switch_agent: z.string().optional().default("tab").describe("Next agent"), switch_agent: z.string().optional().default("tab").describe("Next agent"),
switch_agent_reverse: z.string().optional().default("shift+tab").describe("Previous agent"), switch_agent_reverse: z.string().optional().default("shift+tab").describe("Previous agent"),
editor_open: z.string().optional().default("<leader>e").describe("Open external editor"), editor_open: z.string().optional().default("<leader>e").describe("Open external editor"),
@@ -222,10 +216,6 @@ export namespace Config {
model_cycle_recent: z.string().optional().default("f2").describe("Next recent model"), model_cycle_recent: z.string().optional().default("f2").describe("Next recent model"),
model_cycle_recent_reverse: z.string().optional().default("shift+f2").describe("Previous recent model"), model_cycle_recent_reverse: z.string().optional().default("shift+f2").describe("Previous recent model"),
theme_list: z.string().optional().default("<leader>t").describe("List available themes"), theme_list: z.string().optional().default("<leader>t").describe("List available themes"),
file_list: z.string().optional().default("none").describe("@deprecated Currently not available. List files"),
file_close: z.string().optional().default("none").describe("@deprecated Close file"),
file_search: z.string().optional().default("none").describe("@deprecated Search file"),
file_diff_toggle: z.string().optional().default("none").describe("@deprecated Split/unified diff"),
project_init: z.string().optional().default("<leader>i").describe("Create/update AGENTS.md"), project_init: z.string().optional().default("<leader>i").describe("Create/update AGENTS.md"),
input_clear: z.string().optional().default("ctrl+c").describe("Clear input field"), input_clear: z.string().optional().default("ctrl+c").describe("Clear input field"),
input_paste: z.string().optional().default("ctrl+v").describe("Paste from clipboard"), input_paste: z.string().optional().default("ctrl+v").describe("Paste from clipboard"),
@@ -239,16 +229,27 @@ export namespace Config {
.optional() .optional()
.default("ctrl+alt+d") .default("ctrl+alt+d")
.describe("Scroll messages down by half page"), .describe("Scroll messages down by half page"),
messages_previous: z.string().optional().default("ctrl+up").describe("Navigate to previous message"),
messages_next: z.string().optional().default("ctrl+down").describe("Navigate to next message"),
messages_first: z.string().optional().default("ctrl+g").describe("Navigate to first message"), messages_first: z.string().optional().default("ctrl+g").describe("Navigate to first message"),
messages_last: z.string().optional().default("ctrl+alt+g").describe("Navigate to last message"), messages_last: z.string().optional().default("ctrl+alt+g").describe("Navigate to last message"),
messages_layout_toggle: z.string().optional().default("<leader>p").describe("Toggle layout"),
messages_copy: z.string().optional().default("<leader>y").describe("Copy message"), messages_copy: z.string().optional().default("<leader>y").describe("Copy message"),
messages_revert: z.string().optional().default("none").describe("@deprecated use messages_undo. Revert message"),
messages_undo: z.string().optional().default("<leader>u").describe("Undo message"), messages_undo: z.string().optional().default("<leader>u").describe("Undo message"),
messages_redo: z.string().optional().default("<leader>r").describe("Redo message"), messages_redo: z.string().optional().default("<leader>r").describe("Redo message"),
app_exit: z.string().optional().default("ctrl+c,<leader>q").describe("Exit the application"), app_exit: z.string().optional().default("ctrl+c,<leader>q").describe("Exit the application"),
// Deprecated commands
switch_mode: z.string().optional().default("none").describe("@deprecated use switch_agent. Next mode"),
switch_mode_reverse: z
.string()
.optional()
.default("none")
.describe("@deprecated use switch_agent_reverse. Previous mode"),
file_list: z.string().optional().default("none").describe("@deprecated Currently not available. List files"),
file_close: z.string().optional().default("none").describe("@deprecated Close file"),
file_search: z.string().optional().default("none").describe("@deprecated Search file"),
file_diff_toggle: z.string().optional().default("none").describe("@deprecated Split/unified diff"),
messages_previous: z.string().optional().default("none").describe("@deprecated Navigate to previous message"),
messages_next: z.string().optional().default("none").describe("@deprecated Navigate to next message"),
messages_layout_toggle: z.string().optional().default("none").describe("@deprecated Toggle layout"),
messages_revert: z.string().optional().default("none").describe("@deprecated use messages_undo. Revert message"),
}) })
.strict() .strict()
.openapi({ .openapi({

View File

@@ -138,11 +138,10 @@ const (
MessagesPageDownCommand CommandName = "messages_page_down" MessagesPageDownCommand CommandName = "messages_page_down"
MessagesHalfPageUpCommand CommandName = "messages_half_page_up" MessagesHalfPageUpCommand CommandName = "messages_half_page_up"
MessagesHalfPageDownCommand CommandName = "messages_half_page_down" MessagesHalfPageDownCommand CommandName = "messages_half_page_down"
MessagesPreviousCommand CommandName = "messages_previous"
MessagesNextCommand CommandName = "messages_next"
MessagesFirstCommand CommandName = "messages_first" MessagesFirstCommand CommandName = "messages_first"
MessagesLastCommand CommandName = "messages_last" MessagesLastCommand CommandName = "messages_last"
MessagesLayoutToggleCommand CommandName = "messages_layout_toggle"
MessagesCopyCommand CommandName = "messages_copy" MessagesCopyCommand CommandName = "messages_copy"
MessagesUndoCommand CommandName = "messages_undo" MessagesUndoCommand CommandName = "messages_undo"
MessagesRedoCommand CommandName = "messages_redo" MessagesRedoCommand CommandName = "messages_redo"
@@ -348,16 +347,7 @@ func LoadFromConfig(config *opencode.Config) CommandRegistry {
Description: "half page down", Description: "half page down",
Keybindings: parseBindings("ctrl+alt+d"), Keybindings: parseBindings("ctrl+alt+d"),
}, },
{
Name: MessagesPreviousCommand,
Description: "previous message",
Keybindings: parseBindings("ctrl+up"),
},
{
Name: MessagesNextCommand,
Description: "next message",
Keybindings: parseBindings("ctrl+down"),
},
{ {
Name: MessagesFirstCommand, Name: MessagesFirstCommand,
Description: "first message", Description: "first message",
@@ -368,11 +358,7 @@ func LoadFromConfig(config *opencode.Config) CommandRegistry {
Description: "last message", Description: "last message",
Keybindings: parseBindings("ctrl+alt+g"), Keybindings: parseBindings("ctrl+alt+g"),
}, },
{
Name: MessagesLayoutToggleCommand,
Description: "toggle layout",
Keybindings: parseBindings("<leader>p"),
},
{ {
Name: MessagesCopyCommand, Name: MessagesCopyCommand,
Description: "copy message", Description: "copy message",

View File

@@ -99,7 +99,6 @@ func (m Model) View() string {
if m.isDiff == nil || *m.isDiff == false { if m.isDiff == nil || *m.isDiff == false {
diffToggle = "" diffToggle = ""
} }
layoutToggle := m.app.Key(commands.MessagesLayoutToggleCommand)
background := t.Background() background := t.Background()
footer := layout.Render( footer := layout.Render(
@@ -114,9 +113,7 @@ func (m Model) View() string {
layout.FlexItem{ layout.FlexItem{
View: close, View: close,
}, },
layout.FlexItem{
View: layoutToggle,
},
layout.FlexItem{ layout.FlexItem{
View: diffToggle, View: diffToggle,
}, },

View File

@@ -1277,10 +1277,7 @@ func (a Model) executeCommand(command commands.Command) (tea.Model, tea.Cmd) {
a.messages = updated.(chat.MessagesComponent) a.messages = updated.(chat.MessagesComponent)
cmds = append(cmds, cmd) cmds = append(cmds, cmd)
} }
case commands.MessagesLayoutToggleCommand:
a.messagesRight = !a.messagesRight
a.app.State.MessagesRight = a.messagesRight
cmds = append(cmds, a.app.SaveState())
case commands.MessagesCopyCommand: case commands.MessagesCopyCommand:
updated, cmd := a.messages.CopyLastMessage() updated, cmd := a.messages.CopyLastMessage()
a.messages = updated.(chat.MessagesComponent) a.messages = updated.(chat.MessagesComponent)

View File

@@ -12,18 +12,24 @@ opencode has a list of keybinds that you can customize through the opencode conf
"leader": "ctrl+x", "leader": "ctrl+x",
"app_help": "<leader>h", "app_help": "<leader>h",
"switch_agent": "tab", "switch_agent": "tab",
"switch_agent_reverse": "shift+tab",
"editor_open": "<leader>e", "editor_open": "<leader>e",
"session_new": "<leader>n", "session_new": "<leader>n",
"session_list": "<leader>l", "session_list": "<leader>l",
"session_share": "<leader>s", "session_share": "<leader>s",
"session_unshare": "<leader>u", "session_unshare": "none",
"session_export": "<leader>x",
"session_interrupt": "esc", "session_interrupt": "esc",
"session_compact": "<leader>c", "session_compact": "<leader>c",
"tool_details": "<leader>d", "tool_details": "<leader>d",
"thinking_blocks": "<leader>b",
"model_list": "<leader>m", "model_list": "<leader>m",
"agent_list": "<leader>a",
"model_cycle_recent": "f2",
"model_cycle_recent_reverse": "shift+f2",
"theme_list": "<leader>t", "theme_list": "<leader>t",
"project_init": "<leader>i", "project_init": "<leader>i",
@@ -39,6 +45,8 @@ opencode has a list of keybinds that you can customize through the opencode conf
"messages_first": "ctrl+g", "messages_first": "ctrl+g",
"messages_last": "ctrl+alt+g", "messages_last": "ctrl+alt+g",
"messages_copy": "<leader>y", "messages_copy": "<leader>y",
"messages_undo": "<leader>u",
"messages_redo": "<leader>r",
"app_exit": "ctrl+c,<leader>q" "app_exit": "ctrl+c,<leader>q"
} }
@@ -65,7 +73,7 @@ You can disable a keybind by adding the key to your config with a value of "none
{ {
"$schema": "https://opencode.ai/config.json", "$schema": "https://opencode.ai/config.json",
"keybinds": { "keybinds": {
"session_compact": "none", "session_compact": "none"
} }
} }
``` ```