마우스 움직임을 자주(예: 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
장치에 있는 마우스의 수를 알아내는 데 사용됩니다 .