창이 어느 뷰포트(compiz/unity)에 배치되어 있는지 확인하는 방법은 무엇입니까?

창이 어느 뷰포트(compiz/unity)에 배치되어 있는지 확인하는 방법은 무엇입니까?

저는 창이 어느 뷰포트에 배치되는지 결정해야 하는 스크립트를 작성 중입니다.

내 데스크탑은 2x2(4개의 뷰포트)입니다. 일반적으로 4개의 가상 데스크탑으로 간주되지만 compiz/unity에서는 실제로 하나의 뷰포트이고 xdotool get_num_desktops.

설명을 돕기 위해 다음 뷰포트를 살펴보세요(실제로 ID인지는 확실하지 않음).

0 1  
2 3  

창을 뷰포트 2에 놓고 를 실행한 xwininfo -all후 창을 클릭하면 해당 ID가 표시되고 "왼쪽 상단" 값이 마치 뷰포트 0에 있는 것처럼 모두 작지만 실제로는 값이 위는 뷰포트 2를 기준으로 합니다.

또한 어떤 뷰포트에 있는지에 대한 정보를 찾을 수 없습니다.

다음을 통해 자세한 정보를 확인할 수 있습니다.
wmctrl -d현재 있는 뷰포트에 대한 정확한 정보를 표시합니다.
xdotool get_desktop_viewport뷰포트 2와 3에서는 정확하지 않습니다.

답변1

실제로는 매우 간단합니다. 창 뷰포트 위치 정보는 현재 뷰포트를 기준으로 합니다.

따라서 xwininfo창을 입력하고 선택하기만 하면 됩니다.
이제 뷰포트와 유형을 변경합니다 xwininfo -id 0x...(0x...는 창에 대해 수집한 ID입니다). 위치 값은 현재 뷰포트 제한 외부에 표시되며 상대 값은 다음과 같이 현재 뷰포트를 기반으로 합니다.

Absolute upper-left X:  -1270
Absolute upper-left Y:  62

이를 바탕으로 창이 어디에 있는지 결정할 수 있습니다.
이 예에서 나는 뷰포트 1에 있고 창은 뷰포트 0에 있습니다.

관련 정보