私はraspbian jessieを実行するRPiを持っていて、それをキオスクモードで使用します。/etc/rc.local
/usr/bin/xinit /opt/domotique/xinitrc > /root/xinitrc-errors 2>&1
そして /opt/domotique/xinitrc
date > /tmp/date.txt
export DISPLAY=':0'
xset s off
xset -dpms
xset s noblank
setxkbmap fr
/usr/bin/matchbox-window-manager -use_titlebar no -use_cursor no &
# wait for the window manager to start
sleep 10
rm -fr /root/.config /root/.cache
/usr/bin/firefox http://127.0.0.1:8081/infoscreen/infoscreen.html &
# let the browser start
sleep 10
/usr/bin/xte 'mousemove 10000 10000'
sleep 2
/usr/bin/xdotool key F11
date >> /tmp/date.txt
sleep 40000000
アイデアは、最小ウィンドウマネージャを起動し、Firefoxを起動し、プログラムでマウスを離して、キーを押してF11
フルスクリーンに移動することです。
キーが「押されていない」以外はすべてうまく機能しますF11
。 Firefoxとそのクロムだけが残りました。
ホストにSSHで接続し、ルートプロンプトで実行する場合
export DISPLAY=':0'
/usr/bin/xdotool key F11
これにより、Firefoxがフルスクリーンに正しく切り替えられます。を使用しても同じですxte
。制御ファイルには/tmp/date.txt
2つの日付行と/root/xinitrc-errors
。
この奇妙な行動の理由は何ですか?
答え1
~からxdoツール(1):
鍵 [オプション]キー入力[キー入力...]
オプション:
--ウィンドウウィンドウ
特定のウィンドウIDにキーストロークを送信します。ここでは、「%1」や「%@」などの「WINDOW STACK」参照を使用できます。ウィンドウスタックが存在する場合、デフォルトは「%1」で、そうでない場合は現在のウィンドウを使用します。
テストでは、ssh
Firefoxウィンドウに焦点を当ててキーの押下を受信しました。スクリプトではxte mousemove ...
焦点が合っていません。
xdotool search
他のコマンドと関連付けることができます。検索結果はfirefox
複数のウィンドウを返すことがあります。マンページでは、--classname Navigator
私がテストしたバージョン(47.0.1)で動作するexampleを使います。失敗した場合は、xprop
問題のウィンドウに関連する他の文字列検索を使用できます。
xdotool search --classname Navigator windowfocus key F11
答え2
スクリプトの最初の行でshebangを試してみてください。
#!/usr/bin/env bash