Resposta direta
Para atingir seu objetivo (de executar um script de espaço de usuário dependente de sessão X quando sua máquina continuar), você deve:
- execute o script como o usuário apropriado; e
- certifique-se de que a variável DISPLAY esteja configurada.
Gostaria de mover a linha sleep 15 && synclient TapButton2=2 TapButton3=3
para um arquivo separado, digamos /usr/local/sbin/setupTouchpad.sh
e substitua a linha por:
export DISPLAY=:0
su -c - <yourusername> /usr/local/sbin/setupTouchpad.sh
Onde <yourusername>
deve ser substituído. Observe que ainda é uma boa ideia ter algum tempo de espera para garantir que o sistema esteja ativo antes de executar o código. Além disso, certifique-se de chmod +x
that setupTouchpad.sh
script.
Uma maneira melhor
O problema com o que foi dito acima é que você tem que codificar seu nome de usuário (ou usar alguma maneira para descobrir qual usuário está logado e tem a sessão X ativa). É melhor definir as configurações do touchpad em todo o sistema para o X.
Essas opções podem ser definidas em /usr/share/X11/xorg.conf.d/
Para mim, o arquivo correto a ser editado é 50-synaptics.conf
aqui. Defini opções, aqui está uma parte desse arquivo:
Section "InputClass"
Identifier "touchpad catchall"
Driver "synaptics"
MatchIsTouchpad "on"
Option "TapButton2" "2"
Option "TapButton3" "3"
# Etc...
EndSection
Como você já deve estar ciente, para ver as opções válidas, basta executar synclient
.
Observação você deve reiniciar o X para que essas alterações entrem em vigor. Para fazer isso no Ubuntu, por exemplo, você pode executar sudo /etc/init.d/lightdm restart
Para visualizar suas alterações, você pode tentar executar a seguinte linha (ou alguma variante). Remova | bash
do final para ver os comandos emitidos.
cat /usr/share/X11/xorg.conf.d/50-synaptics.conf | grep Option | grep -v "^\#" | awk '{print "synclient " "=" }' | sed 's/\"//g' | bash
Se você pesquisar no Google por touchpad settings synaptics xorg.conf.d
, também encontrará algumas boas visões gerais das opções.
Referências