Hotkeys
The desktop sign registers five global keyboard shortcuts via Electron's globalShortcut API. They work even when the kiosk is in lock-down mode — that's the point. These are the manual-control surfaces: when remote control fails, when you need to debug onsite, when the operator-facing UI doesn't expose the action you need.
All five hotkeys are registered while the sign app runs and unregistered cleanly at shutdown, so a crashed sign doesn't leave dangling shortcuts.
All hotkeys
| Hotkey | Effect | When to reach for | Notes |
|---|---|---|---|
| Ctrl+Shift+S | Status overlay toggle | Quick onsite health glance | Read-only — no input required |
| Ctrl+Shift+Q | Exit for maintenance | Tech needs the desktop on a live kiosk | Writes the .maintenance sentinel; the watchdog stops relaunching |
| Ctrl+Shift+C | Config overlay (URL editor + kiosk-mode toggle + Exit for Maintenance) | Backend-URL override; emergency exit | Prompts for the PIN first, if one is set |
| Ctrl+Shift+N | Network diagnostics overlay (NIC, IP, internet, backend reachability) | Live latency check; venue smoke test | Same NetworkChecklist widget as the QR setup screen |
| Ctrl+Shift+B | Background mode toggle | Hide display, keep telemetry | Persists across reboot — see Remote control → Background mode |
Ctrl+Shift+Q — Exit for maintenance
The escape hatch. It closes the sign app and stops the watchdog from putting it straight back, so you get a normal Windows desktop on a kiosk that's otherwise locked down — for a hardware swap, a BIOS update, a driver install, or any work that needs the machine and not the wall.
What happens when you press it:
- The app writes the
.maintenancesentinel under the DisplaySync data root - The app exits
The watchdog checks for that sentinel before every relaunch and stands down while it's there. Without it, the watchdog would restart the app within seconds and fight you for the screen.
Two things worth knowing before you use it on a live fleet:
- The dashboard just sees the sign go offline. Nothing tells the backend why the app stopped, so the sign looks the same as one that lost power — offline alerts included. Warn whoever's watching, or mute the event first.
- The PIN doesn't gate this hotkey. A PIN protects the config overlay; Ctrl+Shift+Q takes the app down directly. If keyboard access to your kiosks is a real concern, that's a physical-access problem to solve at the venue — a PIN won't cover it.
Getting back to normal: relaunch the app (it clears the sentinel on a successful start and the watchdog re-engages), or just reboot — the boot sequence does the same thing and clears anything else you left open. Full detail on both paths: Crash recovery → Maintenance mode.
The same action is available as the Exit for Maintenance button inside the config overlay, which is the PIN-gated route to it.
Ctrl+Shift+C — Config overlay
A 540×700 frameless transparent always-on-top window. Three controls:
- Display URL — editable text field. Whatever you type becomes the kiosk's
currentUrland is loaded immediately. Useful when the dashboard isn't reachable but you need to point a kiosk at a known-good URL. - Kiosk-mode toggle — flips the Electron kiosk-mode flag without quitting. Off means the user can alt-tab and see the desktop; on means full lock-down resumes.
- Exit for Maintenance — closes the sign app cleanly and writes the
.maintenancesentinel so the watchdog stops relaunching. Equivalent to Ctrl+Shift+Q.
If a 4-digit PIN has been set, a PIN-entry window precedes the overlay. The PIN is stored as a salted SHA-256 hash in sign-config.json — never in the clear.
PIN recovery: there's no in-app reset. If the PIN is lost, recovery is via:
- USB recovery with
freshConfig: true— wipes the config (including identity). See USB recovery → Setup script. - Direct file edit if you have RDP/VNC access — see File locations for the path.
Ctrl+Shift+N — Network diagnostics
A 500×250 bottom-right overlay. Calls signService.startNetworkDiagnostics(), which runs the same NetworkChecklist widget that drives the QR setup screen's connection check. Live results for:
- NIC name + IP address (the interface the kiosk picked)
- Internet reachability (HTTP HEAD to a captive-portal detection endpoint,
connectivitycheck.gstatic.com) - Backend reachability (HTTP HEAD against the configured backend URL)
- Round-trip latency to backend
Use during venue install to verify Tailscale + backend reachable before claim. Use during onsite triage when the dashboard reports a sign as offline — pulling this overlay shows whether the kiosk is actually online.
If a venue firewall blocks connectivitycheck.gstatic.com, the internet check shows red even when the backend is reachable. The kiosk uses HTTP (not HTTPS) for this probe deliberately so captive portals can redirect it for portal detection.
Ctrl+Shift+B — Background mode
Toggles background mode on/off. Behavior in full at Remote control → Background mode. Brief summary:
- On: kiosk window hidden, audio muted, frame rate throttled, watchdogs paused, telemetry continues
- Off: all of the above reversed; the assigned URL is reloaded
- Persists across reboot —
backgroundMode: trueis written tosign-config.json. A sign that boots with this flag set comes up silently with no splash window
Related
- Remote control — full background-mode narrative + remote toggle from the dashboard
- File locations — where
sign-config.json, the PIN salt, and overlay-relevant files live - USB recovery → Setup script — PIN-recovery path via
freshConfig: true