Linux: ¿Cómo ejecutar un script cuando se conecta un monitor externo?

10

¿Cómo puedo detectar cuando un monitor externo está conectado en Linux?

Necesito ejecutar varios scripts para configurar mi espacio de trabajo.

¿Hay alguna forma inteligente de iniciar un script cuando el estado del monitor ha cambiado?

Estoy usando el controlador de pantalla Nvidia.

Joernsn
fuente
La forma más hackeada sería escribir una secuencia de comandos que consulte los cambios en la salida xrandrcada dos segundos y ejecute las secuencias de comandos si nota una diferencia.
nuevo123456
Idealmente, puede decirle a udev que ejecute un script. No espero que funcione con los controladores de nvidia hasta que se soporte KMS, aunque no lo he intentado. stackoverflow.com/questions/5469828/…
Andy

Respuestas:

3

Hay un conjunto de herramientas llamadas read-edid que pueden analizar datos de identificación de pantalla extendida (EDID). Si estas herramientas realmente detectan su monitor externo, es posible que pueda verificar periódicamente la detección y usar la salida para iniciar scripts, etc.

Sin embargo, no mencionó si necesita hacer esto independientemente de si X se estaba ejecutando.

Rolf
fuente
Correcto, solo lo necesito en X. También tengo otras herramientas que detectarán las pantallas (como disper), pero esperaba evitar tener que escribir un demonio :)
Joernsn
1

Estaba buscando la misma respuesta: /
Estoy usando disper ( http://willem.engen.nl/projects/disper ) y gconftool para habilitar / deshabilitar mi segundo monitor junto con un segundo panel gnome en él.
disper -l enumera todos los monitores conectados, por lo que puede sondearlo como último recurso.

# only primary display
disper -s
gconftool-2 --type int --set  /apps/panel/toplevels/panel_1/screen -- -1


# dual display (nvidia twinview)
disper -e
gconftool-2 --type int --set  /apps/panel/toplevels/panel_1/screen 0
killall gnome-panel
Vindolin
fuente
0

Dado que, a partir de 270.18, los controladores binarios de nVidia todavía no parecen implementar XRandR moderno, es posible que deba seguir la sugerencia del nuevo 123456 para sondear una herramienta como xrandrpara cambios en el tamaño de la pantalla.

En mi sistema, todavía tengo que encontrar una manera de hacer que nVidia anuncie correctamente xrandrque tengo dos monitores de 1280x1024, en lugar de uno solo de 2560x1024 ... que, como pueden adivinar, hace que los juegos de pantalla completa se centren en ambos monitores cuando lo prohíbo ellos de cambiar la resolución. (Atasca mis notas adhesivas de escritorio)

ssokolow
fuente