所以我有一個自動點擊器腳本,它是這個簡單的指令:貢
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 秒的延遲。您可以更改延遲以使其以更短的間隔發出咔嗒聲。