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 :
-
DISPLAYdeve ser definido e exportado - o usuário que está executando
xinputdeve ser o usuário que está executando X, e não raiz.