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