opencode icon indicating copy to clipboard operation
opencode copied to clipboard

[Enhancement] Add configurable keybinds for dialog actions (#6144)

Open CasualDeveloper opened this issue 3 weeks ago • 3 comments

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 - default ctrl+d
  • session_rename - default ctrl+r
  • stash_delete - default ctrl+d
  • model_provider_list - default ctrl+a
  • model_favorite_toggle - default ctrl+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

CasualDeveloper avatar Dec 25 '25 03:12 CasualDeveloper