首先让我们了解一些术语。您设置的“始终位于顶部”属性不是 X11 的功能,而是所谓的窗口管理器“提示”标准集的一部分,指定为客户端间通信手册和扩展窗口管理器的一部分- 提示。
X11 不处理窗口在屏幕上的位置,这就是窗口管理器所做的。在典型的 X11 系统上,您有一个 ICCCM/EWMH 兼容的窗口管理器,它控制着所有的窗口,一切都很好。这也适用于各种转发,因为对于 X11 服务器,客户端连接的方式无关紧要,客户端之间的所有通信都通过 X11 服务器进行。
现在,在您的情况下,您使用的是 Exceed,它是运行在 Microsoft Windows 桌面之上的 X11 服务器。Windows 自己完成所有的窗口管理,像“Always-On-Top”这样的东西是 Windows 窗口管理代码的策略部分。然而,由于 X11 没有定义策略,只有方法任何类型的 ICCCM/EWMH 信息永远不会传递给 Windows 窗口管理。所有 Windows 看到的都是 Exceed 为各个客户端创建的无功能的顶级窗口。
现在你可以在 Exceed 中启动一个 X11 WM,但是这个 WM 只存在于 X11 中,并且由于 X11 没有定义像“Always-On-Top”这样的策略,因此无法告诉 Windows,一个窗口实际上应该保持在顶部。您也可以在“全屏”模式下启动 Exceed,它会打开一个完整的窗口,其中所有 X11 客户端都在他们自己的小桌面上运行。在其中运行的 WM 只会管理其中的 X11 客户端,但同样不能将其信息传递给 Windows。
您实际需要的是某种旁路,它将并行连接到 Exceed,并使 Windows 窗口属性(策略)与 X11 端的 ICCCM/EWMH 保持同步。这样的程序是完全可行的,但我不知道有任何程序可以这样做。