LockDown Browser rileva un secondo monitor su Mac? (Si - ecco come)
Il meccanismo di rilevamento
LDB esegue due chiamate all'avvio:
uint32_t count;
CGDisplayActiveDisplayCount(&count);
// count is the number of currently-active displays
// LDB blocks if count >= 2 (default Dashboard config)
E identico a quanto mostra Informazioni di sistema → Grafica/Schermi. Non c'e una API nascosta; il rilevamento e diretto.
Cosa conta come "schermo attivo"
| Sorgente schermo | Contato? | Note |
|---|---|---|
| Schermo integrato MacBook (coperchio aperto) | ✓ | Sempre contato come #1 |
| HDMI esterno | ✓ | Standard |
| DisplayPort esterno | ✓ | Standard |
| USB-C verso schermo diretto | ✓ | Standard |
| Thunderbolt 4 esterno | ✓ | Standard |
| Dock USB-C con uscita HDMI/DisplayPort | ✓ | Ogni porta di uscita conta in modo indipendente |
| Sidecar iPad | ✓ | Registrato come CGDisplay virtuale |
| AirPlay verso Apple TV / Vizio / Roku TV | ✓ | Mirroring o estensione - entrambi contati |
| iPhone Mirroring (Sequoia 15+) | ✓ | Contato sul lato Mac |
| iPad mostrato via Continuity come sorgente di input | ✓ quando Sidecar e attivo | E Sidecar a farlo contare |
Cose che NON contano
| Configurazione | Perche non conta |
|---|---|
| Modalita coperchio chiuso con solo schermo esterno | Lo schermo integrato dorme; conteggio CGDisplay = 1 |
| iPad accanto al portatile, NON in Sidecar | Dispositivo separato, non registrato nel sistema schermi di macOS |
| Schermo esterno fisicamente collegato ma DISABILITATO da Impostazioni di Sistema | Inattivo in macOS, quindi non contato |
| Universal Control (cursore sull'iPad) | Universal Control != Sidecar; l'iPad non e un CGDisplay |
| Telefono accanto al portatile, anche con Continuity Camera | Videocamera != schermo |
| Smart TV nella stessa stanza, non collegata via AirPlay/HDMI | Nessuna connessione al sistema schermi del Mac |
Casi limite
Dock USB-C che aggiunge uno schermo "virtuale" quando non c'e nulla collegato
Alcuni dock USB-C (CalDigit, OWC) hanno una particolarita: il dock annuncia una porta video anche quando non e collegato alcun monitor. macOS occasionalmente la registra come schermo attivo senza schermo fisico. Sintomo: LDB blocca con errore multi-schermo ma non vedi nulla collegato.
Soluzione: scollega il dock per intero (brevemente, per la durata dell'esame). Lo schermo fantasma scompare dalla lista CGDisplay.
Schermo wireless (Miracast, terze parti)
I protocolli wireless di terze parti si registrano come CGDisplay esattamente come AirPlay. Disabilita.
Portatili a doppio schermo (rari)
Alcuni portatili Asus / Acer Windows hanno uno schermo secondario sopra la tastiera. I Mac non hanno questo hardware. Non rilevante.
Come verificare il tuo conteggio CGDisplay
Apri Terminale ed esegui:
system_profiler SPDisplaysDataType | grep -i "Resolution"
Ogni riga e uno schermo rilevato. Contale. Se >1, LDB blocchera.
Oppure usa AppleScript:
osascript -e 'tell application "System Events" to get count of displays of (get display preferences)'
Cosa succede se provi ad aggirare e avviare
Non puoi aggirare - la verifica avviene all'avvio, prima del caricamento di qualsiasi esame. Il blocco e coerente e riproducibile. Scollega o disabilita il secondo schermo, riavvia LDB.
Frequently asked questions
Se copro il mio monitor esterno con un pezzo di cartone, LDB lo rileva comunque?
Si - coprire fisicamente lo schermo non cambia lo stato schermi di macOS. Lo schermo e "attivo" per via della connessione, non perche i pixel sono visibili. Scollega o disabilita.
Posso passare a schermo singolo cambiando la disposizione di macOS?
No - Impostazioni di Sistema → Schermi → Disposizione cambia solo il layout, non il numero di schermi attivi. Disabilita uno schermo tramite l'icona ingranaggio per schermo, oppure scollegalo.
Ho il coperchio del MacBook chiuso e uso solo uno schermo esterno. Perche LDB blocca lo stesso?
Non dovrebbe bloccare in quella configurazione se la modalita coperchio chiuso e attiva correttamente. Se LDB blocca: coperchio aperto → chiudilo completamente → attendi 10 secondi → l'esterno diventa l'unico schermo → avvia LDB. Se continua a bloccare, lo schermo integrato potrebbe non dormire (cavo di alimentazione scollegato, coperchio non chiuso del tutto).