如何在 Linux 中获取准确的窗口信息?我知道我可以使用 wmctrl 来获取窗口的大小,但窗口的实际大小可能会因窗口装饰而有所不同。我需要以下信息和方法:
* precise window dimensions
* precise available screen space (excluding panels like gnome-panel)
* the ability to set a window to be a certain size, including decorations
实现这个的最佳方法是什么?
提前致谢!
答案1
答案2
> 精确的窗口尺寸
以下示例(至少在 sh、bash 和 zsh 中有效)将打印标题中某处带有“KWrite”的所有窗口的带框和不带框的窗口几何形状。
windows="$(wmiface findNormalWindows "KWrite" "" "" "" "" "")"
for window in $(echo $windows); do
{
echo $window
wmiface framePosition $window
wmiface frameSize $window
wmiface windowPosition $window
wmiface windowSize $window
echo
} done
> 精确的可用屏幕空间(不包括 gnome-panel 等面板)
xrandr
例如:
xrandr | head -n1 | cut -d, -f2 | cut -d" " -f3-5
就我而言,输出:
4400 x 2560
不确定如何排除面板 - 如果您有多个显示器,它们甚至可以位于虚拟屏幕的中间,因此没有面板的屏幕几何形状可能比“可用屏幕空间”更复杂。
> 能够将窗口设置为特定大小,包括装饰
wmiface setFrameGeometry $window $x $y $width $height
阅读 wmiface README 以了解更多可能的命令。