Linux : Get window border height

标签 linux bash window-management

我尝试在 bash 脚本中获取窗口的最大尺寸(即屏幕尺寸减去屏幕边缘的面板)。我正在使用 Kubuntu,但如果它适用于任何 Linux 系统,那就太好了。

目前,我的解决方案是通过 wmctrl 最大化事件窗口:

wmctrl -r :ACTIVE: -b add,maximized_horz,maximized_vert

然后通过 xwininfo 获取窗口的大小:

xwininfo -id $(xdotool getactivewindow)

不幸的是,我没有得到窗口的大小,而是得到了窗口的大小和它的边框(如果我删除了边框,我得到了预期的值)。

所以我的问题是:

1 - 是否有删除窗口边框的命令? (我只知道怎么手动)

2 - 有更好的方法吗? (如果可以在不最大化窗口的情况下完成,那就太好了)

预先感谢您的帮助

最佳答案

我意识到我所说的 border 实际上是标题栏...如果我使用 xwininfo -stats 我确实得到了边框宽度(0案件)。标题栏高度(最大化窗口后)在字段 Absolute upper-left 中获得。以下给了我预期的高度:

eval $(xwininfo -id $(xdotool getactivewindow) | sed -n -e "s/^  Height: \+\([0-9]\+\).*/Height=\1/p" -e "s/^  Absolute upper-left Y:  \+\([0-9]\+\).*/HeightTitleBar=\1/p")
Height=$(($Height+$HeightTitleBar))

感谢您的帮助!

关于Linux : Get window border height,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18514989/

相关文章:

regex - sed 命令适用于命令行,但不适用于 bash 脚本

linux - 卷起/遮挡 float 窗口真棒?

linux - 不复杂的防火墙(UFW)-如何在本地主机上阻止单个端口

c - fork() 会创建别名吗?

bash - 获取sshd的PID

c++ - Qt - 捕获通常由窗口管理器处理的事件

winapi - 如何从 Powershell 事件订阅者操作​​设置前景窗口

linux - 检查条件是否为假

python - Tensorflow安装成功但不工作

linux - 使用 cat 和 bash 加入文本文件