Skip to content

Make the Shortcuts page easier to read: keycaps, + Add, a changed marker - #2956

Open
brhellman wants to merge 17 commits into
Foundry376:masterfrom
brhellman:shortcut-visual-pass
Open

brhellman wants to merge 17 commits into
Foundry376:masterfrom
brhellman:shortcut-visual-pass

Conversation

@brhellman

@brhellman brhellman commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

The Shortcuts page is hard to scan. Keys run together in one semibold monospace line, the add button is a bare "+", nothing marks a changed command except a Reset link, and the page is capped at 800px and split by hand into two 400px columns. Most rows wrap at the default window size. The Clear, ×, Reset and conflict controls from the previous PRs make the cramping worse.

  • Keycaps. Each key is a box at @font-size-small with a deeper bottom border, so Ctrl+Shift+R reads as one key and separate keys read as separate. The × sits inside the keycap and appears on row hover (its space is kept, so nothing shifts).
  • "+ Add" in place of "+", dimmed until the row is hovered or the button has focus.
  • A changed marker. A dot before the name of a command the user keymap changes, titled "Changed from the default", alongside the existing Reset.
  • Rows are padded and highlight on hover, labels take a fixed 38% so keys line up, and section titles are semibold with Clear at normal weight.
  • Layout. One .shortcut-sections container replaces the hand split (slice(0, 3) / slice(3)). CSS columns (columns: 2 460px, sections break-inside: avoid) give one column in a narrow window and two in a wide one, and the page may now be 1100px wide. .container-keymaps drops out of the two two-columns-flexbox rules it no longer uses.

Stacked on #2955.

Checked in this branch's build on a copy of a Gmail-template config, with s added to Archive so the changed and conflict states show: two columns at 1500px in the dark theme, one column at 900px in the light theme, and keycaps, hover, the dot and the conflict line legible in both.

Verified: the row shows "+ Add" and a titled dot only when customized, and the page renders a row for every listed command inside .shortcut-sections. Each markup change was mutated: 4 of 4 red. Lint, prettier and tsc clean; full suite 2484 passing.

Before and after (same config, Archive given s):

master, 900px light this branch, 900px light
master after
master, 1500px dark this branch, 1500px dark (two columns)
master after

Shortcuts page series (one concern each; merge in this order): #2950 [] unbinds, #2951 mail held behind Preferences, #2952 record with +, #2953 remove keys, #2955 conflict warnings, #2956 visual pass, #2957 search, #2958 single-key switch, #2959 Show filter.

🤖 Generated with Claude Code

Brian Hellman and others added 6 commits October 7, 2026 20:59
KeymapFile created a command's entry only while pushing its first keystroke, so `[]` left no
entry and the template's keys stayed bound: there was no way to remove a shortcut, even by
editing the file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Recording began whenever a row took focus and ended on its own, a single plain key could not be
recorded (the row waited for a second one and saved "k then j"), and the result replaced every
key the command had. Recording now starts from a + button and says so; a modifier combination
ends it at once, a plain key after Mousetrap's one-second sequence timeout; Esc cancels; the
key joins the command's existing ones; focus returns to the button.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… or all

Each key is a chip with an x that removes it (and any other spelling of the same key), a
command the user keymap changed gets a Reset back to the template, each section has a Clear,
and Clear All (confirmed) empties every command. A command left with no keys is written as
`[]`, which unbinds it. "None" is localized now that it shows on cleared commands.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every command bound to a key runs when it is pressed, so adding "s" to Archive while Star has
"s" made one key archive and star. The Shortcuts page now marks both keys, says on the row the
key was added to which other command it runs, offers to remove it from either, and counts these
at the top. The defaults' own shared keys (Outlook's Ctrl+U underlines in the composer and marks
unread in the list) are not flagged: KeymapManager keeps each command's keys from before the
user keymap so a key the user added can be told from one the template gave.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keys are drawn as keycaps at the small text size rather than run together in a monospace line,
the add button says "+ Add", a dot marks a command changed from the default, rows highlight on
hover with their x buttons, and the sections flow into one column in a narrow window and two in
a wide one instead of a fixed 800px split.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant