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 파일을 다음과 같이 업데이트했습니다.
답변
Raspbian Wheezy를 실행하는 Raspberry Pi에서도 비슷한 사용 사례가있었습니다. 키오스크 모드를 사용하여 Chrome에서 탭을 회전해야했습니다. 슬프게도 이전 Chrome에서 확장 프로그램을 설치하면 더 이상 합리적이지 않습니다. 허용되는 답변의 예에는 오타가 있거나 소프트웨어 버전에서 작동하지 않습니다.
xdotool key --window "$(xdotool search --class Chromium | head -1)" Ctrl+Tab
답변
Chromium을 사용하여 맞춤 웹 페이지를 표시하고 정기적으로 새로 고침하려는 경우 다음 태그를 추가 할 수 있습니다.
<meta http-equiv="refresh" content="5">
5 초마다 자동으로 새로 고칩니다 (원하는 경우 더 짧게 또는 더 길게 설정할 수 있음).
답변
역사적으로 Auto Hot Key를 사용하여 키 누름 보내기와 같은 작업을 수행했지만 Linux에서는 사용할 수 없지만 빠른 Google 검색을 통해 IronAHK ( http://www.ironahk.net/ ) 가 많지 않다는 사실이 밝혀 졌습니다 문서를 아직 사용할 수 있지만 트릭을 수행 할 수 있습니다.