窗口管理器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,建議開啓 xwayland

      1meson  setup --reconfigure -Dxwayland=enabled build
      
    • 把命令放到常用目錄

      上一步完成後,build 目錄會生成 labwc,複製到 /usr/bin 目錄

      1sudo cp build/labwc /usr/bin
      

    至此,labwc 窗口管理器安裝完成了。可以直接在終端裏面執行 labwc 命令啓動,啓動後就是一片黑(不要慌,這是正常操作),按 Win + Enter 鍵,彈出 alacritty。如下圖所示:

labwc

心急的讀者想問,就這光禿禿的界面,和無圖形界面的服務器差不多,還玩什麼?其實此時,已經可以使用了,只不過是個毛坯房。你用啓動器或者命令行直接啓動各種程序,都是可以正常運行的,只是沒有完整的桌面環境,條件比較苦。

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 簡單理解就是個狀態欄,顯示各種基礎信息。

    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 鍵鎖屏,首次使用的的時候,效果確實令人喫驚的,大概長這個樣子(鎖屏界面無法截圖,只能找個網圖,我配置的沒這個好看)。

    swaylock

3. 桌面整體預覽

這麼一頓操作後,結果如下所示:

雙屏截圖

labwc desktop previews

    1. 狀態欄 waybar
    1. 啓動器 wofi
    1. 菜單(點空白區彈出,可退出 labwc,不然你都不知道怎麼退出,對不對?)
    1. 證明 chrome 工作良好,有了能上網的瀏覽器,你應該毫無畏懼了
    1. 還沒有 wofi,請先用 Alt + F3 彈出的 bemenue,夠用不好看

通知截圖

labwc notice

寫在最後,用 labwc 工作是沒有問題的,我準備持續體驗一段時間,也許會遇到各種小瑕疵,但是都不關鍵。重要的是可以按照自己的喜好,來定製桌面環境的各種組件,避免受制於 Gnome/KDE 等重型環境,系統響應速度很快(大部分是 C 寫的),你知道這些部件是如何協作的,可以學到一些知識,不喜歡可以隨時替換,這就是自由自在感覺。

2023-08-04 日更新:經過我 2 個月的使用體驗,labwc 運行穩定流暢,滿足日常 99%的需求,可以說相見恨晚,已經告別 Gnome 環境了。推薦 Linux 用戶使用,不會配置的可以搜索本站相關教程。

最後修改於: Friday, February 23, 2024

相關文章:

翻譯: