Linux中國

在拋棄 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 的實例

這種情況正是本文想要警告和避免的。

參考資料

(題圖:DA/fbfad36b-baba-4237-aceb-c86b99ef379b)

via: https://gist.github.com/probonopd/9feb7c20257af5dd915e3a9f2d1f2277

作者:Probonopd 譯者:ChatGPT 校對:wxy


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國