xdotool 창 스택에서 창 ID를 얻는 방법


12

활성화되었거나 집중된 창의 id가 필요합니다. xdotool명령 을 사용하려고합니다 . 명령이 있습니다 :

xdotool getactivewindow

결과는 창 스택에 저장됩니다. 이 창 스택에서 widnow ID를 얻고 싶습니다. 명령

xdotool getactivewindow getwindowpid

나를 만족시키지 않습니다. 프로세스 ID로 창 ID를 얻고 싶지 않습니다.

답변:


11

나는 xdotool getactivewindow당신이 원하는 것이라고 생각 합니다-당신은 그것을 시도 했습니까?

명령 행에 xdotool 부속 명령이 더 이상 없으면 창 스택에서 창 ID를 인쇄합니다.

xdotool getactivewindow getwindowpid를 들어, getactivewindowID를 창 스택에 getwindowpid놓고이 ID를 사용하여 PID를 쿼리합니다. 터미널에서 해당 명령을 실행하면 터미널 창의 ID가 항상 활성화되므로 터미널 창의 ID를 반환합니다. 다른 창에서 ID를 얻으려면 sleep 2s && xdotool getactivewindow2 초 동안 관심있는 창을 선택하십시오.


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

xdotool getactivewindow명령을 시도했지만 문제는 터미널에서 결과를 인쇄하지 않는다는 것입니다. 결과를 창 스택에 저장합니다. 이 명령은 일부 숫자를 인쇄하지만 창 ID가 아닙니다 (예 : 35651588)
Mariusz

35651588이 창 ID가 아니라고 생각하는 이유는 무엇입니까?
Volker Siegel

예, 35651588이 창 ID가 아니라고 생각합니다. xwininfo 명령으로 windows id를 볼 수 있습니다. 예를 들어 xwininfo -root -tree,이 명령은 모든 창을 인쇄하고 창에는 다른 유형의 번호 매기기가 있습니다.
Mariusz

1
xwininfo창 ID를 16 진수로 표시하고 xdotool은 10 진수를 표시하지만 동일합니다.
Volker Siegel

네 말이 맞아 35651588 = 0x2200004. xwininfo -root -tree | grep 2200004 0x2200004 "user@host:~": ("gnome-terminal" "Gnome-terminal") 1680x974+0+26 +0+51
Mariusz

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.