我想用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