Vボタンを押すとプログラムのボタンをスパムに送信するスクリプトがあります。
#!/bin/bash
winid=$(xdotool search "application name here" | head -n1)
while true; do
read -rsn1 input
if [ "$input" = "v" ]; then
xdotool keydown --window $winid "button"
xdotool keyup --window $winid "button"
fi
done
ただし、これは端末に焦点が合っている場合にのみ機能します。すべてのキーを押すようにする方法はありますか?
答え1
これは以下に適用されます。根ユーザー:
cat /dev/input/$(grep -E 'Handlers|EV=' /proc/bus/input/devices | \
grep -B1 'EV=120013' | grep -Eo 'event[0-9]+') | \
while read -rsn1 foo ; do echo "$foo" ; done | nl
出力(までCtrl-C):
1 ԥ
2 �W
3 ^
4
5
コードはどこでも読み取られます。/dev/入力/イベント*ファイルは現在のキーボードに対応しています。別の行に各キーを押すことをエコーし、各行に番号を付けます。キーストロークがすばやく追加されるため、行番号はルーチンが実行されているかどうかを示すのに役立ちます。
小さなフロントウィンドウでテキストエディタを開き、エディタにテキストを入力し、バックグラウンドで端末を横切って数字がスクロールするのを見てください。
上記のコードはgrep
以下から借りたものです。ジェイコブP答えはここにあります:
Linux キーボードイベントのキャプチャ /dev/inputX