日用Linux挑战 第2篇 Wayland
使用Linux
6个月,我成功戒掉了原神。
使用Wayland开启桌面环境
在上一篇文章我尝试在kde
桌面环境下使用wayland
显示协议,当时的尝试虽然失败了,却为我这次迁移到wayland
打下了良好的基础,例如我将输入法从迁移到fcitx5
。
最近恰好被平铺式的窗口管理器种草,又在B站上看见一个动画绚丽的wayland
合成器——Hyprland,当即脑袋一热,就把kde
干掉,装上了hyprland
。
安装hyprland
的过程非常舒适,hyprland
被打包为一个单独的二进制文件,使用pacman
安装之后直接在tty
下执行:
Hyprland
就可以打开一个干净到极致的桌面环境——没有图标,状态栏等等传统桌面应该有的一切,只有一张简单的壁纸。然后我就发现我完全不会使用这个桌面,虽然鼠标还是如预期一般出现了,但是没有任何用处,hyprland
的一切都需要使用键盘启动。在对着hyprland
8个大字发愣5秒钟之后,我便屁滚尿流的滚回了tty
。虽然文档中说明了在默认的配置文件中使用win+q
的组合键打开终端,但是默认的终端应用程序是kitty
,然而这个冷门的终端程序在我的电脑上自然是没有的(虽然我在使用过后觉得这个中断程序秒杀我之前用过的全部终端)。看到简陋但是熟悉的tty
仿佛见到了亲人,我一波sudo pacman -S kitty
,一边看着进度条飞涨一边感谢archlinux
。迅速按下ctrl+shift+F1
,回到忠诚的壁纸画面,不过这次,轻轻按下win+q
,一个终端窗口如宿命一般出现!
上面因为作者刚考完期末神智有点不正常,还请
根本不存在的读者海涵。
在Linux
下拥有了终端就好办了。首先装上App Launcher
——没有这玩意儿我似乎就只能从终端里启动应用程序,显然是十二分的不方便。在一番比较之后,我在官方文档中选择了fuzzel
,看上去挺好看的。
本来这里想截一张
fuzzel
的图,但是似乎他们的主页挂掉了(
安装了App Launcher
之后,至少可以打开浏览器,愉快的复制粘贴安装了。剩下的安装过程就按下不表,基本上按照官方文档的Useful Utilities
进行,在中间选择自己需要的软件的进行安装。然后便是根据配置文件的说明对于外观和使用快捷键进行调整,以及配置壁纸软件hyprpaper
和状态栏组件waybar
。具体的配置文件我都放在了自建的git
服务器上,可以在这里查看。
Wayland软件兼容性
跳槽到了新的wayland
显示协议,最关心的自然是各种软件是否能在wayland
下正常的工作。
首先是各种浏览器。在我安装的这段时间里(2023年5月),microsoft edge
浏览器是基本不能在wayland
模式下工作,一进入全屏模式就会自动崩溃退出,这对于日常电脑刷视频的我来说简直不能忍受。幸好,firefox
浏览器在wayland
模式下工作正常,不愧是和Linux
关系最好的浏览器。再通过一系列的测试,chromium
系列的浏览器在wayland
下的工作状态都不太好,如果需要在wayland
环境下使用chromium
系列的浏览器,建议还是运行在xwayland
模式下。
然后是各种开发工具。我日常使用的jetbrains
IDE和VSCode
都工作正常,虽然是工作在xwayland
模式下。
各种在学习过程中遇到的工具软件:基本上都工作运行良好。当然因为没有设置缩放的问题而导致字体都很小。因为如果在配置文件中设置缩放之后会导致字体发虚。下面的截图就是我将我的2K显示屏设置为150%缩放的效果,虽然在截图中的效果不明显。目前在常用软件中唯一让我十分不满意的软件是wps
,使用体验完全无法和offices
相提并论,目前我正在研究使用wine
运行offices
,如果成功了就再水一篇博客庆祝一下。
最新的进展是使用
wine
没法安装学校提供的office 2021
,同时我又不愿意使用古老的office
版本,但是我发现一个称作onlyoffice
的第三方软件蛮好用的,等我试用一段时间再说。但是
onlyoffice
的最新版本和wlroots
合成器似乎有点八字不合,我现在是回退到7.2.1
版本正常使用,详情见这个issue
最后就是各种游戏的兼容性了。原神完蛋了。虽然这和wayland
关系并不是很大,米哈游自己也罪大恶极,但是我换成wayland
之后的游戏流畅度下降明显,只能眨眼补帧,在硬顶了几周之后我绷不住退游了。目前还不知道是由于原神本身一坨大便的优化还是wayland
导致的性能下降。而我在steam
上的各种游戏工作也不是很正常,尤其是各种需要全屏的游戏,比如CS:GO
,可能是由于我使用外接屏幕的问题。但是GalGame
类的游戏就工作正常。
总的来说,这次切换到hyprland
的使用体验还是非常不错的,平铺式窗口管理器也是提高生产力的利器。
Hyprland
仍不完善
有得必有失,hyprland
乃至于wayland
目前作为一个桌面环境最大的问题就是相关生态仍不完善。这里的生态甚至都不是指对于wayland
支持之类的东西,而是像系统设置、锁屏界面、状态栏之类的东西。虽然这样说可能有点对于hyprland
的要求过高了,但是现在这种东拼西凑的构成一个桌面环境给人的体验不是很好,譬如使用waybar
作为状态栏,swaylock
作为锁屏界面,kwallet
作为密码存储器。其中不少软件还都处于一个十分简陋的阶段,例如swaylock
仅显示一张图片作为界面,甚至连个输入密码的界面都没有。
hyprland
对于弹出窗口的支持不是很好,尽管这就是平铺式窗口管理器的设计思想。但是在像idea
之类的编程工具中,弹出窗口是非常常用的功能,不能正常的显示弹出窗口或者显示的位置不对会导致严重的生产力下降。经过测试,当只使用一个显示屏是,可以正常的进行弹出窗口的显示,但是当链接多个显示器时,弹出窗口的位置就变得奇怪起来。
amdgpu
导致的相关问题
从我在这台电脑上安装Linux
之后,便一直会出现图形界面卡死的问题。具体表现为图形界面停止响应,但是通过ssh
等仍能正常远程链接,大小写锁定正常,使用Ctrl+Alt+F3
组合键切换到其他tty
的方式有一定的概率可以从卡死中恢复,但是也存在一定的可能性只能通过强制重启解决。
通过分析日志中的错误信息,大致锁定一下几个issue
可能和这个问题有关:
同时在raddit
和archlinux forum
上都存在大量的讨论,均是怀疑为内核的问题。总结一下,这个问题似乎和较新版本的内核和AMD的新rdna2
显卡有关,同时是否链接外接显示器也有着不同的故障表现。而且,随着linux kernel
不断的升级,报错信息似乎也在变化,虽然因为我的系统日志被自动覆盖,不能提供详尽的日志信息。
在某一篇讨论中(很抱歉我忘记了具体页面)有人指出这可能和内核对于CPU电压的调控有关,在切换到AMD新发布的CPU频率调节驱动amd p-state
之后,这个问题就不再出现了。查询wiki可以发现,这个驱动目前并没有默认驱动,而是需要通过添加内核参数的方式启动。我使用grub
作为启动程序,在配置文件/etc/default/grub
的GRUB_CMDLINE_LINUX_DEFAULT=
末尾添加新的启动参数amd_pstate=active
,重启之后查看当前驱动:
❯ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
amd-pstate-epp
目前我已经启动这个新的驱动程序一周时间了,上述问题没有在出现过。
2021 - 2024 © Ricardo Ren, 由 .NET 8.0.10 驱动。