シェルスクリプトのxdotoolがxbindkeysで正しく機能しない

シェルスクリプトのxdotoolがxbindkeysで正しく機能しない

私はこれで長い間苦労しました。非常に単純なスクリプトがあります。

#!/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機能しないのかを知っている人はいますか?

ベストアンサー1

おすすめ記事