在Bash on Ubuntu 14.04,Unity中,如何获得包含边框和标题的打开窗口的总大小?

时间:2014-09-26 01:46:58

标签: bash window ubuntu-14.04 ubuntu-unity

我在我的bash脚本中使用了https://unix.stackexchange.com/questions/14159/how-do-i-find-the-window-dimensions-and-position-accurately-including-decoration的答案,并且在我的Silentcast Xfce应用程序上取得了很好的成功,但是现在其他人正在使用它,他们在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。

1 个答案:

答案 0 :(得分:3)

这也适用于compiz。有几种方法可以在某些方面获得这些信息:

wnckprop --xid=$(xdotool getactivewindow)

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

xprop _NET_FRAME_EXTENTS --xid=$(xdotool getactivewindow)

正如您在freedesktop documentation中所读到的那样,该属性按此顺序列出了尺寸:左,右,上,下。

为了您的信息,如果您想获得完整的帧大小,包括窗口周围的输入区域,您可以使用xwininfo -frame