How denggw/display-switch-lab works
DisplaySwitchLab is a macOS menu-bar utility for choosing display layouts, with a global-shortcut floating panel as a second entry point. The user selects a machine-appropriate mode or force-restore action; the model coordinates display discovery, switching, and recovery. Screen-change monitoring and a watchdog support fallback recovery, while termination restores displays disabled during the session. The README documents bilingual UI and login-at-start support. The model excerpt is partial, so internal call links are limited to relationships visible in the excerpts and documented behavior.
Main entry points: DisplaySwitchModel.swift Display model · DisplaySwitchLabApp.swift Mode menu · QuickSwitchPanel.swift Quick switch panel · LaunchAtLogin.swift Login item
Components 19
App interface
- Menu bar app
Sources/display-switch-lab/DisplaySwitchLabApp.swift - Mode menu
Sources/display-switch-lab/DisplaySwitchLabApp.swift - Quick switch panel
Sources/display-switch-lab/QuickSwitchPanel.swift - Shortcut recorder
Sources/display-switch-lab/AppPreferences.swift
Display switching
- Display model
Sources/display-switch-lab/DisplaySwitchModel.swift - Mode selection
Sources/display-switch-lab/DisplaySwitchModel.swift - Display switcher
Sources/display-switch-lab/DisplaySwitchModel.swift - Display inventory
Sources/display-switch-lab/DisplaySwitchModel.swift - Display enable API
Sources/display-switch-lab/DisplaySwitchModel.swift
Recovery and state
- Recovery watchdog
Sources/display-switch-lab/DisplaySwitchModel.swift - Known display store
Sources/display-switch-lab/DisplaySwitchModel.swift - Session restoration
Sources/display-switch-lab/DisplaySwitchModel.swift
Preferences
- Shortcut preferences
Sources/display-switch-lab/AppPreferences.swift - Global hotkey
Sources/display-switch-lab/QuickSwitchPanel.swift - Login item
Sources/display-switch-lab/LaunchAtLogin.swift - Localization
Sources/display-switch-lab/Localization.swift
Other components
- Mac user
- macOS display system
- Service Management
Connections 24
- Mac user → Mode menu: chooses mode
- Mode menu → Display model: applies mode
- Mac user → Quick switch panel: uses shortcut
- Quick switch panel → Global hotkey: registers shortcut
- Quick switch panel → Display model: commits selection
- Mode menu → Display model: requests restore
- Display model → Mode selection: selects modes
- Display model → Display switcher: applies or fetches
- Display switcher → Display inventory: fetches displays
- Display switcher → Known display store: records displays
- Display switcher → Display enable API: configures displays
- Display enable API → macOS display system: enables or disables
- macOS display system → Display model: notifies screen changes
- Display model → Recovery watchdog: evaluates display state
- Recovery watchdog → Display switcher: restores displays
- Recovery watchdog → Known display store: reads known IDs
- Menu bar app → Session restoration: prepares quit
- Session restoration → Display switcher: restores session displays
- Shortcut recorder → Shortcut preferences: saves shortcut
- Quick switch panel → Shortcut preferences: loads shortcut
- Mode menu → Login item: toggles login item
- Login item → Service Management: registers or unregisters
- Mode menu → Localization: loads interface strings
- Quick switch panel → Localization: loads interface strings