Skip to content

DisplayToggle 1.3

Choose a tag to compare

@zy0816 zy0816 released this 26 Aug 04:27
· 7 commits to main since this release

Fixes a regression in 1.2 — if you installed 1.2, update.

1.2 put CGSDetectDisplays plus a four second blocking wait at the head of the recovery chain. Recovery only works inside a narrow window (display IDs go invalid moments after the unplug), so blocking ahead of the first enable meant arriving far too late. Machines that had always recovered from an unplug stopped recovering.

1.0 and 1.1 issued the enable immediately, which is why they worked. The chain now does the same: enable goes out with zero delay, and hardware re-detection is only attempted afterwards, once that first attempt has demonstrably missed the window.

The self-test now asserts the recovery path returns in under 1.5s (currently 0.08s) so a blocking step cannot creep back in.

Everything else from 1.2 is kept: the watchdog runs on its own queue independent of the main runloop, the process holds an activity assertion against App Nap, and the opt-in diagnostic log is available from the menu.


Ad-hoc signed and not notarized: right-click → Open on first launch, or xattr -dr com.apple.quarantine /Applications/DisplayToggle.app. Requires macOS 13+.