Xrandr: Difference between revisions
No edit summary |
No edit summary |
||
Line 6: | Line 6: | ||
== Paigaldus == | == Paigaldus == | ||
Paigalda ''xorg-xrandr'' pakett | Paigalda ''xorg-xrandr'' pakett [https://wiki.archlinux.org/index.php/Official_Repositories ametlikust repositooriumist]. | ||
=== Graafilised kasutajaliidesed === | === Graafilised kasutajaliidesed === | ||
Line 49: | Line 49: | ||
* ''xrandr''’iga tehtavad muudatused kehtivad ainult aktiivse sessiooni ajal. | * ''xrandr''’iga tehtavad muudatused kehtivad ainult aktiivse sessiooni ajal. | ||
* ''xrandr''’i teiste võimalustega saab tutvuda 'man xrandr' käsu abil. | * ''xrandr''’i teiste võimalustega saab tutvuda 'man xrandr' käsu abil. | ||
== Seadistamine == | == Seadistamine == | ||
Line 55: | Line 54: | ||
''xrandr'' on RandR lisamooduli objekt ja ei oma iseseisvat konfiguratsioonifaili. Püsiva konfiguratsiooni saab salvestada näiteks:: | ''xrandr'' on RandR lisamooduli objekt ja ei oma iseseisvat konfiguratsioonifaili. Püsiva konfiguratsiooni saab salvestada näiteks:: | ||
# Staatilise konfiguratsiooni lisamiseks vaata [ | # Staatilise konfiguratsiooni lisamiseks vaata [https://wiki.archlinux.org/index.php/Multihead#RandR 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 [ | # 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 [http://en.wikipedia.org/wiki/X_display_manager_(program_type) 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. | # ''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. | ||
Line 63: | Line 62: | ||
==== Näide 1 ==== | ==== Näide 1 ==== | ||
Skript võimaldab lülitust välimise monitori | Skript võimaldab lülitust välimise monitori ''$EXT'' ja vaikimisi monitori vahel ''$IN'', nii et korraga on aktiivne ainult üks monitor. | ||
Vaikimisi monitor | Vaikimisi monitor ''$IN'' peab skripti käivitamise ajal olema ühendatud. | ||
IN="LVDS1" | #!/bin/bash | ||
EXT="VGA1" | |||
IN="LVDS1" | |||
if (xrandr | grep "$EXT disconnected"); then | EXT="VGA1" | ||
else | if (xrandr | grep "$EXT disconnected"); then | ||
xrandr --output $EXT --off --output $IN --auto | |||
fi | else | ||
xrandr --output $IN --off --output $EXT --auto | |||
fi | |||
==== Näide 2 ==== | ==== Näide 2 ==== | ||
Skript haldab ainult välimist monitori | Skript haldab ainult välimist monitori ''$EXT'', vaikimisi monitor ''$IN'' on alati aktiivne. | ||
Vaikimisi monitor | Vaikimisi monitor ''$IN'' peab skripti käivitamise ajal olema ühendatud. | ||
#!/bin/bash | |||
#!/bin/bash | |||
IN="LVDS1" | |||
IN="LVDS1" | EXT="VGA1" | ||
EXT="VGA1" | |||
if (xrandr | grep "$EXT disconnected"); then | |||
if (xrandr | grep "$EXT disconnected"); then | xrandr --output $IN --auto --output $EXT --off | ||
else | |||
else | xrandr --output $IN --auto --primary --output $EXT --auto --right-of $IN | ||
fi | |||
fi | |||
==== Näide 3 ==== | ==== Näide 3 ==== | ||
Line 101: | Line 97: | ||
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: | 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 | |||
# get info from xrandr | connectedOutputs=$(xrandr | grep " connected" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/") | ||
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/") | ||
activeOutput=$(xrandr | grep -e " connected [^(]" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/") | connected=$(echo $connectedOutputs | wc -w) | ||
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 == | == Loe veel == | ||
Line 159: | Line 154: | ||
* [http://www.thinkwiki.org/wiki/Xorg_RandR_1.2 Xorg RandR 1.2 on ThinkWiki] | * [http://www.thinkwiki.org/wiki/Xorg_RandR_1.2 Xorg RandR 1.2 on ThinkWiki] | ||
* [http://www.x.org/wiki/FAQVideoModes#ObtainingmodelinesfromWindowsprogramPowerStrip FAQVideoModes - more information about modelines] | * [http://www.x.org/wiki/FAQVideoModes#ObtainingmodelinesfromWindowsprogramPowerStrip FAQVideoModes - more information about modelines] | ||
== Kasutatud allikad == | |||
* https://wiki.archlinux.org/index.php/Xrandr | |||
* http://en.wikipedia.org/wiki/RandR | |||
* http://www.x.org/wiki/Projects/XRandR/ |
Revision as of 15:53, 2 December 2013
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.
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)"
Loe veel
- https://wiki.ubuntu.com/X/Config/Resolution
- RandR 1.2 tutorial
- Xorg RandR 1.2 on ThinkWiki
- FAQVideoModes - more information about modelines