窗口管理器labwc使用記
注意到 labwc 有一段時間了,大部分窗口管理器都是和桌面環境融爲一體的,例如 Gnome 的 Mutter,獨立的窗口管理器就顯得很特殊,尤其是 wayland 下的,labwc 就是這樣的存在。
如果你厭倦了 Gnome 和 KDE 等大一統桌面環境,也不想折騰 sway 等平鋪窗口(tiling Wayland compositor),那麼可以試試 labwc 堆疊窗口(window-stacking Wayland compositor)。
在我寫這篇文章的時候,中文世界還沒有人分享 labwc 相關信息,至少 Google、Bing、Baidu 無相關收錄,微信搜索提示的是"來安霸王餐"。這不能不說是一種遺憾,也是我堅持維護這個小站的動力之一。
本文將在 Ubuntu 23.10 環境下,編譯安裝 labwc,使其達到一種可以應付日常工作學習使用的狀態。我現在就是在 labwc 相關環境下寫這篇文章的。話不多說,火速發車:
1. 編譯安裝 labwc
- 下載源碼
1git clone https://github.com/labwc/labwc
-
編譯安裝
-
安裝依賴
1sudo apt install libseat-dev
如果你需要 xwayland,我個人認爲需要,因爲中國大陸的 Linux 環境不算好,到現在釘釘、微信等部分軟件還得 xwayland 支持,不能在純 wayland 下輕鬆運行。
開啓 xwayland,請安裝依賴:
1sudo apt install libxcb-composite0-de 2sudo apt isntall libxcb-icccm4-dev 3sudo apt install libxcb-res0-dev
有讀者可能會問,你怎麼知道需要這些依賴的,因爲工作需要使用釘釘,我喫過過虧。依賴的包名都是根據報錯提示,apt search xxx 結合經驗得出的。
-
編譯
首次編譯
1meson setup build/ 2meson compile -C build/
非首次編譯, 注意參數
-Dxwayland=enabled
,建議開啓 xwayland1meson setup --reconfigure -Dxwayland=enabled build
-
把命令放到常用目錄
上一步完成後,build 目錄會生成 labwc,複製到 /usr/bin 目錄
1sudo cp build/labwc /usr/bin
至此,labwc 窗口管理器安裝完成了。可以直接在終端裏面執行 labwc 命令啓動,啓動後就是一片黑(不要慌,這是正常操作),按
Win + Enter
鍵,彈出 alacritty。如下圖所示: -
心急的讀者想問,就這光禿禿的界面,和無圖形界面的服務器差不多,還玩什麼?其實此時,已經可以使用了,只不過是個毛坯房。你用啓動器或者命令行直接啓動各種程序,都是可以正常運行的,只是沒有完整的桌面環境,條件比較苦。
2. 添加必要桌面元素
在進一步操作前,最好能確保:1.你隨時能切換回完整的 Gnome 環境; 2.系統能自動聯網。這樣出意外的時候,還有退路可走。
-
設置 wayland-sessions
創建 labwc.desktop 文件,路徑和內容如下所示,不要告訴我你不會創建文件。
1➜ ~ cat /usr/share/wayland-sessions/labwc.desktop 2[Desktop Entry] 3Name=Labwc 4Comment=Labwc 5Exec=labwc 6Type=Application 7➜ ~
目的是爲了讓 gdm3 能夠選中 labwc,好讓你進入 labwc 環境,總不能每次都命令行啓動對吧。gdm3 是所謂的 display manager,或者叫 login manager,有 tui 的也有 gui 的,就是操作系統啓動完成後,給你輸入用戶和密碼、選擇 sessions 的東西。這一步就是讓 sessions 多一個選項。
-
labwc 基本配置
先創建和下載 4 個核心配置文件
1mkdir -p ~/.config/labwc 2wget https://raw.githubusercontent.com/labwc/labwc/master/docs/environment -O ~/.config/labwc/environment 3wget https://raw.githubusercontent.com/labwc/labwc/master/docs/autostart -O ~/.config/labwc/autostart 4wget https://raw.githubusercontent.com/labwc/labwc/master/docs/menu.xml -O ~/.config/labwc/menu.xml 5wget https://raw.githubusercontent.com/labwc/labwc/master/docs/rc.xml -O ~/.config/labwc/rc.xml
可以直接使用我的: https://github.com/kmephistoh/dotfiles/tree/main/.config/labwc
-
autostart
1➜ labwc egrep -v "#|^$" autostart 2swaybg -i ~/Pictures/mount.jpeg >/dev/null 2>&1 & 3waybar >/dev/null 2>&1 & 4fcitx5 >/dev/null 2>&1 & 5➜ labwc pwd 6/home/mephisto/.config/labwc
分別爲設置壁紙、啓動 waybar 狀態欄、啓動 fcitx5 輸入法(輸入法英語系的人不用,中文讀者必須有),壁紙圖片路徑請自行修改。
-
environment
1➜ labwc egrep -v "#|^$" environment 2XDG_CURRENT_DESKTOP=wlroots 3MOZ_ENABLE_WAYLAND=1 4XDG_CURRENT_DESKTOP=labwc 5XCURSOR_THEME=breeze_cursors 6GTK_IM_MODULE=fcitx 7QT_IM_MODULE=fcitx 8XMODIFIERS=@im=fcitx 9INPUT_METHOD=fcitx 10SDL_IM_MODULE=fcitx 11➜ labwc pwd 12/home/mephisto/.config/labwc
其中,
MOZ_ENABLE_WAYLAND=1
讓 firefox 運行在 wayland 下,XDG_CURRENT_DESKTOP=labwc
爲 flameshot 截屏軟件所需,我自己摸索出來的,加雞腿啊!fcitx 相關就是讓 fcitx 正常工作的。如果更喜歡 chrome,不習慣 firefox,還需要做些特殊設置(如果沒有開啓 xwayland 支持的話)。
1➜ labwc grep -i exec /usr/share/applications/google-chrome.desktop 2Exec=/usr/bin/google-chrome-stable -enable-features=UseOzonePlatform --ozone-platform=wayland --gtk-version=4 %U 3Exec=/usr/bin/google-chrome-stable -enable-features=UseOzonePlatform --ozone-platform=wayland --gtk-version=4 4Exec=/usr/bin/google-chrome-stable --incognito -enable-features=UseOzonePlatform --ozone-platform=wayland --gtk-version=4
-enable-features=UseOzonePlatform --ozone-platform=wayland
爲開啓 wayland 支持--gtk-version=4
開啓 fcitx5 輸入法支持,候選字界面會跑飛,這就是 Linux 用戶的日常^_^ -
rc.xml
這個部分,沒怎麼改動,只是添加了快捷鍵,wofi 爲啓動器(lancher)、flameshot 爲截屏工具、swaylock 爲鎖屏工具,wofi 後續有空會單獨寫個文章。
1<keybind key="F8"> 2<action name="Execute" command="wofi" /> 3</keybind> 4<keybind key="F9"> 5<action name="Execute" command="flameshot gui" /> 6</keybind> 7<keybind key="W-l"> 8<action name="Execute" command="swaylock" /> 9</keybind>
-
menu.xml
建議讀一讀文檔,再按需修改,也可直接下載我的,目前不重要。
-
-
設置 waybar
waybar 簡單理解就是個狀態欄,顯示各種基礎信息。
建議直接安裝
1sudo apt install waybar
waybar 是可以定製的,建議看官方文檔
有很多示例: https://github.com/Alexays/Waybar/wiki/Examples
找個自己喜歡的即可,筆者的配置在: https://github.com/kmephistoh/dotfiles
-
設置 swaylock
swaylock 就是鎖屏,離開電腦的時候鎖屏是個好習慣,防火防盜防僞君子。
先安裝
1sudo apt install swaylock
也是可以定製的,不想折騰的可以直接下載我的
https://github.com/kmephistoh/dotfiles/tree/main/.config/swaylock
根據 rc.xml 中的設置,
Win + l
鍵鎖屏,首次使用的的時候,效果確實令人喫驚的,大概長這個樣子(鎖屏界面無法截圖,只能找個網圖,我配置的沒這個好看)。
3. 桌面整體預覽
這麼一頓操作後,結果如下所示:
雙屏截圖
-
- 狀態欄 waybar
-
- 啓動器 wofi
-
- 菜單(點空白區彈出,可退出 labwc,不然你都不知道怎麼退出,對不對?)
-
- 證明 chrome 工作良好,有了能上網的瀏覽器,你應該毫無畏懼了
-
- 還沒有 wofi,請先用
Alt + F3
彈出的 bemenue,夠用不好看
- 還沒有 wofi,請先用
通知截圖
寫在最後,用 labwc 工作是沒有問題的,我準備持續體驗一段時間,也許會遇到各種小瑕疵,但是都不關鍵。重要的是可以按照自己的喜好,來定製桌面環境的各種組件,避免受制於 Gnome/KDE 等重型環境,系統響應速度很快(大部分是 C 寫的),你知道這些部件是如何協作的,可以學到一些知識,不喜歡可以隨時替換,這就是自由自在感覺。
2023-08-04 日更新:經過我 2 個月的使用體驗,labwc 運行穩定流暢,滿足日常 99%的需求,可以說相見恨晚,已經告別 Gnome 環境了。推薦 Linux 用戶使用,不會配置的可以搜索本站相關教程。
版權申明:
- 未標註來源的內容皆為原創,未經授權請勿轉載(因轉載後排版往往錯亂、內容不可控、無法持續更新等);
- 非營利為目的,演繹本博客任何內容,請以'原文出處'或者'參考鏈接'等方式給出本站相關網頁地址(方便讀者)。