터미널에서 GUI 프로그램으로 키 입력 (F5)을 보내는 방법은 무엇입니까? 표시합니다. Pi에는

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 파일을 다음과 같이 업데이트했습니다.

http://pcfellow.com/ClementineRemote.html


답변

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/ ) 가 많지 않다는 사실이 밝혀 졌습니다 문서를 아직 사용할 수 있지만 트릭을 수행 할 수 있습니다.