esiste uno strumento che consente di:
- ricordare l'attuale configurazione RandR (posizione, orientamento, risoluzione, ecc.) su base per monitor,
- applica automaticamente l'ultima configurazione valida nota non appena il display è collegato, senza bisogno di usare applet o xrandr(1)?
Le configurazioni dovrebbero essere applicate per utente, per display.
Se non esiste uno strumento del genere in natura, mi piacerebbe crearne uno io stesso, ma per quanto posso vedere, non c'è modo di dire che è stato collegato un monitor. Devo eseguire il polling con xrandr -q ogni tanto per capire che un'uscita è stata collegata o disconnessa, o c'è un modo più efficiente per farlo? Udev può essere sintonizzato per fare proprio questo?
Risposta accettata:
Sto usando questo semplice script (fatto in casa) che continua a eseguire il polling di RandR e passa da LVDS1 a VGA1 quando VGA viene collegato/scollegato. (Per HDMI output, nel seguente file di script, cambia tutto il VGA1
a HDMI1
)
È una soluzione sporca, eppure funziona perfettamente.
È personalizzato per la mia configurazione:molto probabilmente dovrai cambiare i nomi di output RandR (LVDS1
e VGA1
) e a differenza di me probabilmente starai bene con la tua modalità predefinita RandR per VGA.
#!/bin/bash
# setting up new mode for my VGA
xrandr --newmode "1920x1080" 148.5 1920 2008 2052 2200 1080 1089 1095 1125 +hsync +vsync
xrandr --addmode VGA1 1920x1080
# default monitor is LVDS1
MONITOR=LVDS1
# functions to switch from LVDS1 to VGA and vice versa
function ActivateVGA {
echo "Switching to VGA1"
xrandr --output VGA1 --mode 1920x1080 --dpi 160 --output LVDS1 --off
MONITOR=VGA1
}
function DeactivateVGA {
echo "Switching to LVDS1"
xrandr --output VGA1 --off --output LVDS1 --auto
MONITOR=LVDS1
}
# functions to check if VGA is connected and in use
function VGAActive {
[ $MONITOR = "VGA1" ]
}
function VGAConnected {
! xrandr | grep "^VGA1" | grep disconnected
}
# actual script
while true
do
if ! VGAActive && VGAConnected
then
ActivateVGA
fi
if VGAActive && ! VGAConnected
then
DeactivateVGA
fi
sleep 1s
done
Passi completi:
-
Metti sopra lo script (
homemadeMonitor.sh
) nella tua directory preferita -
Rendi eseguibile il file .sh digitando il seguente comando nel terminale
chmod +x homemadeMonitor.sh
-
Esegui il file .sh
./homemadeMonitor.sh