Dva monitory na Kubuntu 9.10

Úvodem

Pokud řešíte jakékoliv problémy s více monitory na Ubuntu/Kubuntu jako první zkuste vypnout speciální efekty (s nimi je rozchození rozšířené plochy mnohem větší oříšek).

Po delším hledání na netu a zkoušení několika variant jsem dospěl k závěru, že ideálním řešením, jak rozšířit plochu na Kubuntu 9.10, je využít automatický skript, který při zapnutí Xek zjistí připojení sekundárního monitoru a vše patřičně nastaví.

Mimochodem v (U/K)ubuntu 9.10 už sám od sebe není Xorg.conf.

Zjištění výstupů

Zjistit výstupy lze jednoduše příkazem:

xrandr -q

Na displeji se zobrazí něco jako:

Screen 0: minimum 320 x 200, current 2944 x 1080, maximum 4096 x 4096
VGA1 connected 1920x1080+1024+0 (normal left inverted right x axis y axis) 477mm x 268mm
   1920x1080      60.0*+
   1280x1024      75.0
   1152x864       75.0
   1024x768       75.1     60.0
   832x624        74.6
   800x600        75.0     60.3
   640x480        75.0     60.0
   720x400        70.1
LVDS1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 286mm x 214mm
   1024x768       60.0*+   85.0     75.0     70.1     60.0*    50.0
   832x624        74.6
   800x600        85.1     72.2     75.0     60.3     56.2
   640x480        85.0     72.8     75.0     60.0     59.9
   720x400        85.0
   640x400        85.1
   640x350        85.1
DVI1 disconnected (normal left inverted right x axis y axis)
TV1 disconnected (normal left inverted right x axis y axis)

Což znamená že mám aktivní výstupy VGA1 a LVDS1

Automatický skript

Pro automatické rozšiřování plochy je potřeba ve složce

/etc/X11/Xsession.d

vytvořit soubor 45custom_xrandr-settings (důležité je i to číslo 45 na začátku, které určuje pořadí vykonávání skriptů ve složce při startu Xek).

Do tohoto souboru je třeba zapsat například:

# 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 $EXTERNAL_OUTPUT --off
    xrandr --output $INTERNAL_OUTPUT --auto --primary --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 --primary --output $EXTERNAL_OUTPUT --off
fi

Čerpáno z http://bealetech.com/blogs/sean/2009/12/kubuntu-910-dual-monitors

Update

Pokud si nastavíte (jako já) například klonovaný výstup na projektor pomocí System → KRandRTray, přestane vám pravděpodobně automatický skript fungovat (po jeho spuštění a nastavení všeho se spustí KRandRTray a všechno zvorá).

Vše se dá naštěstí napravit. Stačí mrknout do ~/.kde/share/config/krandrrc a umazat nastavení, které se týká například projektoru. Vše pak běhá, zase jak má.

Photo credit: Håkan Dahlström, cc