ショートカットにバインドして乱数文字列を入力するスクリプトを作成しました。
#!/bin/bash
ran="$(shuf -i 100000-999999 -n 1)"
sleep .2
xdotool type --delay 12 "untitled_$ran "
何らかの理由で、このxdotool
コマンドは最初の10分の1秒間何もしません。そうでない場合は、sleep
何も入力しないでください。sleep
コマンドが短い場合は、6文字未満で入力してください。これは、コマンドは実行中ですが、スクリプトの実行後最初の数分間は無視されるのと同じです。
なぜこれが起こるのですか?この問題をどのように解決できますか?
ベストアンサー1
あなたはあなたの意見でこのスクリプトを実行するために一種のショートカットを使用していると言いました。何が起こっているのかは確かにわかりませんが、キーボードフォーカスが動くことが疑われますxdotool
。この仮説をテストするには、次のアプローチをお勧めします。
xev
ターミナルから始めてください。- 端末が見えるようにしながらウィンドウに焦点を合わせます
xev
(ウィンドウ内にマウスを移動するなど)。 - ショートカットキーを押します。
- イベントを監視し
FocusOut
て記録します。このような場合、鍵が消えた理由を説明できます。FocusIn
xev
xev
KeyPress
イベントは、KeyRelease
あなたがその仕事をしていることを示さなければなりませんxdotool
。
仮定が正しい場合、それを修正する方法については、フォーカス変更を引き起こさないようにショートカットを有効にする必要があります。全然知らない…