用Wayland當作後端,執行X11桌面。
蛤!?
1. 簡介Wayback專案#
未來Linux世界,X11即將退場,Wayland取而代之。但是現有的大量X Window桌面用戶怎麼辦呢?
2025年,Alpine Linux開發者提出了一個實驗性的解決方法:Wayback。
我們可以這樣理解:Wayback是用Wayland技術開發而成的新一代X Server相容層。你表面上好像啟動的是Wayland桌面,但其實跑的是X11桌面。
根據Wayback專案發起人Ariadne Conill在XDC論壇2025年的簡報,他們認為與其再維護一個獨立的X Server去撐起整個Linux桌面,不如將底層交給Wayland負責,再於上面跑一個X Server就好了。這樣能減少日後Linux各發行版維護X11的負擔。
其實這已經是目前XWayland在做的事情了,XWayland即是跑在Wayland桌面上的nested X Server。RedHat等大型組織的資源基本只剩下維護XWayland,用於在Wayland桌面相容舊版X11程式。至於X.Org X Server本體不多做維護了,只修復安全性問題。
順帶一提,多虧RedHat這種對待X.Org的消極態度,才會導致XLibre這個憤怒fork出現。可惜的是XLibre被FreeDesktop趕跑了,因為違反Code of Conduct被禁止參與貢獻,從此與主流企業Linux發展方向絕緣。Wayback則是很快被FreeDesktop接納了。
XWayland目前的實現是,預設只能在Wayland桌面上執行單個X11程式的視窗,也就是XWayland Rootless Mode。Wayland桌面會在需要執行X11程式的時候自動幫你啟動XWayland視窗。可是XWayland不能執行完整桌面。執行桌面需要XWayland Rooful Mode,它允許在XWayland視窗內執行X11桌面環境。
既然是要執行桌面,總不能讓它以單個視窗執行吧?但XWayland又不能單獨存在,它需要依附一個Wayland合成器才能用。因此Wayback便是提供一個最小的Wayland合成器,讓XWayland Rootful Mode跑在上面,並以全螢幕執行。
以下架構圖來自XDC 2025的簡報
如此一來可以滿足那些想要繼續用X11桌面用戶的需求,又不用單獨維護X Server了。這就是用Wayland技術去相容舊有X11桌面的辦法。
只是…不知道Wayback為了相容X11,他們又得重新發明多少輪子。目前看來用了一些wlroots的技術。
2. 如何使用Wayback#
目前Wayback這個專案處於初步階段,未來可能會有許多變化,以上游原始碼為準。
那麼,具體來說Wayback要怎麼用呢?參考Wayback官網文件
我在Arch Linux測試,嘗試用Wayback啟動XFCE桌面。
從AUR安裝wayback-x11-git套件
yay -S wayback-x11-git- 編輯
~/.xinitrc,填入要啟動的X11桌面
exec dbus-launch --exit-with-session xfce4-session重開機,按Ctrl + Alt + F2,登入tty。
再以
wayback-session指令啟動,這類似過去startx的用法。
wayback-sessionWayback好像堅持要用DRM模式啟動,所以得要在真實GPU加速的實機環境下使用。虛擬機會無法啟動。
此外,尚不清楚要怎麼從Display Manager啟動Wayback,再啟動想要的X11桌面環境。可能得手動寫Desktop Entry並放到
/usr/share/xsessions/吧。目前只能在tty打指令啟動Wayback。


