DisplaySync

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

HotkeyEffectWhen to reach forNotes
Ctrl+Shift+SStatus overlay toggleQuick onsite health glanceRead-only — no input required
Ctrl+Shift+QExit for maintenanceTech needs the desktop on a live kioskWrites the .maintenance sentinel; the watchdog stops relaunching
Ctrl+Shift+CConfig overlay (URL editor + kiosk-mode toggle + Exit for Maintenance)Backend-URL override; emergency exitPrompts for the PIN first, if one is set
Ctrl+Shift+NNetwork diagnostics overlay (NIC, IP, internet, backend reachability)Live latency check; venue smoke testSame NetworkChecklist widget as the QR setup screen
Ctrl+Shift+BBackground mode toggleHide display, keep telemetryPersists 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:

  1. The app writes the .maintenance sentinel under the DisplaySync data root
  2. 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 currentUrl and 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 .maintenance sentinel 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:

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 rebootbackgroundMode: true is written to sign-config.json. A sign that boots with this flag set comes up silently with no splash window