bash脚本来检测并记录鼠标移动?

bash脚本来检测并记录鼠标移动?

我需要能够经常记录鼠标移动(例如每 0.2 秒),并将它们放在坐标表示中而不是差异中。

我找到了以下脚本:

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

但它似乎没有在终端上打印任何内容(或者可能都是乱码)。其他讨论表明 /dev/input/mice 已被弃用。最重要的是,/dev/input/mice 实际上不会有友好格式的数据。

我是否必须手动进行转换(根据 /dev/input 文件中的格式),或者是否有相应的 API?

答案1

尝试以下命令:

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

http://www.semicomplete.com/projects/xdotool/

答案2

另一种选择是 xinput。例如,xinput test 8会写

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 

鼠标移动时,其中“8”是我的鼠标设备编号。用于xinput --list找出您的鼠标在设备中的数量。

相关内容