Repository navigation
Semantic keymap: validated remapping, conflicts and host notes (#335) - #378
Draft
raiseCatError wants to merge 2 commits into
Draft
raiseCatError wants to merge 2 commits into
raiseCatError wants to merge 2 commits into
Conversation
#335, stacked on the workspace foundation. A keymap is declarative data (bind/unbind entries by key name, context and action), validated before use and never executed. - Only keys the input parser tells apart are bindable; others (Ctrl+B, Cmd+K, Alt+Left) are refused with the reason. - Job control, paste and pointer events are never bindable; in the composer neither are typing and Enter. - Every bindable key already means something in an empty composer (Left opens Sessions, Right accepts the inline suggestion...), recorded from the composer's dispatch; a composer binding needs "replaces": true, and an active draft still wins. - Conflicts keep the first binding; invalid entries are skipped and reported while the defaults stand; an action left with no key and no command, or a sidebar with no way back, is reported. - hostNotes: Terminal.app's own Page Up/Down and Home/End scrolling, F1 on macOS, a tmux root-table binding, tmux's escape-time. - describeKeymap lists the bindings in effect and the commands that always work.
…ot edit the same file
17 tasks
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#335, stacked on the workspace foundation (#375). Standalone; independent of the sidebar (#376) and panel PRs.
A keymap is declarative data (
bind/unbindby key name, context and action), validated before use, never executed:Ctrl+B,Cmd+K,Alt+Leftand the like are refused with the reason (the terminal may send them as something else or not at all).TerminalApp.ts:2052—, Right accepts the inline suggestion, Up recalls history, Tab completes, Shift+Tab moves through blocks…); a composer binding needs"replaces": true, and an active draft still wins.hostNotes: Terminal.app's own Page Up/Down and Home/End scrolling, F1 on macOS, a tmux root-table (bind -n) binding, tmux'sescape-time. Notes, never delivery guarantees; slash commands remain the reliable path.describeKeymap: the bindings in effect plus the commands that always work.Integration (later, with the frontend):
keymap.jsonin the config directory,/keysand/keys reload.Tests:
tests/workspaceKeymap.test.ts. Design:docs/design/workspace-keymap.md. Physical checks of host delivery (Ghostty, Terminal.app, tmux) are listed, not performed.