Studio: Shortcuts API (declarative, customizable, conflict detection)
Current State
Editor keyboard shortcuts (where they exist) are hardcoded. There is no central registry, no customization, and no conflict detection. Menu items don't advertise their shortcuts.
Goal
A declarative Shortcuts API: commands register key bindings centrally; bindings are user-customizable, persisted, conflict-checked, and shown next to menu items.
Tasks
- Command registry (id, label, default binding, handler) — shared with menus (
MenuBar) - Declarative binding definitions with modifier support and chords
- Conflict detection + resolution UI (reuse for Input API #10 (closed) rebinding)
- User overrides persisted via the editor Settings system
- Display active shortcut next to its menu item
- A keybindings editor panel (list, search, rebind, reset)
Acceptance Criteria
- Commands are invokable via registered shortcuts and from menus.
- Users can rebind shortcuts; conflicts are detected and surfaced.
- Custom bindings persist across sessions.
Related
- (settings), #10 (closed) (input rebinding UI), #4 (closed) (plugins register commands).
Edited by Bruno Massa