Automatické přepínání displejů s xrandr

Automatické přepínání displejů s xrandr
« kdy: 18. 03. 2010, 09:50:28 »
Ahoj.

Mám následující problém. Provozuji notebook Lenovo X200 (Ubuntu 9.10-64 bit) střídavě samostatně a v dokovací stanici s druhým monitorem. Umístění do stanice a vyjmutí obvykle probíhá v suspendovaném stavu.
Chtěl bych, aby se podle toho, zda je, nebo není připojen externí monitor (HDMI2), zobrazil po probuzení desktop buď na tomto monitoru, nebo na displeji notebooku (LVDS1). Do /etc/pm/sleep.d jsem přídal tento skript:
Kód: [Vybrat]
#!/bin/bash

. /usr/lib/pm-utils/functions

case "$1" in
    hibernate|suspend)
        ;;
    thaw|resume)
        export DISPLAY=:0
        if xrandr | grep -q -e "HDMI2 connected"; then
          xrandr --output LVDS1 --off
          xrandr --output HDMI2 --auto --primary
        else
          xrandr --output HDMI2 --off
          xrandr --output LVDS1 --auto --primary
        fi
        ;;
    *)
        ;;
esac

exit

Výsledek: Pokud uspím notebook ve stanici, po probuzení funguje vše, jak má. Pokud ho uspím mimo stanici, probudí se správně do samostatného režimu, ale při probuzení ve stanici vidím jen černou plochu s kurzorem. Nezobrazí se odemykací dialog, lze se přepnout do textové konzole, ale další použití xrandr na libovolný výstup vrací chybu, pomůže jen restart.
Co dělám špatně?

Díky.

Jakub
« Poslední změna: 18. 03. 2010, 10:58:30 od Petr Krčmář »


Re: Automatické přepínání displejů s xrandr
« Odpověď #1 kdy: 18. 03. 2010, 22:33:42 »
Odpovím si sám: xrandr je v pořádku, to gnome-screensaver se neumí po suspendu zobrazit na správném monitoru (a nepomůže ani naťukání hesla poslepu). Po odinstalování a nahrazení xscreensaverem vše pracuje, jak má.

J.