2

我正在尝试使我的窗口管理器符合 ICCCM 规范。我完全理解 _NET_SUPPORTING_WM_CHECK 原子的原因 - 这可以确保在窗口管理器不再运行时不会留下无效信息。

我不明白的是,为什么除了 _NET_WM_NAME 和 _NET_SUPPORTING_WM_CHECK 本身之外,支持窗口上没有像 _NET_NUMBER_OF_DESKTOPS 这样的其他原子。

窗口管理器应该设置和覆盖数据,但如果新窗口管理器不兼容,这可能会产生误导。

4

2 回答 2

2

那么你所说的原子不是ICCCM。它们属于较新的EWMH

所以基本上它是这样的。

首先我们有ICCCM。他们是

  • 老的
  • 成熟
  • 大多数窗口管理器(全部或部分)支持
  • 易于实施
  • Unix标准

然后我们有 EWMH

  • 较新(GNOME 和 KDE)
  • 没有多少窗口管理器支持它们
  • 更复杂(例如虚拟桌面)
  • 免费桌面标准。

Freedesktop 希望使 EWMH 尽可能广泛(除了 GNOME 和 KDE),这就是为什么大多数原子是应该而不是必须的。他们为小窗口管理器提供了一个声称合规的机会。

于 2009-04-10T18:14:54.120 回答
1

我认为这个想法是您必须检查是否支持某个属性,如果支持,则仅从根窗口使用它。

_NET_SUPPORTING_WM_CHECK 窗口是在许多其他属性已经存在之后添加的,如果我没记错的话。

于 2010-10-05T13:40:28.903 回答