Keys, palette and accessibility¶
Keys¶
| Key | Does |
|---|---|
| F1 or ? | Key help for the current screen (on a form, only F1: a ? there is text) |
| Ctrl-K or F2 | Command palette |
| F3, F12, Esc, Q | Back (Q at the main menu signs out). On a form Q is an ordinary letter: type q and press Enter in the first field to leave, or use Esc |
| F6 or + | Quick add |
| F9 or U | Undo the last change made in this session |
| F10 or L | Lock the session (it also locks itself after 15 idle minutes) |
| G | Jump between the main menu and LEGO Collection |
| Shift+F1 (F13 on a keyboard that has one) | From the main hub or the picker/checker hub only: open the kanban board. Not advertised in the footer legend (most terminals/telnet clients don't send Shift-modified function keys reliably — same reasoning as F10's unlisted F19 fallback), so this is worth knowing about rather than discovering on screen |
| V | Switch to Admin and back. If your own account already has admin-level access, this is a straight jump, same as G. Otherwise it asks for a separate admin account's username and password (no 2FA — this session is already signed in) and switches to it; pressing V again returns to exactly where you were, no credentials needed |
| / | Filter a list |
┌──────────────────────────────────── Keys ────────────────────────────────────┐ │ On this screen │ │ 1-9, 0 choose the numbered option (0 = return) │ │ Up / Down, Enter move and choose │ │ │ │ Everywhere │ │ F1 or ? this help (on a form only F1: a ? there is text) │ │ Ctrl-K or F2 command palette: type to jump to any screen, part │ │ or set │ │ F3, F12, Esc, Q go back; Q at the main menu signs out │ │ F6 or + Quick Add │ │ F9 or U undo the last change made in this session │ │ F10 or L lock the session (also locks itself when idle) │ │ G jump between the main menu and LEGO Collection │ │ V jump between Admin and your Picker/Checker screen │ │ (if you hold both) │ │ Ctrl+C quit │ │ │ │ Press any key to close. │ └──────────────────────────────────────────────────────────────────────────────┘
The palette¶
Press Ctrl-K (or F2 if your terminal swallows Ctrl-K), type a few letters of where you want to go, or a part or set number, and press Enter. It lists screens, actions, your recent parts and, as you type, matching parts and sets from the offline catalog. It goes through the same navigation as the menus, so a screen your role may not use bounces you with the usual message.
┌─────────────────────── Command Palette (Ctrl-K or F2) ───────────────────────┐ │ Go to: fal█ │ │ │ │ > Create / update a part lookup-first add flow │ │ Search LEGO sets offline catalog first │ │ Search LEGO parts offline catalog first │ │ Settings: Display theme admin — also everyone's default │ │ My loading indicator on/off — spinner for sign-on, Part-DB sync, price … │ │ Security settings admin — 2FA window, idle, exports │ │ Set 75257-1 — Millennium Falcon (2019) Star Wars - Ultimate Collector S… │ │ Set 75192-1 — Millennium Falcon (2017) Star Wars - Ultimate Collector S… │ │ │ │ Type to filter Up/Down choose Enter go Esc close │ └──────────────────────────────────────────────────────────────────────────────┘
Accessibility¶
- Themes: press Ctrl-K and choose My display theme — ↑/↓ previews each one on a sample panel, Enter keeps it for you
(every user can have their own; it is applied when you sign on). Admins also get Admin → Settings → Display Theme, where D makes
the highlighted theme everyone's default (
MODERNWMS_TUI_THEME). The themes:green(default),amber,high-contrast(nothing dimmed, reverse video for problems),colorblind(blue and orange instead of green and red),dracula,half-life(matches the zsh theme),nord,gruvbox,catppuccin,tokyo-night,ibm-3270,matrixandlego. - Found a theme you'd like added? On My display theme, press R — name it, and a link or description, and it reaches an admin via Recent Activity (and any configured notification channel, Slack included) straight away. Adding it for real is still a code change (themes are a fixed base-16-ANSI palette, not arbitrary colours loaded at runtime) — once an admin adds it, it shows up here for everyone, same as the existing list.
- After sign-on a short themed animation plays (an HEV boot for half-life, a brick for lego, falling glyphs for matrix); any key
skips it and
MODERNWMS_TUI_SPLASH=0turns it off. - My loading indicator (also in the palette, next to My display theme): a spinner on the message line for calls that actually take time — signing on, a Part-DB sync, a BrickLink price look-up. On by default; turning it off only hides the spinner text, it never brings back a frozen-looking screen — those calls always run in the background either way.
- Hub and section menus (Main Menu, Set Workshop, LEGO Collection, ...) are shown in a rounded, theme-coloured panel, the same one the sign-on card uses. A menu with too many options to fit the panel's two extra border lines on your terminal falls back to the plain list automatically (e.g. the LEGO Collection hub, at 80x24) — nothing is ever cut off to make room for the border.
- Every parts list you browse — Owned Parts, a set's parts check, and Missing Parts & Prices in Set Workshop — is sorted by colour (black, red, blue, then alphabetically), then by part category within each colour, so a specific part is easy to find. There's no banner row breaking it up: real part categories are far more granular than "Bricks"/"Plates" (Rebrickable splits them down to things like "Technic Axles" and "Technic Beams"), so a banner per category turned into more bars than parts — the plain table with the improved order reads better. (A set's Missing Parts report stays sorted by biggest shortfall first, for shopping — that's deliberate, not a screen this missed.)
- A set coming up short on a check also pops up on screen while you're using the app (not just the external notification it already sent) — Q dismisses it; nothing else does, and a second one queues rather than replacing or being lost.
NO_COLOR=1turns colour off entirely; pictures switch to ASCII.- In the high-contrast, colour-blind and no-colour modes OK / FAIL / WARN are spelled out beside the icons, and LOW is always spelled out, so meaning never depends on colour alone.
- Screens fit an 80x24 window (the classic terminal size; smaller than that is not supported). Larger windows are used when the client reports its size, and long lists page with PgUp/PgDn.
- If the full-screen TUI itself is hard to follow with a screen reader — a whole-screen redraw on every keystroke is a known hard
problem for terminal UIs generally, themes and NO_COLOR don't change that part — every TUI screen has a non-interactive CLI
equivalent that prints plain, linear text instead:
wms lego check,wms lego missing,wms lego orders, and the rest all read and write the samelego.dbthe TUI does, just without a redrawing screen to track. Add--jsonto any of them for structured output a screen reader (or another tool) can follow more predictably still. This isn't a separate, lesser interface kept in sync by hand — it's the same commands the TUI itself calls underneath, so nothing here is missing a feature the TUI has.