查找 X 窗口管理器的名称
如何从程序中找到正在运行的 X window 窗口管理器的名称?
如果我在一个窗口管理器已经运行时启动另一个窗口管理器,则会发生错误,因此必须有一种方法让另一个窗口管理器检测第一个窗口管理器。
它是如何工作的?
How do I find the name of the running X window window manager from a program?
If I start another window manager when one is already running, then an error occurs, so there must be a way for the other window manager to detect the first one.
How does it work?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
根据 EWMH 规范,兼容的窗口管理器将设置将根窗口上的
_NET_SUPPORTING_WM_CHECK
属性更改为窗口 ID。如果
_NET_SUPPORTING_WM_CHECK
属性存在并且包含现有窗口的 ID,则说明符合 ICCCM2.0 的窗口管理器正在运行。 如果该属性存在但不包含现有窗口的 ID,则符合 ICCCM2.0 的窗口管理器将在没有适当清理的情况下退出。 如果该属性不存在,则说明没有运行符合 ICCCM2.0 的窗口管理器。该窗口(不是根窗口,而是由根窗口上的属性描述的窗口)应该具有
_NET_WM_NAME
属性,这就是您要查找的属性。By the EWMH spec, a compliant window manager will set the
_NET_SUPPORTING_WM_CHECK
property on the root window to a window ID.If the
_NET_SUPPORTING_WM_CHECK
property exists and contains the ID of an existing window, then a ICCCM2.0-compliant window manager is running. If the property exists but does not contain the ID of an existing window, then a ICCCM2.0-compliant window manager exited without proper cleanup. If the property does not exist, then no ICCCM2.0-compliant window manager is running.That window (not the root window, but the one described by a property on the root window) should have a
_NET_WM_NAME
property on it, which is what you are looking for.wmctrl 命令可以显示有关许多 EWMH/NetWM 兼容 X 窗口管理器的信息,包括它们的名称:
根据其维基百科页面,它适用于目前(2012 年 8 月)以下窗口管理器:
The wmctrl command can display information about many EWMH/NetWM-compatible X window managers including their names:
Accroding to its Wikipedia page, it works with the following window managers at the present moment (Aug 2012):
您可能会找到一个包含该信息的“原子”,但我认为不能 100% 保证所有窗口管理器都使用相同的原子。 执行“xlsatoms”来列出服务器上的原子,或执行“xprop”(并单击)来查看特定窗口的属性(包括原子及其值)。
You may find an "atom" that has the information, but I don't think there is a 100% guarantee that all window managers use the same atom. Do an "xlsatoms" to list the atoms on your server, or "xprop" (and click) to see the properties (including atoms and their values) of a particular window.