2

我在我的 bash 脚本中使用了https://unix.stackexchange.com/questions/14159/how-do-i-find-the-window-dimensions-and-position-accurately-include-decoration的答案,并且有我在 Xfce 上的Silentcast应用程序取得了很好的成功,但现在其他人正在使用它,他们在 Ubuntu 14.04、Unity 中发现了一些问题。这是由以下输出引起的一个问题:

xwininfo -id $(xdotool getactivewindow)

显示:

Relative upper-left X: 0 Relative upper-left Y: 0

我用它来计算边框的宽度和标题栏的高度。它们不应该为 0。

有谁知道如何在 Unity for Ubuntu 14.04 中获取窗口边框的宽度和标题栏的高度。

或者,如何直接获取完整的窗口尺寸?

我已经为 xwininfo 包https://bugs.freedesktop.org/show_bug.cgi?id=84348提交了针对 xorg 的错误

我还发现了有关在 Ubuntu 14.04 下在 Unity 中创建自己的主题的信息:https ://wiki.ubuntu.com/Unity/Theming

似乎答案就在某个主题页面中,但我还不明白,尤其是因为我不使用 Ubuntu 或 Unity。

4

1 回答 1

3

这也适用于 compiz。您可以通过以下几种方式获取这些信息:

wnckprop --xid=$(xdotool getactivewindow)

否则,您可以将您从 xwininfo 获得的绝对值与可访问的装饰大小混合使用:

xprop _NET_FRAME_EXTENTS --xid=$(xdotool getactivewindow)

正如您在freedesktop 文档中看到的那样,该属性按以下顺序列出大小:左、右、上、下。

供您参考,如果您想获得完整的帧大小,包括窗口周围的输入区域,您可以使用xwininfo -frame.

于 2014-09-26T13:15:57.423 回答