查找 X 窗口管理器的名称

发布于 2024-07-17 00:35:26 字数 132 浏览 7 评论 0原文

如何从程序中找到正在运行的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

戏剧牡丹亭 2024-07-24 00:35:26

根据 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.

累赘 2024-07-24 00:35:26

wmctrl 命令可以显示有关许多 EWMH/NetWM 兼容 X 窗口管理器的信息,包括它们的名称:

$ wmctrl -m
Name: Compiz
...

根据其维基百科页面,它适用于目前(2012 年 8 月)以下窗口管理器:

  • blackbox >= 0.70icewm
  • kwin
  • (KDE 的默认 WM)
  • metacity(GNOME 的默认 WM)
  • openbox >= 3(Lubuntu 的默认 WM)
  • sawfish
  • fvwm > = 2.5
  • waimea
  • pekwm
  • 启蒙 >= 0.16.6
  • xfce >= 4
  • Fluxbox >= 0.9.6
  • 火柴盒
  • 窗口制作器 >= 0.91
  • compiz
  • Awesome
  • wmfs

The wmctrl command can display information about many EWMH/NetWM-compatible X window managers including their names:

$ wmctrl -m
Name: Compiz
...

Accroding to its Wikipedia page, it works with the following window managers at the present moment (Aug 2012):

  • blackbox >= 0.70
  • icewm
  • kwin (the default WM for KDE)
  • metacity (the default WM for GNOME)
  • openbox >= 3 (the default WM for Lubuntu)
  • sawfish
  • fvwm >= 2.5
  • waimea
  • pekwm
  • enlightenment >= 0.16.6
  • xfce >= 4
  • fluxbox >= 0.9.6
  • matchbox
  • window maker >= 0.91
  • compiz
  • awesome
  • wmfs
压抑⊿情绪 2024-07-24 00:35:26

您可能会找到一个包含该信息的“原子”,但我认为不能 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文