Gancho de gerenciamento de energia para executar scripts * X11 * no wake

6

Anteriormente, eu fiz uma pergunta semelhante , mas esse era sobre a execução de scripts no nível do sistema.

Eu tenho um script que executa uma série de comandos xinput para ativar a rolagem com dois dedos no touchpad. Tem que ser re-executado toda vez que o computador dorme e acorda novamente, e ele deve ser executado dentro da sessão X11. Como faço para acionar um script para ser executado na minha área de trabalho do X11 quando o computador acordar?

P.S. Eu suspeito que há uma maneira de fazer isso com o DBUS, mas estou confuso nos detalhes. Talvez alguém com um DBUS-fu mais strong possa me apontar na direção certa.

    
por Avdi 11.03.2011 / 21:01

3 respostas

1

Se você tiver gnome-control-center instalado, execute gnome-mouse-properties , acesse a guia Touchpad e clique em Rolagem com dois dedos :

Funciona muito bem e também em situações de despertar. Então, a menos que você esteja usando seus scripts para outra coisa, jogue-os fora:)

    
por 11.03.2011 / 21:09
1

Tente exportar a variável DISPLAY para sessões X existentes.

Supondo que seja :0 , inclua o seguinte no início do seu script (bem, pelo menos antes de executar qualquer comando relacionado ao X).

export DISPLAY=":0"

Eu acho que você também pode precisar conceder autorização para o host local, executando o seguinte em um dos seus terminais X existentes. (Eu estou supondo que é você, e só você neste sistema, se não, isso dará a outros usuários locais acesso ao seu monitor X)

xhost +localhost

Já faz um tempo desde que eu realmente toquei com X, então espero que alguém possa vir e me corrigir.

    
por 11.03.2011 / 21:09
0

EDIT: Parece que minha compreensão de leitura está prejudicada, eu não acho que isso vai ajudar com o aspecto do X11, desculpe.

Se o seu sistema usa o pacote pm-utils para sleep / wake, você pode colocar um script no
/etc/pm/sleep.d /

Aqui está um script que eu uso para anexar meu mouse serial depois da hibernação:

#!/bin/sh

# Action script to ensure that serial mouse works
# after a hibernate/suspend
#
# Copyright: Copyright (c) 2009 Michael Vogt
# License:   GPL-2
#

PATH=/sbin:/usr/sbin:/bin:/usr/bin

SELF=attach-serial-mouse
COMMAND=
IFPLUGD_IFACE=

# pm-action(8) - <action> <suspend method>
#

case "${1}" in
        hibernate)
        # nothing
                ;;
        resume|thaw)
        inputattach --daemon -ms3 /dev/ttyS0
                ;;
esac

Salvei isso como 00_attach_serial_mouse.

    
por 11.05.2011 / 10:09