opencode
opencode copied to clipboard
[Enhancement] Add configurable keybinds for dialog actions (#6144)
Problem
Several dialog keybinds are hardcoded and cannot be customized:
- Session list:
ctrl+d(delete),ctrl+r(rename) - Stash dialog:
ctrl+d(delete) - Model dialog:
ctrl+a(provider list),ctrl+f(favorite toggle)
Users who have conflicts with these keybinds (e.g., ctrl+d for shell EOF, ctrl+r for reverse search) cannot remap them.
Proposed Solution
Add new keybind config options:
-
session_delete- defaultctrl+d -
session_rename- defaultctrl+r -
stash_delete- defaultctrl+d -
model_provider_list- defaultctrl+a -
model_favorite_toggle- defaultctrl+f
Usage
{
"keybinds": {
"session_delete": "super+d",
"session_rename": "super+r"
}
}
Files to Modify
-
packages/opencode/src/config/config.ts -
packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx -
packages/opencode/src/cli/cmd/tui/component/dialog-stash.tsx -
packages/opencode/src/cli/cmd/tui/component/dialog-model.tsx -
packages/opencode/src/util/keybind.ts