
























前天得知 wayfire 能够直接在 X Window 下运行之后,我就尝试了一下。很好,能跑。虽然不能捕获键盘,从而与外边窗口管理器重复的快捷键无法使用,但至少它的鼠标光标位置是对的,能够用来测试。我在 QEMU 里跑过 KDE Wayland、sway 和 wayfire,无一例外鼠标位置不对。KDE 里是缩放倍数设为 2 之后,鼠标的实际坐标会翻倍。后两者基于 wlroots 的,鼠标的实际坐标位于显示的光标上方几十像素处。总之没法用。
在 X Window 里粗略地配置了一下 wayfire 之后,我就想实际在外边跑跑看。结果被惊艳到了,感觉就像年轻了24岁一样!
尝试几次之后,我终于把 wayfire 跑起来了。
首先是火狐图形性能翻倍!
我打开火狐,跑了一下 WebGL 水族馆(微软的 FishGL 没啦)。接近 60fps,是我在 X Window 下跑的两倍有余!再试试 YouTube 的 4K 视频,竟然几乎不掉帧!我的电脑的性能原来这么好的吗……在 X Window 下,火狐播放这 4K 视频,会占满 GPU,并且 CPU 也几乎用满,丢掉约十分之一的帧。而在 Wayland 下竟然只用了一半的 GPU,CPU 用量也不怎么高。而且操作起来很流畅,右键菜单一点就出来,鼠标划过菜单项,高亮也跟得很紧。
画面再也不撕裂啦!
一直以来,我切换窗口、播放视频、快速滚动窗口内容的时候,时不时能见到画面撕裂。一般是在中间附近,一道水平接着倾斜接着再水平的裂痕会一闪而过,其上和其下是两帧不同的内容。读过 xplain 以及 Wayland Book,我知道这是由于 X Window 服务端与客户端之间并不同步,显示画面时,缓冲区里有啥画啥,并不在乎客户端有没有画完,导致相邻的两帧拼接在了一起。而 Wayland 会使用双重缓冲,客户端在缓冲区里画好了,才告诉混成器这一帧画好了、可以显示出去了。而在画好之前就显示上一次提交的缓冲区内容,所以永远不会出现画一半的情况。
我的光标也不再闪烁啦!
我也不知道为啥,我在 X Window 下,特别是接外接显示器的屋里,鼠标光标会像遥远的星星一样闪啊闪的,有时候闪得甚至影响我操作。我用的 picom 混成器的选项我改来改去,不光没能解决这个问题,反而是搞得它时不时崩溃一下了。我也不知道这是怎么回事,按理说鼠标光标由硬件绘制的,不应该时有时无啊。而在 wayfire 里,光标一直很稳定,从来不闪烁。我是返回到 X Window 下才注意到这一点的。
特效!
尝试 wayfire 的一大原因是我看中了它的特效。当年我初入 Linux 的时候,就挺喜欢 compiz 的特效的,只是后来因为性能问题才转到 Awesome 的。wayfire 有好多我当年常用的特效,果冻、火焰、立方体、展览,还有那个翻页一样的切换效果叫啥来着。没有纸飞机倒是有点可惜。
其它的 Wayland 混成器,KDE 我已经尝试过了,虽然是 X Window 版本,但功能应该是一致的。同样 sway 的对应 X Window 版本 i3 我也尝试过了。结论是,我并不是很在意平铺,但是我很在意键盘操控性。wayfire 也有较为丰富的键盘操作设置,应该也可以通过插件来扩展。
虽然有上边这些优势,我还是回到 Awesome 来了,因为还有不少问题和需要配置的地方呢。此节记录一下我已经解决的问题。
no-hidpi-window-scale参数。它是为了解决 X Window HiDPI 下窗口过大的问题,但到了 Wayland 下使用它就会导致并不进行 HiDPI 缩放了。~/.config/gtk-3.0/settings.ini,可以使用 dconf-editor 去编辑 org.gnome.desktop.interface 下的选项。GNOME_DESKTOP_SESSION_ID=0环境变量加上就好了。这个环境变量莫名其妙地解决了不少问题呢。我暂时还是以 Awesome 为主,因为还有很多问题有待解决:
~/.xprofile没啦,~/.pam_enviroment我也不想用。在考虑使用 systemd 那个功能,或者我自己 wrapper 一下 wayfire。还有挺多东西要配置的。锁屏啦,壁纸啦,还有未发现的问题啦,等等。慢慢来吧。Wayland 真的挺顺滑的。
对了,有个有意思视频给大家看一下。
这是我还没运行通知守护进程时,火狐发出的通知窗口,不知道为什么被反复创建和销毁。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。