Comment puis-je détecter lorsqu'un moniteur externe est connecté sous Linux?
J'ai besoin d'exécuter divers scripts pour configurer mon espace de travail.
Existe-t-il un moyen intelligent de lancer un script lorsque l'état du moniteur a changé?
J'utilise le pilote d'affichage Nvidia.
xrandr
toutes les deux secondes et exécute le ou les scripts s'il constate une différence.Réponses:
Il existe un ensemble d'outils appelés read-edid qui peuvent analyser les données d'identification d'affichage étendues (EDID). Si votre moniteur externe est réellement détecté par ces outils, vous pourrez peut-être vérifier périodiquement la détection et utiliser la sortie pour démarrer des scripts, etc.
Vous n'avez cependant pas mentionné si vous deviez le faire, que X soit en cours d'exécution ou non.
la source
Je cherchais la même réponse: /
J'utilise disper ( http://willem.engen.nl/projects/disper ) et gconftool pour activer / désactiver mon deuxième moniteur avec un deuxième panneau gnome dessus.
disper -l répertorie tous les moniteurs connectés, vous pouvez donc l'interroger en dernier recours.
la source
Vous devez utiliser des
udev
événements ... une règle possible pourrait ressembler à:(Source https://bbs.archlinux.org/viewtopic.php?pid=1329375#p1329375 )
la source
Étant donné que, à partir de 270.18, les pilotes binaires nVidia ne semblent toujours pas implémenter XRandR moderne, vous devrez peut-être simplement suivre la suggestion de new123456 pour interroger un outil comme
xrandr
pour les changements de taille d'écran.Sur mon système, je n'ai pas encore trouvé de moyen d'annoncer correctement à nVidia
xrandr
que j'ai deux moniteurs 1280x1024, plutôt qu'un seul 2560x1024 ... les empêcher de changer la résolution. (Il détruit mes stickies de bureau)la source