0.8.2 — Never left with a black screen
A safety fix. If you use OpenDisplay to turn your built-in panel off, please take this one.
Fixed
-
Unplugging your last external display no longer leaves you with a black screen. If OpenDisplay had turned the built-in off (for example via turn the built-in off when an external connects), pulling the external left nothing on screen and the built-in never came back — the exact failure the always-one-display-active guarantee exists to prevent.
The cause turned out to be surprising: when the last real display disappears, macOS does not report zero displays. It substitutes a synthetic placeholder to keep the window server alive — active, main, and showing you nothing. So the safety net's "nothing is active any more" condition could never become true, and it never fired once. OpenDisplay now recognises that placeholder for what it is and counts only displays you can actually see.
-
Recovery now verifies itself. Re-enabling a display can report success while still producing no picture, so the result is checked against the live topology and escalated to a system-level configuration restore if the screen is still dark.
-
A sleeping display is no longer mistaken for a missing one.
CGDisplayIsActivereads false while a display sleeps, which made an idle Mac look display-less — so ordinary sleep could silently re-enable a built-in you had deliberately turned off, and forget it was owed a restore. This also fixes the built-in quietly coming back on, and your preferred layout not sticking. -
A failed reconnect no longer discards the record of a display that is owed a restore.
Install / upgrade: brew install --cask aquitaine/tap/opendisplay or the notarized zip below.