Keybindings system — configurable keyboard shortcuts #18
Labels
No labels
area:config
area:contracts
area:engine
area:eventsourcing
area:frontend
area:git
area:ipc
area:persistence
area:provider
area:scaffold
area:terminal
type:user-story
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/peon#18
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
User story
As a user, I want configurable keyboard shortcuts that work across the application (global scope) and within specific views (chat, terminal, diff), with sensible defaults matching the spec, so that I can operate forge-agent efficiently from the keyboard.
Acceptance criteria
Keybinding registry
AppConfig.keybindingsHashMapVec<Keybinding>with resolvedcurrent_keyvaluesDefault bindings (spec §11.2)
send-messageCtrl+Returninterrupt-turnCtrl+Cnew-threadCtrl+Ttoggle-sidebarCtrl+Btoggle-terminalCtrl+`switch-diffCtrl+Dapprove-actionCtrl+Yreject-actionCtrl+Nrestore-checkpointCtrl+Zfocus-input/GTK4 integration (
setup_keybindings())gtk::EventControllerKeyattached to theAdwApplicationWindowKeySpecfrom the GDK key + modifiershandle_keybinding(id, ipc)glib::Propagation::Stopon match,ProceedotherwiseAction handlers
send-message→ reads input text, dispatchesStartTurninterrupt-turn→ dispatchesInterruptTurnfor active threadnew-thread→ dispatchesCreateThreadfor active projecttoggle-sidebar→ togglesAdwOverlaySplitView.show_sidebartoggle-terminal→ toggles terminal pane visibilityswitch-diff→ switchesActiveViewto Diffapprove-action/reject-action→ dispatches approval/rejection commandsrestore-checkpoint→ dispatchesRestoreCheckpointfor the last checkpointfocus-input→ grabs focus on the message inputGtkTextViewKeySpec parsing
KeySpecstructTests
Out of scope
References
Dependencies
issue-13-app-shell