[Topic DIscussion] 走向“未来”(Wayland)的Openbox
Tofloor
poster avatar
来自Ubuntu的某位用户
deepin
2023-07-22 22:19
Author

Openbox是一个轻量的X11窗口管理器,起初是黑乎乎的,经过一些配置后,就可以变得实用且华丽
无标题b.png

在Github上搜索“labwc”,就会发现一个叫labwc的Wayland的合成器,他说

“labwc是启发于Openbox开发的基于wlroots的Wayland合成器,并且配置文件和Openbox的配置文件全面兼容”,

意思就是说如果你之前配置过Openbox,在~/.config/openbox里编辑过配置文件,那么可以把~/.config/openbox里的所有文件复制到~/.config/labwc,只不过设置壁纸的方式从feh或者nitrogen变成了swaybg,安装labwc的方式也很简单

Wayland是Linux桌面环境的未来,很多X11下的窗口管理器悄悄地走向了“未来”,例如Wayfire(后起之秀的Wayland合成器,启发于Compiz),Enlightenment(目前拥有实验性的Wayland支持),DDE等等

下面是某人在Deepin编译安装并配置labwc的过程,原文有点长,我整理了下:

首先输入

sudo apt install git

安装git,然后下载labwc源码

git clone https://github.com/labwc/labwc

接下来需要安装依赖:

sudo apt install libseat-dev

因为他工作需要使用钉钉,他吃过亏。依赖的包名都是根据报错提示,apt search xxx 结合经验得出的,所以接下来安装xwayland依赖:

sudo apt install libxcb-composite0-de
sudo apt isntall libxcb-icccm4-dev
sudo apt install libxcb-res0-dev

然后就开始编译了

首次编译:
meson setup build/
meson compile -C build/

非首次编译, 注意参数 -Dxwayland=enabled,建议开启xwayland

meson setup --reconfigure -Dxwayland=enabled build

把命令放到常用目录

上一步完成后,build目录会生成 labwc,复制到 /usr/bin 目录
sudo cp build/labwc /usr/bin

接下来,按Win + Enter 键,弹出 alacritty。此时labwc外观和Openbox一样是黑漆漆的一片。

labwc

如果需要修改快捷键,那么方法和Openbox类似,修改~/.config/labwc/*rc.xml即可,具体内容可以百度搜索“Openbox修改快捷键”

接下来添加桌面元素

你要保证:1.你随时能切换回你之前的桌面环境; 2.系统能自动联网。这样出意外的时候,还有退路可走。

设置 wayland-sessions

创建 labwc.desktop 文件,路径和内容如下所示,

➜ ~ cat /usr/share/wayland-sessions/labwc.desktop
[Desktop Entry]
Name=Labwc
Comment=Labwc
Exec=labwc
Type=Application
➜ ~

这样能确保你能通过Display Manager进入labwc,不用每次敲命令行进入

labwc 基本配置

先创建和下载 4 个核心配置文件

mkdir -p ~/.config/labwc
wget https://raw.githubusercontent.com/labwc/labwc/master/docs/environment -O ~/.config/labwc/environment
wget https://raw.githubusercontent.com/labwc/labwc/master/docs/autostart -O ~/.config/labwc/autostart
wget https://raw.githubusercontent.com/labwc/labwc/master/docs/menu.xml -O ~/.config/labwc/menu.xml
wget https://raw.githubusercontent.com/labwc/labwc/master/docs/rc.xml -O ~/.config/labwc/rc.xml

这些配置文件结构和Openbox的配置结构一模一样

可以直接使用他的配置文件: https://github.com/kmephistoh/my_config/tree/main/labwc

这是他的配置文件内容以及他对配置文件的解释:分别是autostart、environment、rc.xml、menu.xml

autostart

➜ labwc egrep -v "#|^$" autostart
swaybg -i ~/Pictures/mount.jpeg >/dev/null 2>&1 &
waybar >/dev/null 2>&1 &
fcitx5 >/dev/null 2>&1 &
➜ labwc pwd
/home/***/.config/labwc

分别为设置壁纸(swaybg)、启动 waybar 状态栏(可以用 yambar, lavalauncher, sfwbar代替)、启动 fcitx5 输入法(输入法英语系的人不用,中文读者必须有),壁纸图片路径请自行修改,截屏也能用grim,录屏能用wf-recorder,可以用这三款工具改变屏幕分辨率,设置显示器输出: wlopm, kanshi, wlr-randr

