![bash脚本来检测并记录鼠标移动?](https://linux22.com/image/25969/bash%E8%84%9A%E6%9C%AC%E6%9D%A5%E6%A3%80%E6%B5%8B%E5%B9%B6%E8%AE%B0%E5%BD%95%E9%BC%A0%E6%A0%87%E7%A7%BB%E5%8A%A8%EF%BC%9F.png)
我需要能够经常记录鼠标移动(例如每 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}'
答案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
找出您的鼠标在设备中的数量。