我已经使用了https://unix.stackexchange.com/questions/14159/how-do-i-find-the-window-dimensions-and-position-accurately-including-decoration的答案在我的 bash 脚本中,并且我的 Silentcast 取得了很好的成功Xfce 上的应用程序,但现在其他人正在使用它,他们在 Ubuntu 14.04、Unity 中发现了一些问题。这是由输出引起的一个问题:
xwininfo -id $(xdotool getactivewindow)
显示:
相对左上角X:0
相对左上角Y:0
我用它来计算边框的宽度和标题栏的高度。它们不应该是 0。
有谁知道如何在 Ubuntu 14.04 的 Unity 中获取窗口边框的宽度和标题栏的高度。
或者,如何直接获取完整的窗口尺寸?
我已经针对 xwininfo 包的 xorg 提交了一个错误 https://bugs.freedesktop.org/show_bug.cgi?id=84348
我还找到了有关在 Ubuntu 14.04 下在 Unity 中创建自己的主题的信息:https://wiki.ubuntu.com/Unity/Theming
似乎答案就在主题页面的某个地方,但我还不明白,特别是因为我不使用 Ubuntu 或 Unity。
最佳答案
这也适用于 compiz。您可以通过以下几种方式获取这些信息:
wnckprop --xid=$(xdotool getactivewindow)
否则,您可以将从 xwininfo 获得的绝对值与可使用以下方式访问的装饰的大小混合在一起:
xprop _NET_FRAME_EXTENTS --xid=$(xdotool getactivewindow)
正如您在 freedesktop documentation 中所读到的那样,该属性按以下顺序列出尺寸:左、右、上、下。
供您引用,如果您想获取完整的帧大小,包括窗口周围的输入区域,可以使用 xwininfo -frame
。
关于bash - 在 Ubuntu 14.04、Unity 上的 Bash 中,如何获取打开窗口的总大小(包括边框和标题)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26050788/