environment

➜ labwc egrep -v "#|^$" environment
XDG_CURRENT_DESKTOP=wlroots
MOZ_ENABLE_WAYLAND=1
XDG_CURRENT_DESKTOP=labwc
XCURSOR_THEME=breeze_cursors
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
INPUT_METHOD=fcitx
SDL_IM_MODULE=fcitx
➜ labwc pwd
/home/mephisto/.config/labwc

其中,MOZ_ENABLE_WAYLAND=1 让 firefox 运行在 wayland 下

XDG_CURRENT_DESKTOP=labwc 为 flameshot 截屏软件所需

fcitx 相关就是让 fcitx 正常工作的。

这些是他自己摸索出来的

如果更喜欢 chrome,或者基于Chromium的浏览器,不习惯 firefox,还需要做些特殊设置(如果没有开启 xwayland 支持的话)。

➜ labwc grep -i exec /usr/share/applications/google-chrome.desktop
Exec=/usr/bin/google-chrome-stable -enable-features=UseOzonePlatform --ozone-platform=wayland --gtk-version=4 %U
Exec=/usr/bin/google-chrome-stable -enable-features=UseOzonePlatform --ozone-platform=wayland --gtk-version=4
Exec=/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 输入法支持,候选字界面会跑飞

rc.xml

这个部分,没怎么改动,只是添加了快捷键,wofi 为启动器(lancher)、flameshot 为截屏工具、swaylock 为锁屏工具,wofi 后续有空会单独写个文章。

#我在rc.xml里加入了下面这一段内容后,就可以实现简单的窗口平铺:

    
      
    
    
      
    
    
      
      
        0
        0
        50%
        100%
      
    
    
      
      
        -0
        0
        50%
        100%
      
    

waybar 是可以定制的,建议看官方文档

有很多示例: https://github.com/Alexays/Waybar/wiki/Examples

找个自己喜欢的即可,这是他的配置,在: https://github.com/kmephistoh/my_config

设置 swaylock(作用等同于i3lock)

swaylock 就是锁屏,离开电脑的时候锁屏是个好习惯,防火防盗防伪君子。

先安装

sudo apt install swaylock

也可以直接下载他的配置文件:https://github.com/kmephistoh/my_config/tree/main/swaylock

根据 rc.xml 中的设置,Win + l 键锁屏,首次使用的的时候,效果确实令人吃惊的,大概长这个样子(锁屏界面无法截图,只能找个网图,他配置的没这个好看)。

swaylock

最后,他配置出了这样的labwc桌面环境,Wayland合成器,他电脑在主屏右侧外接了一块屏幕

labwc desktop previews

状态栏 waybar

启动器 wofi

菜单(点空白区弹出,可退出 labwc,不然你都不知道怎么退出,对不对?)

证明 chrome 工作良好,有了能上网的浏览器,你应该毫无畏惧了

还没有 wofi,请先用 Alt + F3 弹出的 bemenue,够用不好看

通知效果:

他说:“用 labwc 工作是没有问题的,我准备持续体验一段时间,也许会遇到各种小瑕疵,但是都不关键。重要的是可以按照自己的喜好,来定制桌面环境的各种组件,避免受制于 Gnome/KDE 等重型环境,系统响应速度很快(大部分是 C 写的),你知道这些部件是如何协作的,可以学到一些知识,不喜欢可以随时替换,这就是自由自在感觉。”

Reply Favorite View the author
All Replies
阿尼樱奈奈
Moderator
2023-07-22 22:24
#1

like

Reply View the author
redmibook
deepin
2023-07-23 00:02
#2

没有解决任何实际问题
没有看到「自由」
穷折腾

Reply View the author
hanzn-zzx
deepin
2023-07-23 01:12
#3

like感谢分享!

Reply View the author
👀偷偷观察
deepin
2023-07-23 03:23
#4

真不错啊,很好看kissing_heart

Reply View the author
秦武扬
deepin
2023-07-23 18:36
#5

这个让我想起了,当年折腾fvwm的往事。。。

Reply View the author
来自Ubuntu的某位用户
deepin
2023-07-25 03:44
#6
秦武扬

这个让我想起了,当年折腾fvwm的往事。。。

我尝试过配置fvwm,但是连哪个是配置文件都不知道

Reply View the author