마우스 움직임을 감지하고 기록하는 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장치에 있는 마우스의 수를 알아내는 데 사용됩니다 .

관련 정보