グローバルスタートとストップキーを備えたオートクリッカーの作り方

グローバルスタートとストップキーを備えたオートクリッカーの作り方

そこで、次のような簡単なコマンドの自動クリッカー スクリプトを作成しました。トリビュート

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 秒の遅延を持つグローバル クリッカーが作成されます。遅延を変更して、クリック間隔を短くすることができます。

関連情報