快轉到主要內容

XWayland Rootful Mode:Wayland跑巢狀X11工作階段視窗

分類   Linux系統 Linux使用技巧
標籤   X Window Wayland
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

Running nested X11 sessions under Wayland.

「XWayland」為Wayland相容舊式X11程式的手段。

Linux以前的程式都是為X11顯示協定撰寫,近十年以來Linux桌面環境主流逐漸切換到Wayland,但總有程式沒有尬廣跟上,那麼該怎麼辦呢?

如果你在使用Wayland協定的Linux桌面開啟專為X11設計的舊版程式,Wayland會自動生一個X伺服器出來,讓X11的程式可以跑在Wayland環境,這個X伺服器即XWayland。這是Wayland能相容許多舊X11程式的原理,開發者不用急著將程式改寫成原生Wayland程式也能繼續使用。

圖例:Firefox (X11) 執行於KDE Wayland

不過,XWaylnad預設行為通常都是一個程式一個視窗,沒有母視窗,這稱之為「XWayland Rootless Mode」,背後執行的指令為Xwayland -rootless

如果你想要在Wayland環境下開一個母視窗,在那個視窗裡面專門跑多個X11的程式,那麼你就會需要用到「Xwayland Rootful Mode」。此即為巢狀X11工作階段。

1. Xwayland Rootful有何好處?
#

Xwayland Rootful Mode可以把X11程式關在一個視窗內,宛如一個完整的工作階段。這樣,你就能在該視窗啟動X視窗管理器(例如i3wm),並讓程式以為自己跑在真正的X伺服器環境下。

這樣有望解決部分程式在Wayland下運作詭異的現象,比如選單消失、螢幕閃爍、無法共享螢幕的問題。

2. Xwayland Rootful指令使用方式
#

請使用Xwayland 23以上版本

如果使用Wayland協定的桌面環境,此套件應該已經安裝。

sudo apt install xwayland

下述指令,開一個1280x720解析度的新視窗(之後可以用xrandr指令調整),DISPLAY設定為10

Xwayland -geometry 1280x720 -decorate -retro -host-grab :10

這樣會跳出新視窗,按CTLR+SHIFT關閉滑鼠擷取模式

這樣只要設定環境變數,就可以在那個DISPLAY開啟X11程式了。例如我要在這個視窗啟動Firefox,這裡加上MOZ_ENABLE_WAYLAND=是要強制關閉Firefox的Wayland模式。

DISPLAY=:10 MOZ_ENABLE_WAYLAND='' firefox

XWayland下的Firefox畫面,跑的是X11模式

我們甚至可以在Xwayland的視窗跑一個X視窗管理員或者桌面環境,例如i3wm:

DISPLAY=:10 i3

如此一來XWayland視窗內的使用體驗就會更加完整,視窗外觀會帶上裝飾。

3. 類似XWayland Rootful的軟體
#

其他合成器也有巢狀X11的功用

  • xwayland-run:輔助指令稿,簡化Xwayland Rootful指令的複雜度
  • Steam Gamescope:玩遊戲專用
  • Xephyr
  • Xnest

參考資料
#

相關文章

Weston合成器用法:X11跑巢狀Wayland工作階段
分類   Linux系統 Linux使用技巧
標籤   Wayland X Window
Hyprland設定教學,漂亮又不佔資源的Linux Wayland視窗管理器
分類   Linux系統 Linux使用技巧
標籤   Wayland Hyprland
給Linux螢幕進行色彩管理,套用ICC設定檔,並調整螢幕色溫
分類   Linux系統 Linux使用技巧
標籤   Linux Wayland Color Management

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。