existe-t-il un outil permettant de :
- se souvenir de la configuration RandR actuelle (position, orientation, résolution, etc.) pour chaque moniteur,
- applique automatiquement la dernière bonne configuration connue dès que l'écran est branché, sans avoir besoin de jouer avec des applets ou xrandr(1) ?
Les configurations devraient être appliquées par utilisateur et par affichage.
S'il n'y a pas un tel outil dans la nature, j'aimerais en créer un moi-même, mais pour autant que je sache, il n'y a aucun moyen de dire qu'un moniteur a été branché. Dois-je interroger avec xrandr -q de temps en temps pour comprendre qu'une sortie a été connectée ou déconnectée, ou existe-t-il un moyen plus efficace de le faire ? udev peut-il être réglé pour faire exactement cela ?
Réponse acceptée :
J'utilise ce script simple (fait maison) qui continue d'interroger RandR et bascule entre LVDS1 et VGA1 lorsque VGA est connecté/déconnecté. (Pour HDMI sorties, dans le fichier de script suivant, modifiez tous les VGA1
vers HDMI1
)
C'est une sale solution, mais elle fonctionne très bien.
Il est personnalisé pour ma configuration :vous devrez probablement modifier les noms de sortie RandR (LVDS1
et VGA1
) et contrairement à moi, vous serez probablement d'accord avec votre mode par défaut RandR pour 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
Étapes complètes :
-
Mettez le script ci-dessus (
homemadeMonitor.sh
) dans votre répertoire préféré -
Rendez le fichier .sh exécutable en tapant la commande suivante dans le terminal
chmod +x homemadeMonitor.sh
-
Exécutez le fichier .sh
./homemadeMonitor.sh