移動するオブジェクトを繰り返しクリックする必要があるゲームがあります。これは、個別のマウスボタンのないタッチパッドしかない場合は非常に困難です。
私が欲しいのは、特定のキーボードボタンまたは組み合わせを押したまま、マウスクリック(左ボタン、1秒あたり約5クリック)を繰り返しエミュレートするツール/スクリプトがあることです。 Control (right)+Menu。
私は次のようなコマンドで繰り返しクリックをエミュレートできることを知っています
xdotool click --repeat 10 --delay 200 1
しかし、一定のクリック数ではなく、特定のキーボードの組み合わせを押したままクリックする方法はわかりません。
これが私の最初と5回目の試みです。遅延を変更する必要がない場合、最初の方法は適切です。特定のキーの組み合わせにいくつかの問題があるようですが、何が原因かはわかりません。
方法1、~/.xbindkeysrc
:
keystate_scrolllock = enable
"xdotool click 1"
Scroll_Lock
方法5:
keystate_scrolllock = enable
"/home/USER/infinite_clicks.sh event16 KEY_SCROLLLOCK 0.1 &"
Scroll_Lock
infinite_clicks.sh
の場合:
#!/bin/bash
kbd=$1 #"event16"
key=$2 #"KEY_SCROLLLOCK"
delay=$3 #"0.1"
fn=`basename "$0"`
if [ $# -le 1 ]; then
echo "Usage: $fn input_device key_name delay"
echo "Example: $fn event16 KEY_SCROLLLOCK 0.1"
echo "Must run as superuser."
exit 1
fi
# do not start if already started
if [[ $(pidof -o %PPID -x $fn) ]]; then
exit 0
fi
while true; do
# this is why you need to use Sudo/superuser
evtest --query /dev/input/$kbd EV_KEY $key
# get evtest return code, if it's 0 the key is up
if [[ "$?" -eq "0" ]]; then
break
fi
xdotool click 1 &
sleep "$delay"
done
exit 0
このコードでは、xbindkeysをSudo xbindkeys -f ~/.xbindkeysrc
として実行する必要もあります
Sudo evtest
を使用してキーボードイベント番号を検索し、イベント番号を使用してSudo evtest /dev/input/eventXXX
を使用してキー名を検索できます。