나는 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
두 개의 날짜 줄과 /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