Linux: come eseguire uno script quando è collegato un monitor esterno?


10

Come posso rilevare quando un monitor esterno è collegato in Linux?

Devo eseguire vari script per configurare il mio spazio di lavoro.

C'è un modo intelligente per dare il via a uno script quando lo stato del monitor è cambiato?

Sto usando il driver di visualizzazione Nvidia.


Il modo hacker sarebbe quello di scrivere uno script che richieda cambiamenti nell'output in xrandrogni paio di secondi ed esegua gli script se nota una differenza.
nuovo123456,

Idealmente, puoi dire a udev di eseguire uno script. Non mi aspetto che funzioni con i driver NVIDIA fino a quando KMS non è supportato, anche se non ho provato. stackoverflow.com/questions/5469828/…
Andy,

Risposte:


3

Esistono una serie di strumenti chiamati read-edid che possono analizzare i dati di identificazione di visualizzazione estesa (EDID). Se il tuo monitor esterno viene effettivamente rilevato da questi strumenti, potresti essere in grado di controllare periodicamente il rilevamento e utilizzare l'output per avviare script, ecc.

Non hai detto però se è necessario farlo indipendentemente dal fatto che X fosse in esecuzione.


Bene, ne ho solo bisogno in X. Ho anche altri strumenti che rileveranno i display (come disper), ma speravo di evitare di dover scrivere un demone :)
Joernsn,

1

Stavo cercando la stessa risposta: /
Sto usando disper ( http://willem.engen.nl/projects/disper ) e gconftool per abilitare / disabilitare il mio secondo monitor insieme ad un secondo pannello di gnome su di esso.
disper -l elenca tutti i monitor collegati, quindi puoi effettuare il polling come ultima risorsa.

# 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


0

Dato che, a partire da 270.18, i driver binari nVidia non sembrano ancora implementare il moderno XRandR, potrebbe essere necessario seguire il suggerimento di new123456 di eseguire il polling di uno strumento come xrandrper le modifiche alle dimensioni dello schermo.

Sul mio sistema, devo ancora trovare un modo per fare in modo che nVidia annunci correttamente xrandrche ho due monitor 1280x1024, anziché uno singolo 2560x1024 ... che, come puoi immaginare, rende i giochi a schermo intero centrati su entrambi i monitor quando proibisco loro dal cambiare la risoluzione. (Fa schifo i miei sticky desktop)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.