在拋棄 Xorg 之前,請三思。Wayland 會毀掉一切!
LCTT 譯註:之前翻譯發布的《Wayland 真的毀掉一切了嗎?》引來了很多討論,為了使討論更全面,我也將該文所反駁的原文也翻譯過來,供大家參考。
如果你希望現有的應用程序能夠「順利運行」,而不需要做調整,那麼你可能更願意避免使用 Wayland。
Wayland 並沒有解決我遇到的問題,但卻破壞了我幾乎需要的一切。甚至是最基本、最簡單的事情(如 xkill
) - 在這種情況下沒有明顯的替代品。通常,它會保持破壞的狀態,因為 Wayland 的人員似乎主要關心的是 Automotive、Gnome,也許還有 KDE - 並在此過程中忽視了其他人,比如那些只使用 X11 窗口管理器或 GNUstep 的人。
Wayland 的支持者們讓人們覺得 Wayland 是 Xorg 的「繼任者」,但事實上並非如此。它只是一個不兼容的替代品,並且甚至沒有(也不打算)具有對等的功能(存在 功能缺失)。不像 X11(X 窗口系統),Wayland 協議設計者們積極避開「窗口」的概念,而是編造出讓人無法理解的詞語,如 「xdg_toplevel」。
不要使用 Wayland 會話! 不要讓 Wayland 毀掉一切,然後讓其他人修復它造成的破壞。或者強制讓每個人更多地使用紅帽或 Gnome 組件(glib、Portals、Pipewire)!
Wayland 似乎是由那些對已有軟體毫不關心的人創造出來的。他們以為每個人都樂於重寫所有東西,或者只使用 Linux 上的 Gnome(而不是,NetBSD 上與 ROX Filer 搭配使用的 twm 之類)。
補充:當我寫下上述內容時,我並沒有真正意識到 Wayland 究竟是什麼,我只是注意到一些發行版(如 Fedora)開始推送它給我,並在我開始使用後發現了一些問題。現在我明白了實際上你不能「安裝 Wayland」,因為與 Xorg 不同,並沒有一個「Wayland 顯示伺服器」,每個桌面環境都有自己的「顯示伺服器」。也許 「Wayland 的開發者們」 關心的並不只是 Gnome,但任何在 Gnome 的 Wayland 實現中的修復並不能自動地惠及所有的 Wayland 軟體用戶,也許他們也不會推薦這種實現。
2023 年 12 月再次補充:如果有什麼東西想要替代桌面電腦(比如專業 Unix 工作站)的 X11,那麼它最好支持用於那種場景的所有需要的功能(以及關鍵概念,如窗口)。那些人們的冰箱上也有顯示器在這種討論,在此並不重要。我們需要提出 缺失的 Wayland 協議 以實現與 X11 的全面功能一致性。
Wayland 的設計本身就存在問題
- 一旦窗口管理器出現崩潰,所有正在運行的應用程序都將被迫停止。
你無法以 root 用戶的身份運行應用程序- 設計上的限制使你無法執行在 Xorg 中可以實現的眾多功能
- 沒有一個被所有人所使用,且與桌面環境無關的
/usr/bin/wayland
顯示伺服器應用程序(這與 Xorg 不同) - 它將大量的工作都推給了窗口管理器。結果就是,在不同的窗口管理器中,相同的基礎功能可能會有不同的實現方式,存在不同的表現和問題——也就是說,那些在桌面環境 A 中正常運行的可能在桌面環境 B 中並不適用(例如,你經常會聽到有人說某個功能 「在 Wayland 上能正常工作」,但是實際上它只能在 Gnome 和 KDE 上正常運行,而不能在所有的 Wayland 實現上運行)。這個問題在以下的鏈接中得到了很好的總結:https://gitlab.freedesktop.org/wayland/wayland/-/issues/233 。
Wayland 造成破壞的情況
下面列出了許多這種破壞情況,譯者不打算詳細列出細節(可在原文處查看)。這些人們補充的 Wayland 造成破壞的情況有:
- Wayland 影響了屏幕錄製應用的正常運行
- Wayland 影響了屏幕共享應用的正常運行
- Wayland 影響了自動化軟體的正常運行
- Wayland 影響了 Gnome-Global-AppMenu(Gnome 的全局菜單)的正常運行
- Wayland 破壞了與 KDE platformplugin 的全局菜單鏈接
- Wayland 影響了與非 KDE Qt platformplugins 的全局菜單正常運行
- Wayland 影響了那些沒有提供特殊 Wayland Qt 插件的 AppImage 的運行
- Wayland 影響了 Redshift 的正常運行
- Wayland 影響了全局快捷鍵的正常使用
- Xfce 在 Wayland 下可能無法正常工作?
- Wayland 在英偉達硬體上可能無法正常工作?
- Wayland 在英特爾硬體上表現異常
- Wayland 偏向 Linux,影響了 BSD 的正常運行
- Wayland 複雜化了伺服器端窗口裝飾的處理
- Wayland 影響了窗口自我提升 / 激活的功能
- Wayland 影響了 RescueTime 的正常工作
- Wayland 影響了窗口管理器的正常運行
- Wayland 需要 JWM、TWM、XDM、IceWM 等重新實現類似 Xorg 的功能
- Wayland 影響了 _NET_WM_STATE_SKIP_TASKBAR 協議的正常使用
- Wayland 影響了 NoMachine NX 的正常運行
- Wayland 影響了 xclip 的正常使用
- Wayland 影響了 SUDO_ASKPASS 的正常工作
- Wayland 影響了 X11 atoms 的正常使用
- Wayland 影響了遊戲的正常運行
- Wayland 影響了 xdotool 的正常使用
- Wayland 影響了 xkill 的正常工作
- Wayland 影響了屏保的正常顯示
- Wayland 影響了窗口位置設置的準確性
- Wayland 影響了色彩管理的正確性
- Wayland 影響了 DRM 租賃的正常流程
- Wayland 影響了家庭內流媒體的正常播放
- Wayland 影響了 NetWM 的正常工作
- Wayland 影響了窗口圖標的正常顯示
- Wayland 影響了拖放功能的正常使用
解決方法
對於用戶:可以避免使用 Wayland 會話,或者卸載那些只提供 Wayland 會話的桌面環境或 Linux 分發版。同時,也可以盡量避免使用只適用於 Wayland 的應用,比如 PreSonus Studio One(可能的解決策略:在 https://github.com/cage-kiosk/cage 中運行此類應用)。
對於應用開發者:可以採取措施強制在 X11/Xwayland 上運行應用程序,就像 2023 年 11 月的 LibrePCB 所做的一樣。
強制用戶習慣 Wayland 的實例
這種情況正是本文想要警告和避免的。
- Asahi Linux 對 ARM 架構的 Mac 強制使用 Wayland,詳情參見: https://social.treehouse.systems/@marcan/110354541574112092
- Fedora 對 KDE Plasma 強制使用 Wayland,詳情參見:https://fedoraproject.org/wiki/Changes/KDE_Plasma_6#Why_drop_the_X11_session_with_the_Plasma_6_upgrade?
- 紅帽對 RHEL 強制使用 Wayland,詳情參見:https://www.redhat.com/de/blog/rhel-10-plans-wayland-and-xorg-server
參考資料
- Dudemanguy's Musings:Wayland 無法挽救 Linux 桌面
- Chris Titus Tech:Wayland 對比 Xorg https://www.youtube.com/watch?v=U_MBJcD3SFI
- tildearrow:有人說 「反 Wayland 無稽之談」 嗎?
- pcsx2:CI/Linux:禁用 Wayland 並進行「春天大掃除」
(題圖:DA/fbfad36b-baba-4237-aceb-c86b99ef379b)
via: https://gist.github.com/probonopd/9feb7c20257af5dd915e3a9f2d1f2277
作者:Probonopd 譯者:ChatGPT 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive