3 x11 window-managers
如何从程序中找到正在运行的X窗口窗口管理器的名称?
如果我在一个窗口管理器已经运行时启动另一个窗口管理器,则会发生错误,因此必须有一种方法让另一个窗口管理器检测第一个窗口管理器.
它是如何工作的?
eph*_*ent 8
通过EWMH规范,兼容的窗口管理器将_NET_SUPPORTING_WM_CHECK根窗口上的属性设置为窗口ID.
_NET_SUPPORTING_WM_CHECK
如果该_NET_SUPPORTING_WM_CHECK属性存在并包含现有窗口的ID,则正在运行符合ICCCM2.0的窗口管理器.如果属性存在但不包含现有窗口的ID,则在没有正确清理的情况下退出符合ICCCM2.0的窗口管理器.如果该属性不存在,则不会运行符合ICCCM2.0的窗口管理器.
那个窗口(不是根窗口,而是根窗口上的属性描述的窗口)应该有一个_NET_WM_NAME属性,这就是你要找的东西.
_NET_WM_NAME
Pau*_*lin 1
您可能会找到一个包含该信息的“原子”,但我认为不能 100% 保证所有窗口管理器都使用相同的原子。执行“xlsatoms”来列出服务器上的原子,或执行“xprop”(并单击)来查看特定窗口的属性(包括原子及其值)。
归档时间:
16 年,10 月 前
查看次数:
3286 次
最近记录:
13 年,7 月 前