script bash para detectar e registrar movimentos do mouse?

17

Eu preciso ser capaz de gravar os movimentos do mouse de vez em quando (a cada 0,2 de segundo) e tê-los em uma representação de coordenadas em vez de um diff.

Eu encontrei o seguinte script:

#!/bin/bash
while :
do
cat /dev/input/mice | read -n 1
date
sleep 1
done

Mas não parece imprimir nada no terminal (ou talvez seja tudo sem sentido). Outras discussões sugerem que / dev / input / mice está obsoleto. Além disso, / dev / input / mice não teria os dados em um formato amigável.

Eu terei que fazer a conversão manualmente (a partir do formato nos arquivos / dev / input), ou existe uma API para isso?

    
por anonymous 30.09.2012 / 22:48

2 respostas

20

Tente o seguinte comando:

xdotool getmouselocation 2>&1 |
    sed -rn '${s/x:([0-9]+) y:([0-9]+) .*/ /p}'

Veja o link

    
por 30.09.2012 / 23:01
11

Mais uma opção é xinput. Por exemplo, xinput test 8 escreveria

motion a[0]=496 a[1]=830 
motion a[0]=496 a[1]=829 
motion a[0]=496 a[1]=832 
motion a[0]=496 a[1]=834 

após o movimento do mouse, onde "8" é o número do meu dispositivo do mouse. Use xinput --list para descobrir o número do mouse entre os dispositivos.

    
por 30.09.2012 / 23:31