Skip to content

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

@CasualDeveloper

Description

@CasualDeveloper

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

Metadata

Metadata

Assignees

Labels

opentuiThis relates to changes in v1.0, now that opencode uses opentui

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions