我的桌面环境变迁
有关Linux下桌面环境的选择
从使用过i3之后,我就再也没有使用过de。实际上,我再也无法抛弃使用wm了。这篇blog与其说是为了记录自己桌面环境的变迁,不如说是自己寻找wayland下的i3代替品的过程。
对于桌面环境的选择,我自己实际上只有以下这些需求:
- 使用wayland而非x11
- 尽可能是一个平铺的窗口管理器
然而,本来以为很轻松的事情却不如想象中那么顺利
最初的选择——sway & swayfx

我最初在hyprland和sway之间作抉择。无论社区对hyprland的评价有多高,我都没有在意,但reddit上一句对sway的评价反而深深地吸引了我。
sway just want to be i3
要知道,我选择桌面环境,实际上是寻找wayland下的i3代替品,sway就是我当初第一眼所选中的。社区还对sway的稳定性有着相当高度的评价,这让我愈发的喜欢sway了,我很快便实际使用了sway。嗯,虽然后来为了eye candy选择了swayfx,而且直到最后试都没试hyprland一下
然而,在实际使用sway之后,我反而遇到了一些问题。
- sway对nvidia显卡的支持实在一般
- sway似乎很难在配置文件中设置环境变量,这让我很难管理环境变量
其实对nvidia的支持姑且可以放在一边,这不是sway的错,实际体验中,我也并没有遇到特别恶性的问题。关键是第二点,这让我很难有一个好的xwayland体验。
为什么需要xwayland
尽管使用了wayland,很多应用依然需要x11,比如QQ。QQ尽管是一款号称支持wayland的软件,使用wayland下的QQ实在给人一种糟糕的体验。
在使用sway时,打开QQ会出现严重的撕裂和闪烁现象,可以说是完全不可用。当然,解决办法是有的:
1 | |
就是在启动参数中加上--disable-gpu。但这是个并不好的解决方案。添加上这个参数之后,QQ变得无法正常处理屏幕分享时的图像。这个问题说大倒也不大,但我实在不愿意闭着眼睛当没看见。
那么解决办法只剩下一个了,老老实实用xwayland吧。
xwayland的问题
xwayland嘛,尽管有点不受人待见,但他确实解决撕裂闪烁问题了。
当我认为一切都可以通过xwayland解决的时候,新的问题接踵而至。
sway自己提供的xwayland支持在使用中会出现窗口模糊的问题,为了解决这个问题,有一个方案是使用xwayland-satellite,但想要在sway中使用xwayland-satellite,有一点儿麻烦,我认为这和sway不能再配置文件中直接设置环境变量有一定关系——使用xwayland-satellite,有一个关键的DISPLAY变量要进行设置。
我参考了reddit上的一个帖子,做了许多尝试。
比如:
在配置文件里面写
1 | |
嗯,它没有生效。
还有,向配置文件里面写
1 | |
这的确起到作用了,通过设置两个不同的快捷键,启动rofi时加上相应的变量,它可以说达到了我的目的。然而,我实在不喜欢用两个不同的快捷键去启动rofi,这让我觉得繁琐,为了使用xwayland,我竟然不能做到使用一个操作去打开所有的应用,而需要一些额外的行为,为什么?
到了这里,我彻底放弃sway了,尽管它是最像i3的那个。
niri的使用体验
不得不说,中文社区里niri的讨论度相当高。因为许多人都在推荐niri,我最后选择了去试一试。
推荐niri的理由大概有以下几点:
- 占用比hyprland小(我自己没有对比过)
- 窗口逻辑优秀
- 社区活跃度高
客观的说,niri的表现相当不错,可以说,在使用sway时遇到的问题,换到niri之后就全部解决了。
我放弃niri的理由也仅仅是出于我个人的原因,至少niri在以下几点没有满足我:
- 滚动窗口,无限平铺不符合我的个人习惯(我仍然想拥有像i3那样的体验)
- 似乎没有像scratchpad那样的功能
- 我觉得使用垂直工作区非常奇怪
嗯,其实一句话就能概括,我对于niri的窗口逻辑不感兴趣,尽管大家都认为niri的窗口逻辑十分优秀。
不过,如果是第一次使用wm,没有自己的习惯的话,niri是一个非常好的选择。
最终的选择——mango
我也许很长一段时间不会想着去更换自己使用的wm了,起码在使用mango的两个月以来,mango没有给我造成任何问题。总而言之,我与mango相处得相当愉快。
真正的平铺桌面
mango可以做到真正的平铺桌面,仅仅需要更改一点点配置:
1 | |
我将所有的tag的layout都设置为了right_tile,这样就能实现在所有tag使用平铺窗口。
scratchpad
mango是由scratchpad功能的,这弥补了我对niri的一点点不满
1 | |
可以轻松实现i3-style的快捷键方案
通过修改快捷键,我让mango拥有了和使用i3一样的快捷键方案,找回了自己熟悉的感觉
实际上,除了以上这些以外,mango还有许多优点,比如:
- 丰富的自定义选项
- 支持多种窗口逻辑
- 可以在配置文件中设置环境变量
- 同样活跃的社区(实际上,mango的更新频率很高)
因为以上这些原因,mango成为了我现在的,也许也是最终的选择。
