如何在 Linux 中获取准确的窗口信息?我知道我可以使用 wmctrl 来获取窗口的大小,但窗口的实际大小可能会因窗口装饰而有所不同。我需要以下信息和方法:
* precise window dimensions
* precise available screen space (excluding panels like gnome-panel)
* the ability to set a window to be a certain size, including decorations
Run Code Online (Sandbox Code Playgroud)
什么是最好的方法来做到这一点?
提前致谢!
> 精确的窗户尺寸
以下示例(至少可以在 sh、bash 和 zsh 中使用)将为标题中某处带有“KWrite”的所有窗口打印带框架和不带框架的窗口几何图形。
windows="$(wmiface findNormalWindows "KWrite" "" "" "" "" "")"
for window in $(echo $windows); do
{
echo $window
wmiface framePosition $window
wmiface frameSize $window
wmiface windowPosition $window
wmiface windowSize $window
echo
} done
Run Code Online (Sandbox Code Playgroud)
> 精确的可用屏幕空间(不包括像 gnome-panel 这样的面板)
xrandr
Run Code Online (Sandbox Code Playgroud)
例如:
xrandr | head -n1 | cut -d, -f2 | cut -d" " -f3-5
Run Code Online (Sandbox Code Playgroud)
在我的情况下输出:
4400 x 2560
Run Code Online (Sandbox Code Playgroud)
不确定如何排除面板 - 如果您有多个显示器,它们甚至可以位于虚拟屏幕的中间,因此没有面板的屏幕几何形状可能比“可用屏幕空间”更复杂。
> 能够将窗口设置为特定大小,包括装饰
wmiface setFrameGeometry $window $x $y $width $height
Run Code Online (Sandbox Code Playgroud)
阅读 wmiface README 以获得更多可能的命令。
| 归档时间: |
|
| 查看次数: |
20006 次 |
| 最近记录: |