existuje nástroj, který umožňuje:
- zapamatovat si aktuální konfiguraci RandR (pozice, orientace, rozlišení atd.) na základě jednotlivých monitorů,
- automaticky použít poslední známou dobrou konfiguraci, jakmile je displej zapojen, bez nutnosti makat s applety nebo xrandr(1)?
Konfigurace by musely být aplikovány na jednotlivé uživatele a jednotlivé obrazovky.
Pokud ve volné přírodě žádný takový nástroj neexistuje, rád bych si jeden dal dohromady, ale pokud vidím, není způsob, jak zjistit, že byl připojen monitor. Musím se dotazovat pomocí xrandr -q jednou za čas zjistit, že byl výstup připojen nebo odpojen, nebo existuje efektivnější způsob, jak to udělat? Lze udev vyladit právě tak?
Přijatá odpověď:
Používám tento jednoduchý (domácí) skript, který neustále dotazuje RandR a přepíná mezi LVDS1 a VGA1, když se VGA připojí/odpojí. (Pro HDMI výstupy, v následujícím souboru skriptu změňte všechny VGA1
na HDMI1
)
Je to špinavé řešení, ale funguje dobře.
Je přizpůsoben mému nastavení:s největší pravděpodobností budete muset změnit názvy výstupů RandR (LVDS1
a VGA1
) a na rozdíl ode mě si pravděpodobně vystačíte s výchozím režimem RandR pro 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
Úplné kroky:
-
Vložte výše skript (
homemadeMonitor.sh
) do vámi preferovaného adresáře -
Udělejte soubor .sh spustitelným zadáním následujícího příkazu do terminálu
chmod +x homemadeMonitor.sh
-
Spusťte soubor .sh
./homemadeMonitor.sh