Xrandr
Autor
Nimi: Rene Rünt Rühm: A21 2013
Ülevaade
xrandr on ametlik Linuxi operatsioonisüsteemi käsurea konfiguratsioonitööriist RandR X Window System'i jaoks ning on senini kõige lihtsam ning võimsam tööriist mitme monitori süsteemi haldamiseks. Selle abil saab määrata millised väljundpordid on aktiivsed (nt LCD, VGA, DVI) ning ka ekraanil kuvatava pildi suurust, orientatsiooni, resolutsiooni või peegeldust. X serveri ümberseadistamine ei vaja arvuti taaskäivitamist ning muudatused viiakse väljundseadmetesse dünaamiliselt.
Paigaldus
Paigalda xorg-xrandr pakett ametlikust repositooriumist.
Graafilised kasutajaliidesed
xrandr tööriista jaoks on olemas mitu erinevat graafilist kasutajaliidest:
- ARandR - Lihtsa ja mugava kasutajaliidesega.
http://christian.amsuess.com/tools/arandr/
- LXrandR - Vaikimisi kasutatav kasutajaliides LXDE töökeskkonnas.
- Kephal - Vaikimisi kasutatav kasutajaliides KDE töökeskkonnas
- Grandr - Sõbralik kasutajaliides ning palju võimalusi.
http://dekorte.homeip.net/download/grandr-applet/
- Urandr - Võimalikult lihtsa ülesehitusega, vähekogenud kasutajate jaoks.
http://www.albertomilone.com/urandr.html
- zarfy - Kuvab aktiivsed väljundseadmed visuaalselt ning võimaldab kuvada ekraanimälu interaktiivse kaardina.
http://sourceforge.net/projects/zarfy/
Sätete testimine
Ilma lisakäskudeta näitab xrandr süsteemis olevaid väljundseadmeid (LVDS, VGA-0, jne.) ning nende võimaldatavaid resolutsioone:
xrandr Screen 0: minimum 320 x 200, current 1280 x 800, maximum 4096 x 4096 VGA1 disconnected (normal left inverted right x axis y axis) LVDS1 connected 1280x800+0+0 inverted X and Y axis (normal left inverted right x axis y axis) 261mm x 163mm 1280x800 59.8*+ 1024x768 60.0 800x600 60.3 56.2 640x480 59.9 DVI1 disconnected (normal left inverted right x axis y axis) TV1 disconnected (normal left inverted right x axis y axis)
Tulemist näeme nelja väljundseadet VGA1, LVDS1, DVI1, TV1. Ühendatud on vaid sisemine paneel (LVDS1), mis toetab nelja erinevat lahutusvõimet 60 Hz ja ühte lahutusvõimet 56 Hz. Tärniga (*) tähistatud resolutsioon on hetkel aktiivne. Plussiga (+) tähistatud resolutsioon on soovitatav ning vaikimisi aktiviseeritav.
Xrandr võimaldab olemasolevate seadmete resolutsiooni muuta:
xrandr --output LVDS1 --mode 1024x768
Kui värskenduskiiruseid on antud monitoril mitu, saab neid muuta --rate käsuga (korraga või ükshaaval):
xrandr --output LVDS1 --mode 1024x768 --rate 75
Uue monitori lisamisel ei ole enam vaja X serverit taaskäivitada, vaid käsk --auto lülitab väljundi sisse ja määrab sellele ka vaikimisi soovitatava resolutsiooni:
xrandr --output LVDS --auto
Väljundi väljalülitamiseks saab kasutada käsku:
xrandr --output LVDS1 --off
Ü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
- ei vaja juurkasutaja õigusi
- xrandr’iga tehtavad muudatused kehtivad ainult aktiivse sessiooni ajal.
- xrandr’i teiste võimalustega saab tutvuda man xrandr käsu abil.
- Kuigi xrandr kasutab monitori EDID informatsiooni ning vigane riistvara võib edastada vale info ning osad vanemad Nvidia ja AMD graafikakaardid ei toeta xrandr’i, on katse-ekitus meetodil siiski võimalik luua toimiv seadistus
Seadistamine
xrandr on RandR lisamooduli objekt ja ei oma iseseisvat konfiguratsioonifaili. Püsiva konfiguratsiooni saab salvestada näiteks::
- Staatilise konfiguratsiooni lisamiseks xorg.conf faili vaata Statically setup in xorg.conf
- 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. Juhend seadistamiseks Dynamic setup with xrandr
- 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)"
Loe veel
- https://wiki.ubuntu.com/X/Config/Resolution
- RandR 1.2 tutorial
- Xorg RandR 1.2 on ThinkWiki
- FAQVideoModes - more information about modelines