← Home

2202 年了,Wayland 准备好了吗?

26 March, 2022

太长不看版:

对于 KDE Plasma & Hi-DPI 用户,没有。

Why Wayland?

前天装修了一下工位,嫖了一台闲置的 1920×1080, 21.5' 显示器,我现在笔记本屏幕是 2880×1800, 14' 的屏幕,而且希望能够组双屏幕协同抄代码真的方便啊XD

如果分别取到最佳的缩放率,显示器是 100% 缩放,而笔记本屏幕则是 200% 缩放。问题在于,基于 X11 的桌面环境难以实现逐显示器配置缩放率(听 c10s 说这是因为 X.org 实现里面绘制部分就是单个巨大 buffer,不知真假 >_<),只能配置全局缩放率,要么选 100%,笔记本屏幕字变得小到不能看;要么选 200%,显示器被挤爆。

而 Wayland 在设计时就考虑到了多显示器适配,允许为每个显示器配置其自己的分辨率。再加上它是更现代、面向未来的显示协议,切换到 Wayland 也是历史的进程嘛。

How to Wayland?

对于 Manjaro + KDE 用户,安装 Wayland 桌面环境比较简单:

sudo pacman -Sy --needed plasma-wayland-session xorg-xwayland libxcb egl-wayland

退出当前 session 之后就可以找到 Wayland session 然后登录了。

Why NOT Wayland?

在 Wayland session 中,我主要遇到了两个问题,而且任何一个都会让系统变得不可忍受

因为打算集中精力先解决第一个问题,第二个问题我靠插鼠标暂时绕过了。随后发现 aur 和 archlinuxcn 源里都提供了一个叫做 xorg-xwayland-hidpi-git 的包,看名字,我们要找的似乎就是它。

然后看一眼 AUR 留言区——

@modnoob This adds an Xorg extension that needs to be supported by the compositor. The only implementation is in wlroots-hidpi-git, so only wlroot-based compositors can use it. AFAIK the only compositor using this patches on wlroots is sway-hidpi-git. No chance that Plasma (it's KDE, right?) can use these patches.

啊,寄了。

所以触控板问题我都没打算解决,直接连滚带爬地回到了 X.org 快乐老家。

So...... When Wayland, exactly?

实际上,KDE 早在今年一月发布的 roadmap 中就有提过多显示器支持和 Wayland 完全替代 X11 的可能性……好吧,也就是个可能性。

实际上在这里这个毛病已经被挂了好久了,但是被标记为了“因为等待上游所以被阻塞了”,所以在 xorg-xwayland-hidpi-git 被合并入 xorg-xwayland 主线之前,我们大概是看不到它开工了。基于此,我对今年用上它表示很大的怀疑……

那工位问题怎么办?

目前的凑合解决方案是,调全局 100% 缩放,显示器上放 CLion、浏览器(正常字体大小),笔记本屏幕上放 VS Code 和终端(调大字体)。 如果老板看到这个给我安排个 Hi-DPI 显示器呗。

意外的解决方案

后来发现 X 可以提供显示器级别的「缩放」的,使用 xrandr 命令。

首先将全局缩放率调整到 200% 以保证笔记本显示正常且细腻,随后 xrandr --output <interface> --scale <scale> 调整特定输出的缩放。例如我会将它调整到 1.75x1.75,这样 X 会认为这台显示器的分辨率是 1.75 倍的 1920×1080——即 3360×1890,然后将输出结果降采样到 1920×1080 显示。

这样的坏处是降采样得到的结果比较糊,但确实是我目前已知的在 X 下让两台显示器都以正常 DPI 工作的唯一办法。还得是 4K

JS
Arrow Up