Kann LockDown Browser einen zweiten Monitor auf Mac erkennen? (Ja - so geht's)
Der Erkennungsmechanismus
LDB macht beim Start zwei Aufrufe:
uint32_t count;
CGDisplayActiveDisplayCount(&count);
// count ist die Anzahl aktuell aktiver Displays
// LDB blockiert, wenn count >= 2 (Standard-Dashboard-Konfiguration)
Das ist identisch mit dem, was Systeminformationen → Grafik/Displays anzeigt. Es gibt keine versteckte API; die Erkennung ist geradlinig.
Dinge, die als "aktive Displays" zählen
| Display-Quelle | Gezählt? | Hinweise |
|---|---|---|
| Integriertes MacBook-Display (Deckel offen) | ✓ | Immer als #1 gezählt |
| HDMI extern | ✓ | Standard |
| DisplayPort extern | ✓ | Standard |
| USB-C-zu-Display direkt | ✓ | Standard |
| Thunderbolt 4 extern | ✓ | Standard |
| USB-C-Dock mit HDMI/DisplayPort-Ausgang | ✓ | Jeder Ausgangsport zählt unabhängig |
| Sidecar iPad | ✓ | Als virtueller CGDisplay registriert |
| AirPlay zu Apple TV / Vizio / Roku TV | ✓ | Spiegelung oder Erweiterung - beide gezählt |
| iPhone-Spiegelung (Sequoia 15+) | ✓ | Auf der Mac-Seite gezählt |
| Continuity-angezeigtes iPad als Eingabequelle | ✓ wenn Sidecar aktiv | Sidecar ist es, was es zählen lässt |
Dinge, die NICHT zählen
| Setup | Warum es nicht zählt |
|---|---|
| Geschlossener-Deckel-Modus mit nur externem Display | Integriertes Display schläft; CGDisplay-Zählung = 1 |
| iPad neben Laptop, NICHT in Sidecar | Separates Gerät, nicht im macOS-Display-System registriert |
| Externes Display physisch verbunden, aber DEAKTIVIERT über Systemeinstellungen | Inaktiv in macOS, also nicht gezählt |
| Universal Control (Cursor auf iPad) | Universal Control != Sidecar; iPad ist kein CGDisplay |
| Telefon neben Laptop, auch mit Continuity Camera | Kamera != Display |
| Smart-TV im selben Raum, nicht über AirPlay/HDMI verbunden | Keine Verbindung zum Mac-Display-System |
Grenzfälle
USB-C-Dock, das ein "virtuelles" Display hinzufügt, wenn nichts angeschlossen ist
Einige USB-C-Docks (CalDigit, OWC) haben eine Eigenheit, bei der das Dock einen Display-Port ankündigt, auch wenn kein Monitor angeschlossen ist. macOS registriert das gelegentlich als aktives Display ohne physischen Bildschirm. Symptom: LDB blockiert mit Multi-Display-Fehler, aber du siehst nichts angeschlossen.
Lösung: Trenne das Dock vollständig (kurz, für die Prüfung). Das Phantom-Display verschwindet aus der CGDisplay-Liste.
Drahtloses Display (Miracast, Drittanbieter)
Drittanbieter-Drahtlosdisplay-Protokolle registrieren sich genauso als CGDisplays wie AirPlay. Deaktivieren.
Doppel-Display-Laptops (selten)
Einige Asus / Acer Windows-Laptops haben einen sekundären Bildschirm über der Tastatur. Macs haben diese Hardware nicht. Nicht relevant.
Wie du deine CGDisplay-Zählung verifizierst
Öffne Terminal und führe aus:
system_profiler SPDisplaysDataType | grep -i "Resolution"
Jede Zeile ist ein erkanntes Display. Zähle sie. Wenn >1, blockiert LDB.
Oder verwende AppleScript:
osascript -e 'tell application "System Events" to get count of displays of (get display preferences)'
Was passiert, wenn du versuchst zu umgehen und zu starten
Du kannst nicht umgehen - die Prüfung passiert beim Start, bevor irgendeine Prüfung geladen wird. Der Block ist konsistent und reproduzierbar. Trenne oder deaktiviere das zweite Display, starte LDB neu.
Häufig gestellte Fragen
Wenn ich meinen externen Monitor mit einem Stück Pappe abdecke, erkennt LDB ihn dann immer noch?
Ja - den Bildschirm physisch abzudecken ändert nicht den macOS-Display-Status. Das Display ist "aktiv" wegen der Verbindung, nicht weil Pixel sichtbar sind. Stecke es aus oder deaktiviere es.
Kann ich auf Single-Display wechseln, indem ich die macOS-Anordnung ändere?
Nein - Systemeinstellungen → Displays → Anordnung ändert nur das Layout, nicht die Anzahl aktiver Displays. Deaktiviere ein Display über das Zahnrad-Symbol pro Display oder ziehe es ab.
Mein MacBook-Deckel ist geschlossen und ich nutze nur ein externes. Warum blockiert LDB trotzdem?
Sollte in dieser Konfiguration nicht blockieren, wenn der Geschlossener-Deckel-Modus richtig aktiv ist. Wenn LDB blockiert: Deckel offen → Deckel komplett schließen → 10 Sekunden warten → externes wird einziges Display → LDB starten. Wenn immer noch blockierend, schläft das integrierte möglicherweise nicht (Ladekabel getrennt, Deckel nicht vollständig geschlossen).