我正在尝试创建一个bash脚本,该脚本每5毫秒记录一次鼠标的位置。我还想记录鼠标单击的时间戳和位置。
使用xdotool getmouselocation
可以轻松记录鼠标的位置。我已经能够使用此处的一些建议记录鼠标的点击:https://unix.stackexchange.com/questions/106736/detect-if-mouse-button-is-pressed-then-invoke-a-script-or-command
但是,我无法将两者结合起来。
有什么办法可以做到这一点?预先谢谢你!
答案 0 :(得分:1)
在https://unix.stackexchange.com/questions/106736/detect-if-mouse-button-is-pressed-then-invoke-a-script-or-command的公认答案中,有一个示例来更改鼠标状态。稍加修改,您就可以在按下鼠标按钮时打印出鼠标位置。
@Gem Taylor提到使用脚本语言并不是一种可选方式。
在测试运行期间,我遇到了无法捕获点击的情况。
#!/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