xinput
configura e testa os dispositivos de entrada X. Ele usa a variável de ambiente $DISPLAY
para encontrar o servidor X com o qual conversar, portanto, é necessário defini-lo, porque as tarefas agendadas não requerem X windows. O jeito fácil é ter a linha crontab
env DISPLAY=:0.0 /usr/bin/xinput set-prop 12 --type=float "Coordinate Transformation Matrix" 0 -1 1 1 0 0 0 0 1 >> /tmp/mybackup.log
Existe um servidor X em execução quando o cronjob é executado? Além disso, se houver um servidor X em execução, ele poderá estar em execução com as credenciais de autenticação X de um usuário, e seu log do cron mostrará sua execução como root
. Se você não está exposto e está disposto a arriscar a reduzir sua segurança X, tente executar
xhost +SI:localhost:root
no seu servidor X em cada login. Ou execute a tarefa cron como o mesmo usuário, não root
.