
そこで、次のような簡単なコマンドの自動クリッカー スクリプトを作成しました。トリビュート
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とnumlockxをインストールするにはsudo 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
これにより、NumLock に関連付けられた 5 秒の遅延を持つグローバル クリッカーが作成されます。遅延を変更して、クリック間隔を短くすることができます。