Skip to content

Releases: aerodomigue/MonitorSwitch-macOnly

v2.8.0 — Redesigned UI & device icons

Choose a tag to compare

@aerodomigue aerodomigue released this 31 Jul 10:16
db9e1ea

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

Choose a tag to compare

@aerodomigue aerodomigue released this 30 Jul 11:51
7dc0222

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

Choose a tag to compare

@aerodomigue aerodomigue released this 29 Jul 08:34
1857e41

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

Choose a tag to compare

@aerodomigue aerodomigue released this 16 Apr 12:04
077b2a0

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

Choose a tag to compare

@aerodomigue aerodomigue released this 18 Mar 14:00
7cb7d06

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

Choose a tag to compare

@aerodomigue aerodomigue released this 11 Mar 22:20
d9ec202

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

Choose a tag to compare

@aerodomigue aerodomigue released this 11 Mar 10:15
607c5c7

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

Choose a tag to compare

@aerodomigue aerodomigue released this 10 Mar 11:44
59de6f3

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

Choose a tag to compare

@aerodomigue aerodomigue released this 03 Feb 23:12
6370434

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

Choose a tag to compare

@aerodomigue aerodomigue released this 03 Feb 12:43
872d457

First build and release of the app for mac m series