web-dev-qa-db-ja.com

マウスの動きを検出して記録するbashスクリプト?

マウスの動きをたまに(たとえば、1秒ごとに.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がありますか?

18
anonymous

次のコマンドを試してください。

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

参照してください http://www.semicomplete.com/projects/xdotool/

21
Gilles Quenot

もう1つのオプションは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デバイス間のマウスの数を確認します。

13
Boris Burkov