활성 창이나 초점이 맞춰진 창의 ID가 필요합니다. 명령어를 사용해 보았습니다 xdotool
. 다음 명령이 있습니다.
xdotool getactivewindow
결과는 창 스택에 저장됩니다. 이 창 스택에서 Widnow ID를 얻고 싶습니다. 주문하다
xdotool getactivewindow getwindowpid
나를 만족시키지 못합니다. 프로세스 ID로 창 ID를 얻고 싶지 않습니다.
답변1
내 생각엔 xdotool getactivewindow
이것이 당신이 원하는 것이라고 생각합니다. 시도해 보셨나요?
명령줄에 다른 xdotool 하위 명령이 없으면 (창 스택에서) 창 ID를 인쇄합니다.
예를 들어 xdotool getactivewindow getwindowpid
, getactivewindow
ID를 창 스택에 넣고 getwindowpid
해당 ID를 사용하여 PID를 쿼리합니다. 터미널에서 이 명령을 실행하면 활성화된 터미널 창의 ID가 항상 반환됩니다. 다른 창에서 ID를 가져오려면 sleep 2s && xdotool getactivewindow
2초 시간 범위 내에서 관심 있는 창을 선택해 보세요.
xdotool
다른 창 처리 도구를 사용할 때 몇 가지 문제가 발생합니다.
xdotool
출력에서는 windwo ID에 10진수를 사용 하지만 대부분의 다른 도구에서는16진수출력 번호(일반적으로 입력을 지원합니다).
xdotool getactivewindow
예를 들어, 가 있는 창을 찾는 경우 모든 창을 나열하는 출력에서는 결과를 찾을 수 없습니다 . xwininfo -root -tree
먼저 16진수로 변환해야 합니다.
$ xdotool getactivewindow
69206716
$ printf 0x%x 69206716
0x42002bc
$ xwininfo -root -tree | grep 0x42002bc
0x42002bc (has no name): ("konsole" "Konsole") 1154x781+0+0 +1289+498
10진수를 16진수로 변환:
printf 0x%x 69206716
16진수를 10진수로 변환:
printf %i 0x42002bc
답변2
이 명령은 나에게 효과적이었습니다.
xdotool key --window "$(xdotool getactivewindow)" F5
xdotool 버전 3.20160805.1
답변3
나는 이것이 오래된 질문이라는 것을 알고 있습니다. 어쩌면 누군가가 이 답변이 유용하다고 생각할 수도 있습니다.
xdotool selectwindow getmouselocation --shell
그런 다음 원하는 ID의 창을 클릭하세요.