Finalmente consegui dar certo! Parece que executar xinput
de um script sleep.d
requer alguns ajustes. Aqui está o que eu fiz. Espero que seja de alguma utilidade para alguém.
Então eu tenho um script chamado 40mouse_slow
que eu coloquei em /etc/pm/sleep.d
. O 40
é usado para pedidos. No currículo, os números baixos começam último . Os scripts de usuário devem usar 00
to 49
. Certifique-se de que o script tenha direitos de execução. Aqui está o script:
#!/bin/sh
case "" in
resume|thaw)
/home/yannick/scripts/mouse_slow.sh &
;;
*)
# Nothing.
;;
esac
Diz apenas que o script /home/yannick/scripts/mouse_slow.sh
deve ser lançado em segundo plano quando o computador for retomado. Eu tentei lançá-lo não no fundo, mas isso quebrou retomando (rede não funcionou, por exemplo).
Aqui está /home/yannick/scripts/mouse_slow.sh
. Verifique também se tem direitos de execução:
#!/bin/sh
export DISPLAY=:0.0
id='su yannick -c "xinput" | grep 'PID:400a' | cut -c58-60'
su yannick -c "xinput set-prop $id 'Device Accel Constant Deceleration' 2.5"
A segunda linha é apenas para encontrar o id do meu mouse. Quanto às outras duas linhas, elas ilustram que as duas coisas que eu encontrei tiveram que ser feitas para tornar o xinput
work quando ele é chamado de um script em sleep.d
:
-
DISPLAY
deve ser definido e exportado - o usuário que está executando
xinput
deve ser o usuário que está executando X, e não raiz.