Command-Line
如何準確找到窗戶尺寸和位置,包括裝飾品?
我一直在試圖找出一個小腳本中使用的視窗的大小。我目前的技術是
wmctrl -lG
用來找出尺寸。然而,問題是這樣的:它給出的 x 和 y 數字用於視窗裝飾的左上角,而高度和寬度僅用於內容區域。這意味著如果視窗裝飾添加 20px 的高度和 2px 的寬度,wmctrl 將報告視窗為 640x480,即使它在螢幕上佔用 660x482。這是一個問題,因為我的腳本下一步將使用該區域來告訴 ffmpeg 記錄螢幕。我想避免在目前設置中對視窗裝飾的大小進行硬編碼。
適合的是獲取視窗裝飾大小的方法,以便我可以使用它們來確定 640x480 內容區域的位置,或者直接獲取內容區域位置的方法,而不是視窗裝飾的位置.
以下腳本將為您提供左上角的螢幕座標和視窗大小(沒有任何裝飾)。. . .
xwininfo -id $(xdotool getactivewindow)
包含足夠的資訊給你。#!/bin/bash # Get the coordinates of the active window's # top-left corner, and the window's size. # This excludes the window decoration. unset x y w h eval $(xwininfo -id $(xdotool getactivewindow) | sed -n -e "s/^ \+Absolute upper-left X: \+\([0-9]\+\).*/x=\1/p" \ -e "s/^ \+Absolute upper-left Y: \+\([0-9]\+\).*/y=\1/p" \ -e "s/^ \+Width: \+\([0-9]\+\).*/w=\1/p" \ -e "s/^ \+Height: \+\([0-9]\+\).*/h=\1/p" ) echo -n "$x $y $w $h" #