Xrandr

From ICO wiki
Revision as of 15:53, 2 December 2013 by Rrunt (talk | contribs)
Jump to navigationJump to search

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.

http://lxde.org/

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::

  1. Staatilise konfiguratsiooni lisamiseks vaata Multihead#RandR
  2. 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.
  3. 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

Kasutatud allikad