diff --git a/MonitorControl/Support/DisplayManager.swift b/MonitorControl/Support/DisplayManager.swift index 65167f0..64bbb67 100644 --- a/MonitorControl/Support/DisplayManager.swift +++ b/MonitorControl/Support/DisplayManager.swift @@ -71,7 +71,14 @@ class DisplayManager { shade.backgroundColor = .clear shade.ignoresMouseEvents = true shade.level = NSWindow.Level(rawValue: Int(CGShieldingWindowLevel())) - shade.sharingType = .none // dimming overlay must not appear in screenshots / screen recordings + // Hiding the shade from screen capture is only safe on real displays. On VIRTUAL + // displays (AirPlay / Sidecar / DisplayLink) macOS presents the display itself via + // screen capture, so a non-capturable shade would also disappear from the physical + // monitor and stop dimming it. Only opt these shades out of capture when the display + // is not virtual (e.g. a Mac mini HDMI / blacklisted display using shade dimming). + if !DisplayManager.isVirtual(displayID: displayID) { + shade.sharingType = .none // dimming overlay must not appear in screenshots / screen recordings + } shade.orderFrontRegardless() shade.collectionBehavior = [.stationary, .canJoinAllSpaces, .ignoresCycle] shade.setFrame(screen.frame, display: true)