Repository navigation
F1 shows your live keys, grouped by menu #512
Description
Context
F1's Everywhere column is a fixed list of eight keys, so it shows the old key after a rebind and never shows a key you've added. This task makes F1 open the MentalDesk.Tui library's KeysDialog (titled Help since 0.3.3), built from TuiCode's live bindings and menu bar, per the style guide's Finding keys rule. Pitch: #497.
tui-style-guide#44 (an AppDialog, and so KeysDialog, running without AppShell) has shipped, and main already has MentalDesk.Tui 0.3.9 (#571), so no bump is needed here.
Acceptance criteria
- F1 in the explorer opens a dialog titled Help, with Everywhere on the left and Explorer on the right (its fixed keys like
Enter Openfirst, thenDelete, Ctrl+D,F2,Ctrl+X,Ctrl+V). - Everywhere lists every global command that has a key and can run now, grouped under the menu bar's headings in menu order (File, Edit, Selection, View, Go, Review, Help), then Other for bound commands with no menu item. A heading with no bound commands doesn't appear.
- Rebind Command palette in Settings › Keyboard Shortcuts, press F1: the new key shows and the old one is gone.
- Give Go to line (or any unbound command) a key, press F1: it appears under its menu heading. Unbind it: it's gone.
- A command that's disabled right now isn't listed (the same commands the palette greys out or hides).
- F1 works the same everywhere it works today: editor, find bar, diff, Review, Usages, tabs, explorer, each with its own column headed with the place's name. Where a place has no keys of its own, only Everywhere shows.
- In a narrow terminal the place's keys go on top and Everywhere below; in a short one the dialog scrolls with
↑ ↓ PgUp PgDn. -
Esccloses it and focus returns where it was. No key reaches the editor behind it while it's open. - The status bar always ends with
Press F1 for helpat its right edge (whatever key Show keys is bound to; nothing when it's unbound), whether or not a file is open. A status message shows on the left and never replaces it. - The command is Show keys in the Help menu and the palette.
Tests
- The
KeySheetTuiCode builds: menu grouping and order, Other, a rebind replacing a key, a newly bound command appearing, an unbound or disabled command left out, editor-only commands under Editor not Everywhere, fixed place keys first in the place's column. - F1 from each place opens
KeysDialogwith the right heading, andEsccloses it and restores the key scope. - The status bar hint follows the Show keys binding, including unbound.
- Remove
HelpViewand its tests if nothing else uses it.
Out of scope
- A TuiCode copy of
KeySheetorKeysDialog, or any change to them. If the library's dialog falls short, say so on the PR; the fix goes to the style guide first. - The command palette, Show mnemonics, and Settings › Keyboard Shortcuts.
- Making Enter or F1 close the dialog (the library's dialog closes on
Esconly). - The other 0.2.x rules: loading (When I open a pull request or start a review, nothing on screen says it's loading, so it looks like nothing happened #498), opposite actions (A "Toggle" menu item doesn't say which way it'll go, and I can't find "Hide sidebar" or "Mark viewed" by name #499), and the confirm dialogs (In an "are you sure?" dialog, Enter can delete or discard if the wrong button has focus #483).
Update AGENTS.md's F1 and status-bar bullets to describe the new behaviour: Everywhere is now every bound global command, not a curated onboarding list.
Updated for MentalDesk.Tui 0.3.3 (style guide #70): the sheet is titled Help with Everywhere first, and the status bar's hint is Press F1 for help at its right end.
Activity
a-team-app commentedon Oct 11, 2026
Held as
blocked:KeysDialogcan only run throughAppShell, which TuiCode doesn't use, until tui-style-guide#44 ships in aMentalDesk.Tuirelease. Remove the label once it's out.a-team-app commentedon Oct 15, 2026
The hold has cleared: tui-style-guide#44 closed this morning, and MentalDesk.Tui 0.3.5 (now at 0.3.7) has it. Remove
blockedto let the Dev pick this up. The task includes bumping MentalDesk.Tui past #559's 0.3.3.a-team-app commentedon Oct 20, 2026
Draft PR #583 is up.
Close help with Esc before ending the F1 host test
jamescrosswell commentedon Oct 20, 2026
One oddity, when I'm in the Explore tab, with no files open, I see:

So the 'Edit' commands are showing up undes global commands.
If I was on the Find panel, I'd expect to see some hints about find related shortcuts (match case, whole word etc.) on the other/right hand side of the find dialog - but these shouldn't really be in the global shortcuts right?
Are there other commands that are miscategorised as global in the application?
F1's Everywhere leaves out what the place lists and Find in file with…
a-team-app commentedon Oct 20, 2026
Thanks. Your screenshot shows Find in file, Replace in file and Replace globally under Edit in Everywhere, from the Explorer with no file open. Fixed on #583:
Ctrl+F/Ctrl+Hopen the Find pane, so listing them was misleading. When a file is open they stay in Everywhere: from the Explorer,Ctrl+Ffinds in that file.The audit found the same duplication from the same cause, now fixed: the sidebar tab keys,
Ctrl+PgUp/Ctrl+PgDn(next/previous tab), and Mark viewed in Review. They're registered as global so they reach every pane, but each is gated to its place. I found no other global commands that don't belong.I checked F1 in the app from the Explorer (no file open) and from the Find pane. Edit now shows only
Ctrl+Shift+H Replace globally, and the find options appear once, on the right. Main is merged in too, so the conflict is gone.Take the unsaved-edits quit prompt's Don't save by its key