首先讓我們先弄清楚一些術語。您設置的「Always on Top」屬性不是X11的一項功能,而是所謂的窗口管理器「提示」的一部分標準,作爲客戶端間通信手冊和擴展窗口管理器的一部分進行了說明-Hints。
X11不處理窗口在屏幕上的位置,這就是Window管理器的功能。在典型的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。
你實際需要的是某種Bypass,它將連接到Exceed並行並且保持Windows窗口屬性(策略)與X11端的ICCCM/EWMH同步。這樣的程序是完全可行的,但我不知道有任何程序可以做到這一點。
超級評論謝謝! – yatg