Releases: aerodomigue/MonitorSwitch-macOnly
Release list
v2.8.0 — Redesigned UI & device icons
New:
- Fully redesigned interface: the General tab now leads with live status and states the automation as a single readable rule (which device, which monitor, and the input to switch to on connect / disconnect / both)
- USB devices are shown with per-type icons (keyboard, mouse, game controller, camera, audio, storage, network), detected from their USB class and HID usage; hubs are no longer listed as switch triggers
- Monitor DDC/CI support is detected and shown clearly (checking / supported with detected inputs / not supported), cached per monitor so it isn't re-checked while navigating
- Redesigned menu bar popover: single status line plus device, monitor name, and current input
- Cleaner Devices, Log (with All/DDC/USB filter), and About screens
Fixed:
- watched device keeps its selected state and live connected status across USB port/KVM reconnects
- custom input hex codes are shown correctly and stay in sync
Notes:
If downloading from GitHub, remove quarantine before launching:
xattr -cr /Applications/MonitorSwitch.app
v2.7.0 — Auto-detected monitor inputs
New:
- Monitor inputs are now auto-detected via DDC-CI capabilities (VCP 0xF3): the input dropdowns show only the inputs your monitor actually has, with their correct codes and names, instead of a fixed list of nine standard inputs
- "Scan Inputs" now lists the detected inputs directly for monitors that report them — pick yours in one click, no more blind cycling
- Monitors that don't report their inputs (e.g. some LG UltraGear) show a clear notice, keep the full standard list plus a custom-hex field, and fall back to the previous cycle-and-confirm scan
Fixed:
- Input pickers no longer offer inputs a monitor doesn't have
Notes:
If downloading from GitHub, remove quarantine before launching:
xattr -cr /Applications/MonitorSwitch.app
v2.6.0 — Working DDC reads & smart input switching
New:
- DDC-CI reads now work on Apple Silicon: Get-VCP requests are framed with the VESA-compliant checksum via a new raw I2C read path (the AppleSiliconDDC package omits the data sub-address from the request checksum, which strict monitors reject)
- Input switch is now skipped when the monitor already reports the target input — no redundant switching when you are already on the right source
- New documentation: docs/ddc-ci.md explains how DDC/CI works on Apple Silicon, why reads used to fail, and how to make them work
Fixed:
- "Detect Current Input" always failing on monitors that reject malformed Get-VCP requests (e.g. MSI MAG321UX OLED), even though input switching worked
Notes:
If downloading from GitHub, remove quarantine before launching:
xattr -cr /Applications/MonitorSwitch.app
v2.5.1 — DDC retry & reliability
New:
- Retry with exponential backoff (3 attempts, 100ms→400ms) for DDC-CI input switching on Apple Silicon
Fixed:
- Monitor input switch failing when IOAVService is not immediately available after USB device connection
Notes:
If downloading from GitHub, remove quarantine before launching:
xattr -cr /Applications/MonitorSwitch.app
MonitorSwitch v2.5.0 — Sleep/Wake Awareness
New:
- Sleep/wake state preservation — DDC commands are blocked during the 2-second IOKit stabilization window after wake, preventing spurious monitor input switches caused by USB re-enumeration
Changed:
- startMonitoring() and stopMonitoring() now check awakeReady gate in addition to startupReady
Notes
If downloading from GitHub, remove quarantine before launching:
xattr -cr /Applications/MonitorSwitch.app
v2.4.0 — Logging & DDC Safety
New:
- Built-in Log tab in Settings with real-time log viewer
- LogService with disk persistence across app restarts
- Crash detection with signal handlers and alert on next launch
- Copy and clear actions in log viewer
- DDC serial queue — only one DDC-CI operation at a time, prevents I2C bus conflicts
- 5-second timeout on all DDC calls to prevent hangs on unresponsive monitors
Changed:
-
All print() calls replaced with LogService.shared.log() across all services
Fixed:
-
AppState was instantiated twice (in MonitorSwitchUIApp and AppDelegate), causing duplicate logs and double service execution
Notes
If downloading from GitHub, remove quarantine before launching:
xattr -cr /Applications/MonitorSwitch.app
v2.3.0 — Connect/Disconnect switch modes
v2.3.0 — Connect/Disconnect switch modes
New:
- Three DDC switch modes: On connect, On disconnect, or Both
- Separate input source configuration for connect and disconnect directions
- Startup delay (2s) applies to both connect and disconnect to avoid spurious switches at launch
Changed:
- "Target input" renamed to "Input on connect" / "Input on disconnect" for clarity
- Help text in settings adapts to the selected mode
Notes
If downloading from GitHub, remove quarantine before launching:
xattr -cr /Applications/MonitorSwitch.app
MonitorSwitch v2.2.0
MonitorSwitch 2.2
What's New
- Multi-monitor DDC-CI support — Choose which external monitor to control with a new monitor picker in Settings
- Instant USB detection — Replaced USB polling with IOKit notifications for immediate device connect/disconnect response
- Startup DDC delay — Added a 2-second startup grace period to prevent premature input switching before DDC-CI is ready
Fixes & Improvements
- Updated macOS/Swift requirements and simplified build instructions in README
- Added xattr instruction to remove quarantine flag for GitHub downloads
Notes
If downloading from GitHub, remove quarantine before launching:
xattr -cr /Applications/MonitorSwitch.app
MonitorSwitch v2.1.0
Bug Fixes
- KVM Switch Support: Fixed issue where the screen would turn off again when reconnecting after a switch. Devices are now tracked by vendor/product ID instead of port location.
- Startup Detection: Fixed device not being detected on app startup - monitoring now starts automatically when saved device is found.
- Settings Window: Removed minimize button that caused issues with dock visibility.
Improvements
- Instant USB Detection: Replaced 2-second polling with IOKit notifications for immediate device detection and lower CPU usage.
- Updated GitHub repository links.
Notes
If downloading from GitHub, remove quarantine before launching:
xattr -cr /Applications/MonitorSwitch.app
First release
First build and release of the app for mac m series