Mouse

bash 腳本來檢測和記錄滑鼠移動?

  • January 21, 2013

我需要能夠每隔一段時間(例如每 0.2 秒)記錄滑鼠移動,並將它們以座標表示而不是 diff 表示。

我找到了以下腳本:

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

但它似乎沒有向終端列印任何內容(或者可能都是胡言亂語)。其他討論表明 /dev/input/mice 已被棄用。最重要的是, /dev/input/mice 實際上並沒有友好格式的數據。

我是否必須手動進行轉換(從 /dev/input 文件中的格式),還是有用於此的 API?

嘗試以下命令:

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

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

另一種選擇是 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找出您的滑鼠在設備中的數量。

引用自:https://unix.stackexchange.com/questions/49546