터미널에서 GUI 프로그램으로 키 입력(F5)을 어떻게 보내나요?

터미널에서 GUI 프로그램으로 키 입력(F5)을 어떻게 보내나요?

저는 일부 통계를 표시하기 위해 Chromium(키오스크 모드)이 포함된 Raspberry Pi를 사용하고 있습니다. Pi에는 키보드가 연결되어 있지 않아서 검색해봤습니다.터미널에서 Chromium(탭) 프로세스로 키 입력을 보내는 솔루션. 일반 입력은 작동하지만 F5이 솔루션을 사용하여 (특수 키: 브라우저 새로 고침) 같은 것을 어떻게 보내나요?

# pidof chromium
20809 20790 20788 20786 20783
# echo 'some text' > /proc/20809/fd/0

답변1

GUI 프로그램은 표준 입력에서 데이터를 읽지 않습니다.X 서버. 창에 키 입력을 삽입할 수 있는 도구가 있습니다.xdo 도구꽤 일반적이고 편리합니다.

키 입력을 보내려는 창 ID를 찾아야 합니다. xdotool을 사용하여 이를 수행할 수 있습니다. xdotool search --class Chrome모든 Chrome 창에 대한 창 ID 목록을 반환합니다. 여러 개가 반환되는 경우 원하는 항목을 선택해야 합니다. xdotool search --name카테고리 대신 제목을 일치시키는 데 사용할 수 있습니다 . 다음 출력을 구문 분석할 수도 있습니다.제어판필요한 창 ID를 추출합니다.

올바른 창 ID를 찾으면 xdotoolInject KeyStrokes를 호출할 수 있습니다. 불행하게도 많은 응용 프로그램은 합성 이벤트, 즉 다른 응용 프로그램에서 보낸 키 입력 및 마우스 이벤트를 거부합니다. 현재 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에서는 현재 탭이 다시 로드됩니다.

답변2

위에서 제안한 솔루션은 다음과 같이 xdotool을 사용합니다.

 xdotool key --windowid <window> <keystroke>

이것은 나에게 효과가 없습니다. 몇 가지 실험 끝에 도착했습니다.

 xdotool windowactivate --sync <window> key <keystroke>

이것이 작동하는 것처럼 보였을 때 몇 가지 스크립트를 정의하고 다음과 같이 .lircrc 파일을 업데이트했습니다.

http://pcfellow.com/ClementineRemote.html

답변3

Raspbian Wheezy를 실행하는 Raspberry Pi에서도 비슷한 사용 사례가 있습니다. 키오스크 모드를 사용하여 Chrome에서 탭을 회전해야 합니다(슬프게도 이전 버전의 Chrome에서 이를 수행하기 위해 확장 프로그램을 설치하는 것은 더 이상 합리적이지 않습니다). 허용된 답변의 예에는 오타가 있거나 내 소프트웨어 버전에서 작동하지 않았습니다. 다음은 저에게 도움이 된 것입니다.

xdotool key --window "$(xdotool search --class Chromium | head -1)" Ctrl+Tab

답변4

과거에 키 입력 전송과 같은 작업을 위해 자동 단축키를 사용했지만 Linux에서는 사용할 수 없지만 빠른 Google 검색을 통해 IronAHK(http://www.ironahk.net/) 아직 사용할 수 있는 문서가 많지 않지만 도움이 될 수 있습니다.

관련 정보