Fórum Root.cz

Hlavní témata => Desktop => Téma založeno: Jakub Velímský 18. 03. 2010, 09:50:28

Název: Automatické přepínání displejů s xrandr
Přispěvatel: Jakub Velímský 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
Název: Re: Automatické přepínání displejů s xrandr
Přispěvatel: Jakub Velímský 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.