Raspberry PiをChromium(キオスクモード)と組み合わせて使用して、いくつかの統計を表示しています。 Piにはキーボードが接続されていないため、 ターミナルからChromium(タブ)プロセスにキーストロークを送信するためのソリューション を検索しました。通常の入力は機能しますが、このソリューションを介してF5
(特別なキー:ブラウザーの更新)などを送信するにはどうすればよいですか?
# pidof chromium
20809 20790 20788 20786 20783
# echo 'some text' > /proc/20809/fd/0
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では、これにより現在のタブが再読み込みされます。
上記で提案された解決策は、このようなxdotoolを使用しました
xdotool key --windowid <window> <keystroke>
うまくいきませんでした。いくつかの実験の後、私は到着しました
xdotool windowactivate --sync <window> key <keystroke>
それが機能しているように見えたら、スクリプトをいくつか定義し、.lircrcファイルを次のように更新しました。
Chromiumを使用してカスタムWebページを表示し、定期的に更新したい場合は、次のタグを追加できます。
<meta http-equiv="refresh" content="5">
5秒ごとに自動的に更新します(必要に応じて短くまたは長く設定できます)。
Raspbian Wheezyを実行しているRaspberry Piでも同様の使用例がありました。 Chromeキオスクモードを使用してタブを回転する必要がありました(残念ながら、これを行う拡張機能をインストールして古いChromeを使用することはもはや合理的ではありません)。受け入れられた回答の例いくつかのタイプミスがあるか、単に私のソフトウェアバージョンでは動作しません。これが私にとって有効なものです。
xdotool key --window "$(xdotool search --class Chromium | head -1)" Ctrl+Tab
私はこれまで、オートホットキーを使用してキーを送信するなどの操作を行ってきましたが、Linuxでは利用できませんが、Googleをすばやく検索すると、IronAHKがあることがわかります( http://www.ironahk.net/ =)まだ利用できるドキュメントは多くありませんが、それでうまくいくかもしれません。