bash - 在 Ubuntu 14.04、Unity 上的 Bash 中,如何获取打开窗口的总大小(包括边框和标题)?

标签 bash window ubuntu-14.04 ubuntu-unity

我已经使用了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/

相关文章:

bash - 获取 UNIX 中文件列表的总大小

linux - Bash:单引号/双引号中的变量扩展

python - 运行基于 OpenMPI 的库时出错

node.js - Node : 100s of simultaneous requests slows down server substantially. 操作系统问题?

bash - bash中的while循环只执行一次

bash - Powershell 是否具有类似于 Bash 的 "autocd"shopt 的功能?

wpf - 在 wpf 窗口中删除事件处理程序

python - 创建函数以规范化路径然后加入

python - Tkinter - 窗口焦点丢失事件

java - 如何指定 war 文件中资源的路径?