![如何制作带有全局开始和停止键的自动答题器](https://linux22.com/image/111969/%E5%A6%82%E4%BD%95%E5%88%B6%E4%BD%9C%E5%B8%A6%E6%9C%89%E5%85%A8%E5%B1%80%E5%BC%80%E5%A7%8B%E5%92%8C%E5%81%9C%E6%AD%A2%E9%94%AE%E7%9A%84%E8%87%AA%E5%8A%A8%E7%AD%94%E9%A2%98%E5%99%A8.png)
所以我有一个自动点击器脚本,它是这个简单的命令:贡
xdotool click --delay 5 --repeat 900000 1
我必须切换到终端并Ctrl-C
中断脚本才能停止它。然后再次运行即可重新启动。
所以我开始使用read
命令来检查按键输入,以避免这种来回切换。然而,这只检查终端的输入。我正在点击其他地方,并且希望能够从那里开始和停止。
是否有一个版本read
可以检查全局击键?
答案1
通过键入xinput --list
,您将获得系统中所有输入设备的列表。您还可以使用以编程方式获取每个键的状态xinput --query-state DEVICE_ID
。
1 class :
KeyClass
key[0]=up
key[1]=up
key[2]=up
...
首先,您需要找出要使用的密钥代码。您可以通过运行xinput --test DEVICE_ID
并按 键来完成此操作。
key press ###
key release ###
一旦找到正确的密钥,就可以编写这样的脚本。
#!/bin/bash
while true; do
# Replace DEVICE_ID and KEYCODE.
inp=`xinput --query-state DEVICE_ID | grep -o 'button\[KEYCODE\]=down'`
if [ ! -z "$inp" ]; then
xdotool click 1
fi
done
当用户按住按钮时,这将垃圾邮件单击鼠标按钮
答案2
您可以使用另一个扩展 - numlockx
这是我的想法。
你可以通过安装 xdotools 和 numlockxsudo apt-get install -y numlockx xdotool
那么你就可以继续使用这样的东西。
DELAY=5
while true
do
NUMLOCK=$(numlockx status)
if [ "$NUMLOCK" == "Numlock is on" ]
then
xdotool click 1
fi
sleep $DELAY
done
这会导致全局答题器与您的数字锁定键相关联,并有 5 秒的延迟。您可以更改延迟以使其以更短的间隔发出咔嗒声。