-
released this
2026-05-27 20:41:06 +03:00 internal/display wraps EnumDisplayDevicesW + ChangeDisplaySettingsExW
to enumerate attached monitors and to disable everything-but-one. The
previous configuration is snapshotted to
%LOCALAPPDATA%\GameSaver\display-backup.json so RestoreSaved() can put
the desktop back exactly as it was when shell mode exits.App.go exposes three Wails-bound methods:
ListMonitors() — Monitor{} list with name/resolution/topology/primary
MakeSoleMonitor(id) — disable everything else, save snapshot
RestoreMonitorConfig() — re-enable from snapshotShellApp checks the monitor count on mount. With 1 display we skip
silently. With 2+ we either:
– re-apply the user's remembered choice (gs:soleMonitorId in
localStorage) so subsequent logons land single-screen without
prompting, or
– show MonitorPicker — a full-screen overlay that paints each
monitor as a card sized + positioned proportional to its real
topology, controller/keyboard navigable (A/Enter confirms,
B/Esc skips, double-click confirms).On the "Выйти из shell-режима" action we call RestoreMonitorConfig
first so the user lands back in Explorer with their full multi-screen
setup intact instead of having to fix it themselves.Downloads