窗口管理器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 用户使用,不会配置的可以搜索本站相关教程。
版权申明:
- 未标注来源的内容全部为原创,未经授权请勿转载(因转载后排版往往错乱、内容不可控、无法持续更新等);
- 非营利为目的,演绎本博客任何内容,请以'原文出处'或者'参考链接'等方式给出本站相关网页地址(方便读者)。