Execute o script de configuração no resumo da sessão X

3

No Ubuntu 13.04, eu tenho que configurar manualmente o touchpad, pois um bug me impede de usar a ferramenta de configuração padrão (as alterações não são salvas). No entanto, criei um script que configura velocidade, aceleração e rolagem, configurei-o para ser executado no sartup e ele funciona. O problema aumenta quando eu retomo após a suspensão: especialmente as configurações de rolagem (as mais fáceis de verificar) desaparecem. Seguindo outras perguntas e respostas eu escrevi este script (que contém os mesmos comandos que eu usei no mencionado acima) localizado em /etc/pm/sleep.d/ZZtouchpad :

#!/bin/sh 
case "" in
    resume|thaw)
        xinput  --set-prop "CyPS/2 Cypress Trackpad" "Device Accel Constant Deceleration" 2
        xinput  --set-prop "CyPS/2 Cypress Trackpad" "Device Accel Velocity Scaling" 35
        xinput  --set-prop "CyPS/2 Cypress Trackpad" "Synaptics Scrolling Distance" -20, -20
esac

Mas não funciona de todo.

Thnks por ajuda!

EDITAR

Descobri que o script funciona ao suspender com pm-suspend ou pm-suspend-hybrid , mas ao suspender do menu do sistema ou ao fechar a tampa do laptop, ele não funciona. Parece que o erro é "incapaz de se conectar ao servidor X".

Então, a questão deve ser melhor reformulada: onde devo colocar esses comandos para eles serem executados quando a sessão X for reiniciada? Eu tentei ~/.xinitrc , um arquivo em ~/.xinitrc.d e ~/.xsessionrc . Alguma sugestão?

    
por Earendil 22.05.2013 / 17:51

1 resposta

0

Eu tive um problema semelhante. O problema é se conectar ao servidor X. Eu resolvi isso roubando /etc/acpi/sleep.sh . Coloque o seguinte em /etc/pm/sleep.d/99_setup_touchpad .

#! /bin/sh

. /usr/share/acpi-support/power-funcs

case "" in
    resume|thaw)
        if pidof xscreensaver > /dev/null; then
            for x in /tmp/.X11-unix/*; do
                displaynum='echo $x | sed s#/tmp/.X11-unix/X##'
                getXuser;
                if [ x"$XAUTHORITY" != x"" ]; then
                    export DISPLAY=":$displaynum"
                    su $user -c "xinput set-prop 'CyPS/2 Cypress Trackpad' 'Device Accel Constant Deceleration' 2"
                    su $user -c "xinput set-prop 'CyPS/2 Cypress Trackpad' 'Device Accel Velocity Scaling' 35"
                    su $user -c "xinput set-prop 'CyPS/2 Cypress Trackpad' 'Synaptics Scrolling Distance' -20, -20"
                fi
            done
        fi
        ;;    
    *)
        # Nothing.
        ;;
esac

Finalmente, torne o arquivo executável: chmod 755 /etc/pm/sleep.d/99_setup_touchpad .

Nota: Eu sou geralmente o único logado via X no meu laptop. Então o loop é apenas uma iteração. Eu não sei o que acontece se houver mais de uma sesssions ao mesmo tempo. O acima é bom o suficiente para mim.

    
por Meikel 01.09.2013 / 13:45