3 581
contributi
mNessun oggetto della modifica |
m (verificata) |
||
Riga 1: | Riga 1: | ||
{{Versioni compatibili| | {{Versioni compatibili|Buster}} | ||
==Introduzione== | ==Introduzione== | ||
Questa guida si propone di spiegare come usare <code>udev</code> e <code>xrandr</code> per configurare in automatico uno o più monitor quando si collegano alla VGA, DVI o HDMI. | Questa guida si propone di spiegare come usare <code>udev</code> e <code>xrandr</code> per configurare in automatico uno o più monitor quando si collegano alla VGA, DVI o HDMI. | ||
Normalmente per configurare un monitor esterno si utilizza xrandr. Seguendo le seguenti istruzioni sarete in grado di farlo una tantum e dalla volta successiva in poi in maniera automatica, possibilmente scegliendo la configurazione a seconda del monitor che si attacca. | Normalmente per configurare un monitor esterno si utilizza <code>xrandr</code>. Seguendo le seguenti istruzioni sarete in grado di farlo una tantum e dalla volta successiva in poi in maniera automatica, possibilmente scegliendo la configurazione a seconda del monitor che si attacca. | ||
Per raggiungere questo scopo, si userà [[udev]], che attiverà uno [[script]] al collegamento (o scollegamento) di un monitor. Questo script, tramite l'[http://en.wikipedia.org/wiki/Extended_display_identification_data edid] riconosce univocamente il monitor esterno. A questo punto con una serie di if, possiamo configurare a piacere il nostro monitor. | Per raggiungere questo scopo, si userà [[udev]], che attiverà uno [[script]] al collegamento (o scollegamento) di un monitor. Questo script, tramite l'[http://en.wikipedia.org/wiki/Extended_display_identification_data edid] riconosce univocamente il monitor esterno. A questo punto con una serie di if, possiamo configurare a piacere il nostro monitor. | ||
Riga 41: | Riga 41: | ||
==Regola udev== | ==Regola udev== | ||
Il punto interessante è che udev si accorge quando si collega (o scollega) un monitor ad una porta (per esempio VGA). A questo punto si crea una regola udev che lancia uno script. Quindi bisogna creare il file <code>/etc/udev/rules.d/90-monitor.rules</code> | Il punto interessante è che udev si accorge quando si collega (o scollega) un monitor ad una porta (per esempio VGA). A questo punto si crea una regola udev che lancia uno script. Quindi bisogna creare il file <code>/etc/udev/rules.d/90-monitor.rules</code>. | ||
Per esempio con [[nano]] e [[privilegi di amministrazione]]: | |||
<pre> | |||
# nano /etc/udev/rules.d/90-monitor.rules | |||
</pre> | |||
E scrivere: | |||
<pre> | <pre> | ||
ACTION=="change", SUBSYSTEM=="drm", RUN+="/usr/local/sbin/monitor.sh" | ACTION=="change", SUBSYSTEM=="drm", RUN+="/usr/local/sbin/monitor.sh" | ||
</pre> | </pre> | ||
Poi salvare (con <code>Ctrl-o</code>) e uscire (con <code>Ctrl-x</code>). | |||
Questa regola attiverà lo script <code>/usr/local/sbin/monitor.sh</code> ad ogni collegamento o scollegamento di un cavo esterno. | Questa regola attiverà lo script <code>/usr/local/sbin/monitor.sh</code> ad ogni collegamento o scollegamento di un cavo esterno. | ||
Riga 52: | Riga 60: | ||
#! /bin/bash | #! /bin/bash | ||
UNI=stringa esadecimale contenente l'edid dello schermo | UNI="stringa esadecimale contenente l'edid dello schermo" | ||
VGA=/sys/class/drm/card0/card0-VGA-1/ | VGA="/sys/class/drm/card0/card0-VGA-1/" | ||
export DISPLAY=:0.0 | export DISPLAY=":0.0" | ||
# esci se Xorg non è attivo | # esci se Xorg non è attivo | ||
pidof /usr/ | pidof /usr/lib/xorg/Xorg > /dev/null 2>&1 || exit 0 | ||
if [[ " | if [[ "$(cat -- "$VGA"status)" == "connected" ]] | ||
then | then | ||
xrandr --output LVDS1 --primary --output VGA1 --auto; | xrandr --output LVDS1 --primary --output VGA1 --auto; | ||
EDID= | EDID=$(cat $VGA\edid | hexdump -v -e '"" "%X" '); | ||
if [[ "$UNI" == "$EDID" ]] | if [[ "$UNI" == "$EDID" ]] | ||
then | then | ||
Riga 99: | Riga 107: | ||
|Estesa_da= | |Estesa_da= | ||
|Verificata_da= | |Verificata_da= | ||
: [[Utente:HAL 9000|HAL 9000]] | : [[Utente:HAL 9000|HAL 9000]] 15:43, 21 set 2019 (CEST) | ||
|Numero_revisori=1 | |Numero_revisori=1 | ||
}} | }} |
contributi