현재 초점이 맞춰진 창의 위치를 ​​얻는 방법은 무엇입니까?

현재 초점이 맞춰진 창의 위치를 ​​얻는 방법은 무엇입니까?

Python을 사용하여 Ubuntu 시스템에서 현재 초점을 맞춘 창의 스크린샷을 찍고 싶습니다. 위치를 어떻게 알 수 있습니까(왼쪽, 위, 오른쪽, 아래) 명령줄에서 현재 초점이 맞춰진 창을 사용하려면?

산출ps aux | grep -wE 'Xorg|Wayland'

test        1144  6.9  1.9 798024 76092 tty2     Sl+  13:29  24:20 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3
test       29912  0.0  0.0  17668   668 pts/1    S+   19:20   0:00 grep --color=auto -wE Xorg|Wayland

답변1

사용xdo 도구:

$ xdotool getwindowfocus getwindowgeometry --shell
WINDOW=94371847
X=604
Y=229
WIDTH=1303
HEIGHT=774
SCREEN=0

왼쪽 상단 모서리의 좌표와 창 크기가 있으면 원하는 좌표를 쉽게 추론할 수 있습니다.

  • 오른쪽 상단 모서리는 X=1907(604+1303), Y=229에 위치합니다.
  • 왼쪽 하단 모서리는 X=604, Y=1003(229+774)에 위치합니다.
  • 오른쪽 하단 모서리는 X=1907(604+1303), Y=1003(229+774)에 위치합니다.

따라서 이것을 4개의 좌표를 제공하는 작은 함수로 결합할 수 있습니다.

showCoords(){
    eval "$(xdotool getwindowfocus getwindowgeometry --shell)"
    topLeft="$X,$Y"
    topRight="$((X+WIDTH)),$Y"
    bottomLeft="$X,$((Y+HEIGHT))"
    bottomRight="$((X+WIDTH)),$((Y+HEIGHT))"
    printf 'top left:%s\ntop right:%s\nbottom left:%s\nbottom right:%s\n' "$topLeft" "$topRight" "$bottomLeft" "$bottomRight"
}

지금 실행하면 다음과 같은 결과를 showCoords얻을 수 있습니다.

$ showCoords
top left:604,229
top right:1907,229
bottom left:604,1003
bottom right:1907,1003

관련 정보