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