GUIプログラムは標準入力から読み取るのではなく、Xサーバーから入力を取得します。キーストロークをウィンドウに挿入するツールがあります。xdotoolはかなり一般的で便利です。
キーストロークを送信するウィンドウIDを見つける必要があります。あなたはxdotoolでそれを行うことができます。xdotool search --class Chrome
すべてのChromeウィンドウのウィンドウIDのリストを返します。これが複数を返す場合、必要なものを選択する必要があります。あなたは使用することができるxdotool search --name
代わりに、クラスのタイトルに一致します。wmctrlの出力を解析して、目的のウィンドウIDを抽出することもできます。
適切なウィンドウIDが見つかったら、呼び出しxdotool
てキーストロークを挿入できます。残念ながら、多くのアプリケーションは合成イベント、つまり別のアプリケーションから送信されたキーストロークやマウスイベントを拒否します。これは、現在のバージョンのChromeの場合です。別のメカニズムによって別のアプリケーションからキーストロークを注入することは可能ですが、そのためにはウィンドウにフォーカスを合わせる必要があります。これらはすべてxdotoolで行えますが、フォーカスがChromeウィンドウにすばやくちらつき、元に戻ります。次のスニペットF5は、最初のChromeウィンドウに送信します(いくぶん任意の順序で)。
xdotool search --class Chrome windowactivate --sync %1 key F5 windowactivate $(xdotool getactivewindow)
または、古いバージョンのxdotoolの場合:
xdotool windowactivate $(xdotool search --class Chrome) &&
xdotool key F5 &&
xdotool windowactivate $(xdotool getactivewindow)
これF5がそのウィンドウに送信され、それをどうするかを決定するのはプログラム次第であることに注意してください。Chromeでは、これにより現在のタブがリロードされます。