Tips en Trucs 2012

Schermen instellen met Xrandr

De X Resize, Rotate and Reflect Extension (RandR) laat toe om realtime (zonder herstarten) de grootte en rotatie van een X scherm aan te passen. Daarnaast kun je een tweede (en meer) scherm instellen om het schermoppervlak uit te breiden of te klonen (kopiëren). Deze mogelijkheid laat toe om bijvoorbeeld draagbare computers op grote vaste schermen met een andere resolutie aan te sluiten.

Indien uw Bureaubladomgeving geen grafisch bedieningspaneel met deze functionaliteit aanbiedt, kun je steeds terugvallen op de xrandr terminal opdracht.

De meeste distributies hebben het xrandr pakket in de standaard softwarebronnen (repositories) staan. Bij openSUSE is het zelfs standaard geïnstalleerd.

Versie

Met de volgende opdracht kun je de versie van xrandr opvragen:
dany@linux-5350:~> xrandr -v
xrandr program version       1.3.5
Server reports RandR version 1.3
De voorbeelden in deze tip werden getest met versie 1.3, sommige megelijkheden zijn in oudere versies niet aanwezig.

Informatie opvragen

Om informatie te krijgen over de aangesloten beeldschermen, gebruik je de opdracht:
dany@linux-5350:~> xrandr -q
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192
LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 295mm x 166mm
   1366x768       60.0*+
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 connected (normal left inverted right x axis y axis)
   1600x1200      60.0 +   75.0     70.0  
   1280x1024      75.0     60.0  
   1280x960       60.0  
   1152x864       75.0     70.0  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   640x480        72.8     75.0     66.7     60.0  
   720x400        70.1  
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)

In de uitvoer zie je dat de computer via een LVDS en een VGA verbinding verbonden is met een beeldscherm. Het LVDS scherm is een in de laptop ingebouwd scherm, terwijl de VGA verbinding de laptop verbind met een extern vast beeldscherm.

Naast de gebruikte aansluiting, toont deze opdracht de door de beeldschermen ondersteunde resoluties en herhalingsfrequenties.

Opdrachten samenstellen

Een Xrandr opdracht heeft steeds de volgende vorm: xrandr --output SCREEN COMANDO, om bijvoorbeeld het VGA scherm uit te schakelen, gebruik je de volgende opdracht:
dany@linux-5350:~> xrandr --output VGA1 --off
Een scherm uitschakelen heeft soms voordelen, bij een extern scherm met een 1600x1200 resolutie zorgt het uitschakelen van het ingebouwde scherm met een 1366x768 resolutie voor een optimale weergave op het externe beeldscherm. De X grafische omgeving zal door het uitschakelen van het scherm met een lagere resolutie, automatisch overschakelen naar het gebruik van de optimale resolutie van het externe scherm.

De resolutie aanpassen

Om de resolutie aan te passen, gebruik je het argument --mode:
dany@linux-5350:~> xrandr --output VGA1 --mode 1280x1024 --refresh 75
Deze opdracht zorgt op het VGA scherm voor een resolutie van 1280x1024 met een 75 Hz herhalingsfrequentie.

Een scherm klonen

Om op het VGA scherm hetzelfde beeld als op het ingebouwde scherm weer te geven, gebruik je de opdracht:
dany@linux-5350:~> xrandr --output LVDS1 --auto --output VGA1 --auto --same-as LVDS1
Gebruik de opdracht xrandr -q om de te gebruiken schermnamen voor uw configuratie te achterhalen. Het argument --auto zorgt voor een optimale resolutie voor elk scherm. De optimale schermresoluties herken je aan het +-tekens in de xrandr -q uitvoer.

Schermen uitbreiden

Om een Bureaublad over verschillende schermen te verdelen (boven of onder elkaar, links of rechts van elkaar) gebruik je de volgende opdracht voor een 1600x1200 extern scherm met een 1366x768 ingebouwd scherm:
dany@linux-5350:~> xrandr --output LVDS1 --auto --output VGA1 --auto --right-of LVDS1
dany@linux-5350:~> xrandr --output LVDS1 --mode 1366x768 --pos 0x0 --output VGA1 --mode 1600x1200 --pos 1366x0
Deze twee opdrachten hebben hetzelfde effect. De eerste opdracht is echter veel eenvoudiger te onthouden.

Automatiseren bij het aanmelden

Om bij het aanmelden automatisch een tweede aangesloten scherm correct in te stellen, kun je in de map /etc/X11/xinit/xinitrc.d/ het script 45custom_xrandr-settings.sh met de volgende inhoud aanmaken:
# If an external monitor is connected, place it with xrandr
 
# External output may be "VGA" or "VGA-0" or "DVI-0" or "TMDS-1"
EXTERNAL_OUTPUT="VGA1"
INTERNAL_OUTPUT="LVDS1"
# EXTERNAL_LOCATION may be one of: left, right, above, or below
EXTERNAL_LOCATION="right"
 
case "$EXTERNAL_LOCATION" in
       left|LEFT)
               EXTERNAL_LOCATION="--left-of $INTERNAL_OUTPUT"
               ;;
       right|RIGHT)
               EXTERNAL_LOCATION="--right-of $INTERNAL_OUTPUT"
               ;;
       top|TOP|above|ABOVE)
               EXTERNAL_LOCATION="--above $INTERNAL_OUTPUT"
               ;;
       bottom|BOTTOM|below|BELOW)
               EXTERNAL_LOCATION="--below $INTERNAL_OUTPUT"
               ;;
       *)
               EXTERNAL_LOCATION="--left-of $INTERNAL_OUTPUT"
               ;;
esac
 
xrandr |grep $EXTERNAL_OUTPUT | grep " connected "
if [ $? -eq 0 ]; then
    xrandr --output $INTERNAL_OUTPUT --auto --output $EXTERNAL_OUTPUT --auto $EXTERNAL_LOCATION
    # Alternative command in case of trouble:
    # (sleep 2; xrandr --output $INTERNAL_OUTPUT --auto --output $EXTERNAL_OUTPUT --auto $EXTERNAL_LOCATION) &
else
    xrandr --output $INTERNAL_OUTPUT --auto --output $EXTERNAL_OUTPUT --off
fi
Bovenaan het script pas je de variabelen van de aangesloten schermen aan (in het voorbeeld VGA1 en LVDS1).

Grafische programma's voor xrandr

Er bestaan verschillende grafische programma's om xrandr te bedienen: Deze laatste wordt gebruikt in de lichtgewicht LXDE bureaublad omgeving. KDE4 en Gnome (en waarschijnlijk ook Unity) hebben in hun programma's om de computerconfiguratie aan te passen modules op basis van xrandr om met meerdere schermen te werken.