Xrandr
Nimi: Rene Rünt Rühm: A21
xrandr on ametlik konfiguratsioonitööriist RandR X Window System'i jaoks. Selle abil saab määrata ekraanil kuvatava pildi suurust, orientatsiooni või peegeldust.
Paigaldus
Paigalda xorg-xrandr pakett ametlikust repositooriumist Official repositories.
Graafilised kasutajaliidesed
xrandr tööriista jaoks on olemas kaks graafilist kasutajaliidest:
- ARandR - Lihtsa ja mugava kasutajaliidesega.
http://christian.amsuess.com/tools/arandr/
- LXrandR - Vaikimisi kasutatav kasutajaliides LXDE töökeskkonnas.
Sätete testimine
Ilma lisakäskudeta näitab xrandr süsteemis olevaid väljundseadmeid (LVDS, VGA-0, jne.) ning nende võimaldatavaid resolutsioone:
Screen 0: minimum 320 x 200, current 1440 x 900, maximum 8192 x 8192 VGA disconnected (normal left inverted right x axis y axis) LVDS connected (normal left inverted right x axis y axis)
1440x900 59.9*+ 1280x854 59.9 1280x800 59.8
...
„Xrandr“ võimaldab olemasolevate seadmete resolutsiooni muuta:
$ xrandr --output LVDS --mode 1280x800
Kui värskenduskiiruseid on antud monitoril mitu, saab neid muuta '--rate' käsuga (korraga või ükshaaval):
$ xrandr --output LVDS --mode 1280x800 --rate 75
Käsk '--auto' lülitab väljundi sisse, kui too on väljas ja määrab sellele ka soovitava (maksimaalse) resolutsiooni:
$ xrandr --output LVDS --auto
Ühte käsuritta saab koondada ka mitu käsku, näiteks lülita välja 'LVDS' ja lülita sisse 'HDMI-0' vaikimisi resolutsiooniga:
$ xrandr --output LVDS --off --output HDMI-0 --auto
Märkus
- xrandr’iga tehtavad muudatused kehtivad ainult aktiivse sessiooni ajal.
- xrandr’i teiste võimalustega saab tutvuda 'man xrandr' käsu abil.
}}
Seadistamine
xrandr on RandR lisamooduli objekt ja ei oma iseseisvat konfiguratsioonifaili. Püsiva konfiguratsiooni saab salvestada näiteks::
- Staatilise konfiguratsiooni lisamiseks vaata Multihead#RandR
- Dünaamilise konfiguratsiooni saavutamiseks, tuleks xrandr käsk välja kutsuda iga kord kui X-server käivitub. See meetod käivitub aga arvuti alglaadimise ajal üsna hilja ning ei muuda Display Manager’is määratud resolutsiooni.
- xrandr käsku väljakutsuvad skriptid saab siduda teatud sündmuste külge(näiteks välise monitori külge ühendamisel). #Skriptid’e peatükis on toodud selleks mõned näited.
Skriptid
Näide 1
Skript võimaldab lülitust välimise monitori $EXT
ja vaikimisi monitori vahel $IN
, nii et korraga on aktiivne ainult üks monitor.
Vaikimisi monitor $IN
peab skripti käivitamise ajal olema ühendatud.
#!/bin/bash IN="LVDS1" EXT="VGA1" if (xrandr | grep "$EXT disconnected"); then xrandr --output $EXT --off --output $IN --auto else xrandr --output $IN --off --output $EXT --auto fi
Näide 2
Skript haldab ainult välimist monitori $EXT
, vaikimisi monitor $IN
on alati aktiivne.
Vaikimisi monitor $IN
peab skripti käivitamise ajal olema ühendatud.
#!/bin/bash IN="LVDS1" EXT="VGA1" if (xrandr | grep "$EXT disconnected"); then xrandr --output $IN --auto --output $EXT --off else xrandr --output $IN --auto --primary --output $EXT --auto --right-of $IN fi
Näide 3
Skript käib läbi kõik monitorid, selekteerib hetkel aktiivse, lülitab järjekorras järgmise tööle ning kõik teised välja:
# get info from xrandr connectedOutputs=$(xrandr | grep " connected" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/") activeOutput=$(xrandr | grep -e " connected [^(]" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/") connected=$(echo $connectedOutputs | wc -w) # initialize variables execute="xrandr " default="xrandr " i=1 switch=0 for display in $connectedOutputs do # build default configuration if [ $i -eq 1 ] then default=$default"--output $display --auto " else default=$default"--output $display --off " fi # build "switching" configuration if [ $switch -eq 1 ] then execute=$execute"--output $display --auto " switch=0 else execute=$execute"--output $display --off " fi # check whether the next output should be switched on if [ $display = $activeOutput ] then switch=1 fi i=$(( $i + 1 )) done # check if the default setup needs to be executed then run it echo "Resulting Configuration:" if [ -z "$(echo $execute | grep "auto")" ] then echo "Command: $default" `$default` else echo "Command: $execute" `$execute` fi echo -e "\n$(xrandr)"