Research: keyboard shortcut conventions of leading terminals per platform (for a shortcuts re-grill) #155

Closed
opened 2026-10-10 12:18:44 +00:00 by kayg · 11 comments
Owner

Owner (2026-10-10): "we really need to rethink shortcuts: match existing conventions like Windows Terminal on Windows, Konsole/Alacritty/Kitty on Linux, iTerm2/Ghostty on macOS. assign /codex-subagents to research please. this needs another grill."

Context: the D212 defaults put Ctrl+Alt+R/D/W on PC, which is AltGr on many layouts, and Ctrl+K never reaches a focused terminal on PC (UX audit #152, §5). Research the conventions, then grill the owner.

Owner (2026-10-10): "we really need to rethink shortcuts: match existing conventions like Windows Terminal on Windows, Konsole/Alacritty/Kitty on Linux, iTerm2/Ghostty on macOS. assign /codex-subagents to research please. this needs another grill." Context: the D212 defaults put Ctrl+Alt+R/D/W on PC, which is AltGr on many layouts, and Ctrl+K never reaches a focused terminal on PC (UX audit #152, §5). Research the conventions, then grill the owner.
Author
Owner

Started. Branch research-shortcuts, base dev SHA 6ee372ac26d969ac86c051f1eb7ffcc4dc4e819b. Reading official terminal defaults and browser keyboard limits for the report; research only.

Started. Branch `research-shortcuts`, base `dev` SHA `6ee372ac26d969ac86c051f1eb7ffcc4dc4e819b`. Reading official terminal defaults and browser keyboard limits for the report; research only.
Author
Owner

Finding: the focused-terminal convention is platform-shaped. Current default/source references show Ctrl+Shift for Windows Terminal and kitty/WezTerm/foot/Ghostty Linux, and Cmd for iTerm2/Ghostty/macOS Terminal; examples: WT Ctrl+Shift+P palette and Alt+Shift+Plus/Minus pane split Microsoft docs, Kitty Ctrl+Shift+T/Ctrl+Shift+Q tab lifecycle kitty overview, Ghostty 1.2.0 release notes. Chromium's normal-tab Ctrl+W/T/N/Tab (Windows/Linux) and Cmd+W/T/N/Q (macOS) are browser commands Chrome docs; Keyboard Lock only works during JS-requested fullscreen Chrome docs. This reinforces D206's no-Ctrl+Alt PC rule and means browser-only actions cannot safely rely on browser-reserved chords.

Finding: the focused-terminal convention is platform-shaped. Current default/source references show `Ctrl+Shift` for Windows Terminal and kitty/WezTerm/foot/Ghostty Linux, and `Cmd` for iTerm2/Ghostty/macOS Terminal; examples: WT `Ctrl+Shift+P` palette and `Alt+Shift+Plus/Minus` pane split [Microsoft docs](https://learn.microsoft.com/en-us/windows/terminal/panes), Kitty `Ctrl+Shift+T`/`Ctrl+Shift+Q` tab lifecycle [kitty overview](https://sw.kovidgoyal.net/kitty/overview/), Ghostty 1.2.0 [release notes](https://ghostty.org/docs/install/release-notes/1-2-0). Chromium's normal-tab `Ctrl+W/T/N/Tab` (Windows/Linux) and `Cmd+W/T/N/Q` (macOS) are browser commands [Chrome docs](https://support.google.com/chrome/answer/157179?hl=en); Keyboard Lock only works during JS-requested fullscreen [Chrome docs](https://developer.chrome.com/docs/capabilities/web-apis/keyboard-lock). This reinforces D206's no-Ctrl+Alt PC rule and means browser-only actions cannot safely rely on browser-reserved chords.
Author
Owner

Step 1 committed and pushed. Added the Windows, Linux, and macOS default-binding matrices with dated primary-source links for Windows Terminal/VS Code, Konsole/GNOME terminals/Ptyxis, Alacritty, Kitty, WezTerm, foot, Ghostty, iTerm2, Terminal.app, and Warp. Repeated findings include Ctrl+Shift+C/V on Linux, Cmd+C/V on macOS, and Cmd+D/Cmd+Shift+D for right/down splits in split-capable macOS terminals. No build or browser run; research-only step.
Head: dbe4338e.

Step 1 committed and pushed. Added the Windows, Linux, and macOS default-binding matrices with dated primary-source links for Windows Terminal/VS Code, Konsole/GNOME terminals/Ptyxis, Alacritty, Kitty, WezTerm, foot, Ghostty, iTerm2, Terminal.app, and Warp. Repeated findings include Ctrl+Shift+C/V on Linux, Cmd+C/V on macOS, and Cmd+D/Cmd+Shift+D for right/down splits in split-capable macOS terminals. No build or browser run; research-only step. Head: dbe4338e.
Author
Owner

Finding: D212's PC split-right default Ctrl+Shift+D overlaps Chrome, Edge, and Firefox's “bookmark all tabs” shortcut; its split-down Ctrl+Shift+Alt+D includes the AltGr-sensitive Ctrl+Alt pair called out by D206. On macOS, Chrome/Edge use Cmd+D and Cmd+Shift+D for bookmarks. Evidence is tabulated in research/terminal-shortcuts/REPORT.md from the official browser shortcut references linked there. The report recommends browser-safe normal-tab defaults and keeps native terminal aliases optional under fullscreen Keyboard Lock.

Finding: D212's PC split-right default `Ctrl+Shift+D` overlaps Chrome, Edge, and Firefox's “bookmark all tabs” shortcut; its split-down `Ctrl+Shift+Alt+D` includes the AltGr-sensitive Ctrl+Alt pair called out by D206. On macOS, Chrome/Edge use `Cmd+D` and `Cmd+Shift+D` for bookmarks. Evidence is tabulated in `research/terminal-shortcuts/REPORT.md` from the official browser shortcut references linked there. The report recommends browser-safe normal-tab defaults and keeps native terminal aliases optional under fullscreen Keyboard Lock.
Author
Owner

Step 2 committed and pushed at 9d8fc29b. Completed the report with browser-owned shortcuts for Chrome, Edge, Firefox, and Safari; PWA/fullscreen/Keyboard Lock limits; shell/readline, Vim, tmux, and AltGr conflicts; key-vs-code layout behavior; the browser-safe per-platform recommendation; and five owner grill questions. The map avoids D212's PC split conflicts and macOS browser bookmark chords in normal PWA mode. git diff --check passed with no output. No Rust build or browser run per brief.

Step 2 committed and pushed at 9d8fc29b. Completed the report with browser-owned shortcuts for Chrome, Edge, Firefox, and Safari; PWA/fullscreen/Keyboard Lock limits; shell/readline, Vim, tmux, and AltGr conflicts; key-vs-code layout behavior; the browser-safe per-platform recommendation; and five owner grill questions. The map avoids D212's PC split conflicts and macOS browser bookmark chords in normal PWA mode. `git diff --check` passed with no output. No Rust build or browser run per brief.
Author
Owner

Finished research-shortcuts. research/terminal-shortcuts/REPORT.md contains three platform comparison tables, browser accelerator/PWA and Keyboard Lock limits, shell and international-layout findings, a browser-safe per-platform recommendation for D212 actions, and five grill questions. Two atomic documentation commits are pushed; head SHA: 9d8fc29b05.

Gate record:
scripts/verify fast: NOT RUN — research-only brief prohibits Rust builds and browser runs.
git diff --check: passed; no output.

Finished research-shortcuts. `research/terminal-shortcuts/REPORT.md` contains three platform comparison tables, browser accelerator/PWA and Keyboard Lock limits, shell and international-layout findings, a browser-safe per-platform recommendation for D212 actions, and five grill questions. Two atomic documentation commits are pushed; head SHA: 9d8fc29b056fec26c4f908681ec9b666c972babc. Gate record: `scripts/verify fast`: NOT RUN — research-only brief prohibits Rust builds and browser runs. `git diff --check`: passed; no output.
Author
Owner

D222 implementation started. Branch shortcuts-d222 from release-prod-2 at 62d0a511. Pushed so far:

  • 5df17287 matching core: printable keys match the character, AltGr never matches, labels in the table order
  • d0aacfa1 default keymap (canvas, palette, ? panel, window move, the Mac pinned to shift:false)
  • a934edca keyboard font size (⌘+ ⌘− ⌘0, Ctrl++ Ctrl+− Ctrl+0)
  • 91ae5037 Keyboard Lock module and lock-only close alternates, captures
  • 40058711 cross-browser probe and docs/verification/shortcuts-d222.md

Findings so far (evidence in the commits and the doc):

  1. No fullscreen action exists on release-prod-2 or dev (D193 is not built). The Keyboard Lock bonus is wired in the canvas and in keyboard-lock.ts but nothing calls enterAppFullscreen yet.
  2. Ctrl+Shift+D (PC split right in the table) is bound to "bookmark all tabs" in Chrome, Edge and Firefox (research report). Flagged for the owner's hand check.
  3. Plain Ctrl+K reaches the page in all three engines in the probe. Browser search may still take it in a real tab (hand check).
  4. Probe: 43 of 43 default chords reached the page and were cancelled in Chromium 149, WebKit 26.5 and Firefox 151. Browser accelerators cannot be shown with synthetic input.
  5. Pre-existing: canvas.spec "a Mac sees ⌘K" fails on release-prod-2 too (its Lock row expects Ctrl labels on a Mac; the row is a prototype literal "Ctrl+Shift+L").
D222 implementation started. Branch shortcuts-d222 from release-prod-2 at 62d0a511. Pushed so far: - 5df17287 matching core: printable keys match the character, AltGr never matches, labels in the table order - d0aacfa1 default keymap (canvas, palette, ? panel, window move, the Mac pinned to shift:false) - a934edca keyboard font size (⌘+ ⌘− ⌘0, Ctrl++ Ctrl+− Ctrl+0) - 91ae5037 Keyboard Lock module and lock-only close alternates, captures - 40058711 cross-browser probe and docs/verification/shortcuts-d222.md Findings so far (evidence in the commits and the doc): 1. No fullscreen action exists on release-prod-2 or dev (D193 is not built). The Keyboard Lock bonus is wired in the canvas and in keyboard-lock.ts but nothing calls enterAppFullscreen yet. 2. Ctrl+Shift+D (PC split right in the table) is bound to "bookmark all tabs" in Chrome, Edge and Firefox (research report). Flagged for the owner's hand check. 3. Plain Ctrl+K reaches the page in all three engines in the probe. Browser search may still take it in a real tab (hand check). 4. Probe: 43 of 43 default chords reached the page and were cancelled in Chromium 149, WebKit 26.5 and Firefox 151. Browser accelerators cannot be shown with synthetic input. 5. Pre-existing: canvas.spec "a Mac sees ⌘K" fails on release-prod-2 too (its Lock row expects Ctrl labels on a Mac; the row is a prototype literal "Ctrl+Shift+L").
Author
Owner

D222 implementation started. Branch shortcuts-d222 from release-prod-2 at 62d0a511. Pushed so far:

  • 5df17287 matching core: printable keys match the character, AltGr never matches, labels in the table order
  • d0aacfa1 default keymap (canvas, palette, ? panel, window move, the Mac pinned to shift:false)
  • a934edca keyboard font size (⌘+ ⌘− ⌘0, Ctrl++ Ctrl+− Ctrl+0)
  • 91ae5037 Keyboard Lock module and lock-only close alternates, captures
  • 40058711 cross-browser probe and docs/verification/shortcuts-d222.md

Findings so far (evidence in the commits and the doc):

  1. No fullscreen action exists on release-prod-2 or dev (D193 is not built). The Keyboard Lock bonus is wired in the canvas and in keyboard-lock.ts but nothing calls enterAppFullscreen yet.
  2. Ctrl+Shift+D (PC split right in the table) is bound to "bookmark all tabs" in Chrome, Edge and Firefox (research report). Flagged for the owner's hand check.
  3. Plain Ctrl+K reaches the page in all three engines in the probe. Browser search may still take it in a real tab (hand check).
  4. Probe: 43 of 43 default chords reached the page and were cancelled in Chromium 149, WebKit 26.5 and Firefox 151. Browser accelerators cannot be shown with synthetic input.
  5. Pre-existing: canvas.spec "a Mac sees ⌘K" fails on release-prod-2 too (its Lock row expects Ctrl labels on a Mac; the row is a prototype literal "Ctrl+Shift+L").
D222 implementation started. Branch shortcuts-d222 from release-prod-2 at 62d0a511. Pushed so far: - 5df17287 matching core: printable keys match the character, AltGr never matches, labels in the table order - d0aacfa1 default keymap (canvas, palette, ? panel, window move, the Mac pinned to shift:false) - a934edca keyboard font size (⌘+ ⌘− ⌘0, Ctrl++ Ctrl+− Ctrl+0) - 91ae5037 Keyboard Lock module and lock-only close alternates, captures - 40058711 cross-browser probe and docs/verification/shortcuts-d222.md Findings so far (evidence in the commits and the doc): 1. No fullscreen action exists on release-prod-2 or dev (D193 is not built). The Keyboard Lock bonus is wired in the canvas and in keyboard-lock.ts but nothing calls enterAppFullscreen yet. 2. Ctrl+Shift+D (PC split right in the table) is bound to "bookmark all tabs" in Chrome, Edge and Firefox (research report). Flagged for the owner's hand check. 3. Plain Ctrl+K reaches the page in all three engines in the probe. Browser search may still take it in a real tab (hand check). 4. Probe: 43 of 43 default chords reached the page and were cancelled in Chromium 149, WebKit 26.5 and Firefox 151. Browser accelerators cannot be shown with synthetic input. 5. Pre-existing: canvas.spec "a Mac sees ⌘K" fails on release-prod-2 too (its Lock row expects Ctrl labels on a Mac; the row is a prototype literal "Ctrl+Shift+L").
Author
Owner

D222 finished on shortcuts-d222. Head: bca35f78 (pushed). Commits since the base 62d0a511: 5df17287, d0aacfa1, a934edca, 91ae5037, 40058711, bca35f78. Not merged, not deployed.

Gate: scripts/verify fast (Rust part, verbatim table):
+---------------------------+--------------+
| Rust gate | Result |
+---------------------------+--------------+
+---------------------------+--------------+
EXIT 1
Rust static build FAIL is pre-existing: no Rust file differs from release-prod-2, and the binary is 19896992 bytes against the unchanged 16404816 budget. Not raised.

Gate: TypeScript half of verify fast (run alone, since the Rust failure stops the script):
==> Vendored Ghostty artifact checksums
==> TypeScript protocol compiler
==> Tracer compiler, precompression and bundle transfer budget
144 pass
0 fail
critical chunk-n1yns5dz.js: identity=8377 gzip=3575 brotli=3185 bytes
deferred chunk-xtadhr8c.js: identity=42207 gzip=16253 brotli=14296 bytes
==> Rust stream oracle (for the differential test)
==> TypeScript protocol tests
36 pass
0 fail
EXIT 0

Specs (final, HEAD): 75 passed, 2 failed. Both fail identically on release-prod-2: canvas touch resize (expected < 564, got 714) and canvas 'a Mac sees ⌘K' (its Lock row expects Ctrl labels on a Mac).

Manual checks (docs/verification/shortcuts-d222.md): Ctrl+Shift+D is bookmark-all-tabs in Chrome, Edge and Firefox; Ctrl+K is browser search in some browsers; zoom keys; ⌘W, Ctrl+W, ⌘T, Ctrl+T, ⌘N, Ctrl+N; Keyboard Lock not wired (no fullscreen action exists, D193). The start comment on this issue was posted twice by mistake; the text is identical.

D222 finished on shortcuts-d222. Head: bca35f78 (pushed). Commits since the base 62d0a511: 5df17287, d0aacfa1, a934edca, 91ae5037, 40058711, bca35f78. Not merged, not deployed. Gate: scripts/verify fast (Rust part, verbatim table): +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ +---------------------------+--------------+ EXIT 1 Rust static build FAIL is pre-existing: no Rust file differs from release-prod-2, and the binary is 19896992 bytes against the unchanged 16404816 budget. Not raised. Gate: TypeScript half of verify fast (run alone, since the Rust failure stops the script): ==> Vendored Ghostty artifact checksums ==> TypeScript protocol compiler ==> Tracer compiler, precompression and bundle transfer budget 144 pass 0 fail critical chunk-n1yns5dz.js: identity=8377 gzip=3575 brotli=3185 bytes deferred chunk-xtadhr8c.js: identity=42207 gzip=16253 brotli=14296 bytes ==> Rust stream oracle (for the differential test) ==> TypeScript protocol tests 36 pass 0 fail EXIT 0 Specs (final, HEAD): 75 passed, 2 failed. Both fail identically on release-prod-2: canvas touch resize (expected < 564, got 714) and canvas 'a Mac sees ⌘K' (its Lock row expects Ctrl labels on a Mac). Manual checks (docs/verification/shortcuts-d222.md): Ctrl+Shift+D is bookmark-all-tabs in Chrome, Edge and Firefox; Ctrl+K is browser search in some browsers; zoom keys; ⌘W, Ctrl+W, ⌘T, Ctrl+T, ⌘N, Ctrl+N; Keyboard Lock not wired (no fullscreen action exists, D193). The start comment on this issue was posted twice by mistake; the text is identical.
Author
Owner

Correction to the finish comment: the head is e6969edc. The one new commit refreshes the regenerated captures (apps/tracer/captures) from the final run; no code changed. Pushed to shortcuts-d222.

Correction to the finish comment: the head is e6969edc. The one new commit refreshes the regenerated captures (apps/tracer/captures) from the final run; no code changed. Pushed to shortcuts-d222.
Author
Owner

Closed by the orchestrator during the 2026-10-28 handover (#254), on the owner's request to close finished issues. Evidence: Research delivered and re-grill result recorded as D222; shortcuts-d222 (e6969edc) is in dev and prod-live. Reopen if anything is still missing.

Closed by the orchestrator during the 2026-10-28 handover (#254), on the owner's request to close finished issues. Evidence: Research delivered and re-grill result recorded as D222; shortcuts-d222 (e6969edc) is in dev and prod-live. Reopen if anything is still missing.
kayg closed this issue 2026-10-28 17:52:53 +00:00
Sign in to join this conversation.
No labels
launch-qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/infraternal#155
No description provided.