我需要找到一种方法来获取适合传递给某些 X 窗口命令-geometry
选项的几何图形,以便保证覆盖所有不与 GNOME 本身管理的任何东西重叠的 X 根窗口(例如,GNOME 面板窗口)。这与xwininfo -root
将返回整个 X 根窗口的几何图形的输出不同,并且必然包括 GNOME 面板消耗的不动产。因为我不再使用 KDE,所以我不需要对 KDE 也一样。
我希望能够使用 X windows 命令行实用程序获得该几何图形,而不必求助于 Xlib 编程(即,我想从脚本中这样做)。这些脚本可以依赖于 GNOME 命令行实用程序。
使用基本数学“减去” GNOME 面板是一种选择,但前提是我可以保证我只需要考虑唯一的 GNOME 面板 X 窗口。但我怀疑 GNOME 面板窗口并不是唯一需要考虑的窗口。我这么说是因为底部有一个窗口xwininfo
显示为“底部扩展边缘面板”,它可能会或可能不会在房地产方面发生冲突,因为仅当鼠标移动到 X 根的最底部时才会显示窗户。但如果 GNOME 面板真的是唯一需要考虑的面板,那么这种“减法”方法可能就足够了。
我的用例是这样的:我正在使用rdesktop将 RDP 导入各种 Microsoft Windows 桌面。用户需要在执行之前决定
rdesktop
X 窗口的尺寸,因为它在显示后无法调整大小。我需要该窗口来消耗最大数量的根窗口不动产,只要它不与 GNOME 管理的窗口(如 GNOME 面板)冲突。我现在正在做的是在调用 的包装器脚本中硬编码特定桌面的几何图形rdesktop
,但这无法达到我想要的效果,因为我在各种桌面上工作,这些桌面必然会在显示硬件上有所不同,从而导致 X 根窗口中的变化几何学。将 X 根窗口的几何图形馈送到rdesktop
命令导致 RDP 窗口超出 GNOME 桌面上的可见区域,因为 GNOME 的窗口管理器将实际的左上角向下推以避免与 GNOME 面板重叠,结果是 RDP 窗口的一部分被鼠标操作隐藏.
我尝试使用xwininfo -root -children
来查看是否可以在 X 根的直接后代中找到一些 X 窗口,该窗口始终是我可以用来提取这些维度的窗口,但名称看起来像是 GNOME 桌面软件的实现细节(或 metacity WM),或两者兼而有之,可能不是我想要依赖的东西。