LockDown Browser peut-il détecter un deuxième moniteur sur Mac ? (Oui - voici comment)

Oui - LockDown Browser détecte chaque écran enregistré dans macOS via Core Graphics. Cela inclut les écrans intégrés, les moniteurs externes attachés en HDMI/DisplayPort/USB-C, les iPads Sidecar, les TV AirPlay et même certains écrans virtuels de dock. Ci-dessous : la logique de détection exacte, ce qui compte et ce qui passe au travers.

Le mécanisme de détection

LDB fait deux appels au lancement :

uint32_t count;
CGDisplayActiveDisplayCount(&count);
// count est le nombre d'écrans actuellement actifs
// LDB bloque si count >= 2 (config Dashboard par défaut)

C'est identique à ce que Informations système → Graphismes/Moniteurs affiche. Il n'y a pas d'API cachée ; la détection est directe.

Choses qui comptent comme « écrans actifs »

Source d'écranComptée ?Notes
Écran intégré MacBook (capot ouvert)Toujours compté comme #1
HDMI externeStandard
DisplayPort externeStandard
USB-C-vers-écran directStandard
Thunderbolt 4 externeStandard
Dock USB-C avec sortie HDMI/DisplayPortChaque port de sortie compte indépendamment
Sidecar iPadEnregistré comme CGDisplay virtuel
AirPlay vers Apple TV / Vizio / Roku TVRecopie ou extension - les deux comptés
Recopie iPhone (Sequoia 15+)Compté côté Mac
iPad affiché via Continuity comme source d'entrée✓ quand Sidecar actifSidecar est ce qui le fait compter

Choses qui NE comptent PAS

ConfigurationPourquoi ça ne compte pas
Mode capot fermé avec écran externe seulementL'écran intégré dort ; comptage CGDisplay = 1
iPad à côté du laptop, PAS en SidecarAppareil séparé, non enregistré dans le système d'écrans macOS
Écran externe physiquement connecté mais DÉSACTIVÉ via Réglages SystèmeInactif dans macOS, donc pas compté
Universal Control (curseur sur iPad)Universal Control != Sidecar ; iPad n'est pas un CGDisplay
Téléphone à côté du laptop, même avec Continuity CameraCaméra != écran
Smart TV dans la même pièce, non connectée via AirPlay/HDMIPas de connexion au système d'écrans Mac

Cas limites

Dock USB-C qui ajoute un écran « virtuel » quand rien n'est branché

Certains docks USB-C (CalDigit, OWC) ont une particularité où le dock annonce un port d'écran même sans moniteur connecté. macOS enregistre occasionnellement cela comme écran actif sans écran physique. Symptôme : LDB bloque avec erreur multi-écran mais vous ne voyez rien de connecté.

Solution : débranchez le dock entièrement (brièvement, pour l'examen). L'écran fantôme disparaît de la liste CGDisplay.

Écran sans fil (Miracast, tiers)

Les protocoles d'écran sans fil tiers s'enregistrent comme CGDisplays comme AirPlay. Désactivez.

Laptops à double écran (rares)

Certains laptops Asus / Acer Windows ont un écran secondaire au-dessus du clavier. Les Macs n'ont pas ce matériel. Pas pertinent.

Comment vérifier votre comptage CGDisplay

Ouvrez Terminal et exécutez :

system_profiler SPDisplaysDataType | grep -i "Resolution"

Chaque ligne est un écran détecté. Comptez-les. Si >1, LDB bloquera.

Ou utilisez AppleScript :

osascript -e 'tell application "System Events" to get count of displays of (get display preferences)'

Que se passe-t-il si vous essayez de contourner et lancer

Vous ne pouvez pas contourner - la vérification se passe au lancement, avant le chargement de tout examen. Le blocage est cohérent et reproductible. Déconnectez ou désactivez le deuxième écran, redémarrez LDB.

Questions fréquentes

Si je couvre mon moniteur externe d'un morceau de carton, LDB le détecte-t-il quand même ?

Oui - couvrir physiquement l'écran ne change pas l'état d'écran macOS. L'écran est « actif » à cause de la connexion, pas parce que les pixels sont visibles. Débranchez ou désactivez.

Puis-je passer en écran unique en changeant l'arrangement macOS ?

Non - Réglages Système → Moniteurs → Arrangement change seulement la disposition, pas le comptage d'écrans actifs. Désactivez un écran via l'icône d'engrenage par écran, ou débranchez.

Le capot de mon MacBook est fermé et j'utilise seulement un externe. Pourquoi LDB bloque-t-il quand même ?

Ne devrait pas bloquer dans cette configuration si le mode capot fermé est correctement actif. Si LDB bloque : capot ouvert → fermez le capot complètement → attendez 10 secondes → externe devient seul écran → lancez LDB. Si toujours bloquant, l'intégré peut ne pas dormir (câble de charge déconnecté, capot pas complètement fermé).