답변:
나는 xdotool getactivewindow
당신이 원하는 것이라고 생각 합니다-당신은 그것을 시도 했습니까?
명령 행에 xdotool 부속 명령이 더 이상 없으면 창 스택에서 창 ID를 인쇄합니다.
예 xdotool getactivewindow getwindowpid
를 들어, getactivewindow
ID를 창 스택에 getwindowpid
놓고이 ID를 사용하여 PID를 쿼리합니다. 터미널에서 해당 명령을 실행하면 터미널 창의 ID가 항상 활성화되므로 터미널 창의 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
xwininfo -root -tree
,이 명령은 모든 창을 인쇄하고 창에는 다른 유형의 번호 매기기가 있습니다.
xwininfo
창 ID를 16 진수로 표시하고 xdotool은 10 진수를 표시하지만 동일합니다.
xwininfo -root -tree | grep 2200004 0x2200004 "user@host:~": ("gnome-terminal" "Gnome-terminal") 1680x974+0+26 +0+51
xdotool getactivewindow
명령을 시도했지만 문제는 터미널에서 결과를 인쇄하지 않는다는 것입니다. 결과를 창 스택에 저장합니다. 이 명령은 일부 숫자를 인쇄하지만 창 ID가 아닙니다 (예 : 35651588)