X11
為什麼命令會在提示符下而不是在腳本中執行?
我有一個執行 raspbian jessie 的 RPi,我在 kiosk 模式下使用它:我從
/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 和它的 chrome。如果我 ssh 到主機並在根提示符下執行
export DISPLAY=':0' /usr/bin/xdotool key F11
然後Firefox正確切換到全屏。如果我使用
xte
. 控製文件/tmp/date.txt
有兩個日期行,並且/root/xinitrc-errors
.這種奇怪行為的原因可能是什麼?
鑰匙 $$ options $$擊鍵$$ keystroke … $$
選項:
–window 視窗
將擊鍵發送到特定的視窗 ID。您可以在此處使用
WINDOW STACK'' 引用,例如
%1’’ 和%@''。如果有視窗堆棧,則
%1’’ 是預設值,否則使用目前視窗。在您的
ssh
測試中,您已經關注了 Firefox 視窗,因此它收到了按鍵。在劇本中,xte mousemove ...
它沒有重點。您可以
xdotool search
與其他命令連結。搜尋firefox
可能會返回多個視窗。手冊頁使用範例--classname Navigator
,它適用於我測試的版本 (47.0.1)。如果做不到這一點,您可以使用xprop
查找特定於相關視窗的其他字元串。xdotool search --classname Navigator windowfocus key F11