私はこれで長い間苦労しました。非常に単純なスクリプトがあります。
#!/bin/bash
while true; do
if [ ! -z "$(/usr/bin/xinput --query-state 17 | grep -o 'button\[12\]=down')" ]; then
/usr/bin/xdotool click --delay 18 1
else
break
fi
done
マウスボタン12を押しながら実行したいので、ファイルは.xbindkeysrc
次のようになります。
"bash ~/Scripts/test2.sh"
b:12
動作します。xbindkeys -v
端末に狂ったように、ボタン1スパムが表示されますが、クリックはOSに登録されません。私はxfceを使ってDebian 12を実行しているので、当然X11を使っています。ただし、ボタン12にスパムを送信すると、ボタン1クリックが複数回登録されることがあります。私はstackoverflowで提案されたいくつかのタイミングトリックと他のものを試しましたが、運がありませんでした。
また、私の設定が次のような場合:
"xdotool click 1"
b:12
同じことを行います。クリックは検出されますが、click1 コマンドはオペレーティングシステムに登録されません。
ボタン12を押しながら端末でスクリプトを実行すると、期待どおりに機能し、ボタンを離すと終了するため、スクリプトは正常に動作します。なぜxdotool
実行がxbindkeys
機能しないのかを知っている人はいますか?