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