Записать координаты мыши и щелчки мыши с отметками времени в файл? - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь создать скрипт bash, который записывает местоположение мыши каждые 5 миллисекунд. Я также хочу записать метки времени и места щелчков мыши.

Запись местоположения мыши стала проще с xdotool getmouselocation. Я смог записывать щелчки мышью, используя некоторые из предложений здесь: https://unix.stackexchange.com/questions/106736/detect-if-mouse-button-is-pressed-then-invoke-a-script-or-command Однако я не смог объединить их.

Есть ли способ сделать это? Заранее спасибо!

1 Ответ

1 голос
/ 30 апреля 2019

В принятом ответе https://unix.stackexchange.com/questions/106736/detect-if-mouse-button-is-pressed-then-invoke-a-script-or-command есть пример для изменения состояния мыши.С небольшими изменениями вы можете напечатать расположение мыши при нажатии кнопки мыши.

@ Джем Тейлор упомянул, что использование языка сценариев для этого не является обязательным.

Во время выполнения теста я сталкивался с случаями, когда щелкалине попадают в плен.

#!/bin/bash

MOUSE_ID=$(xinput --list | grep -i -m 1 'mouse' | grep -o 'id=[0-9]\+' | grep -o '[0-9]\+')

STATE1=$(xinput --query-state $MOUSE_ID | grep 'button\['"."'\]=down' | sort)
while true; do
        sleep 0.005
        STATE2=$(xinput --query-state $MOUSE_ID | grep 'button\['"."'\]=down' | sort)
        CLICK=$(comm -13 <(echo "$STATE1") <(echo "$STATE2"))
        if [[ -n $CLICK ]]; then
                echo "$CLICK"
                xinput --query-state $MOUSE_ID | grep 'valuator\['
        fi
        STATE1=$STATE2
done
...