切换Linux作为主力系统使用体验小记
自从切换到Linux作为主力系统之后已经过了一个多月了,这期间对Linux的印象也从一开始觉得的新鲜好用,到后来因为各种影响体验的BUG而感到难堪一用,再到现在通过折腾解决了一部分BUG之后,感觉其实也没那么坏。在此记下这其中的经历和心路历程,希望给各位在纠结要不要换到Linux的看官提供一点参考。
起因
作为一个前端菜鸟,平时工作时基本都是用公司发的Mac进行工作的。然而好巧不巧,几年前笔者入职的时候公司突然不让申请Macbook,于是笔者只能用Mac Mini,虽说功能一样,但是毕竟便携性不足。自己手头有一台Windows笔记本,但是环境配置上还是不如类Unix系统方便;搭配WSL2使用的话,又感觉16G内存压力过大。所以也一直没有作为主力机使用过。
直到前不久笔记本因为摄像头问题送去返厂维修,修好回到笔者手上后厂家给重装了系统。这时候突然想起以前就体验过的Linux系统,既然目前电脑上没有任何数据需要备份,何不趁此机会再体验一次,自此便开始了笔者的Linux之旅。
明确目标
其实大学时代,就曾在自己电脑上安装过Ubuntu系统,还进行了一系列的仿mac美化。那时候啥也不懂,主要就是图个新鲜和装逼。
然而现在笔者已经过了装逼的年纪,自然更需要实用主义一点,所以笔者明确了自己的需求:
- 只做日常开发和休闲使用,不考虑游戏场景
- 稳定,bug尽量少
- 少折腾或不折腾,快速搭好开发环境,然后可以开始干活
明确目标后,就开始着手选择发行版。
选择发行版
因为手头上的笔记本是一台幻13,经过一番搜索,笔者找到了ASUS Linux项目,其中的安装说明推荐了几个受支持的发行版:
- Fedora Workstation
- Arch Linux
- OpenSUSE
OpenSUSE此前听说得比较少,所以当时没有考虑;
Arch笔者之前在自己折腾的服务器上安装过,给笔者留下的印象是其安装过程过于繁琐,和第2点冲突,所以放弃;
笔者一开始选择了Fedora WorkStation,也确实安装了,但是其默认搭载的GNOME桌面环境默认连最小化按钮都没有,通过搜索发现,最小化按钮设置里不能开关,需要借用其他的工具(GNOME Tweaks Tools)才能启用。加上其操作逻辑似乎整体偏向于手势操作和触屏,感觉这样很多操作逻辑可能需要重新习惯,所以大概只体验了10分钟就放弃了。
于是笔者最终选择了同是Fedora但是更换了桌面环境的 Fedora KDE Plasma Desktop。
Fedora KDE Plasma Desktop
说实话,即使是刚装上的 Fedora KDE Plasma Desktop (以下简称Fedora KDE),也没有让笔者感觉到体验特别的好。首先是系统总是伴随着轻微的卡顿,平时都只偶尔出现,然而在打开Firefox浏览器的情况下,有时候整个系统都卡成PPT。但是此时查看系统监视器会发现各项占用并不高,然而卡顿却非常严重,有时候还伴随着局部花屏现象。
通过一番搜索,怀疑这个问题是垂直同步导致的,在显示设置中将垂直同步关掉 + 屏幕刷新率改成60,此问题似乎得到了缓解,于是便也就将就着用了。
(直到后来经过多次搜索之后,才意识到这大概率是AMD显卡驱动的问题)
随后就遇到了Linux桌面环境下第一个老大难的问题:中文输入法
输入法
此前笔者已经写了一篇博客来讨论这个问题,虽然现在使用上基本完善,但是对于当时初次尝试的笔者来说还是困难重重。
安装fcitx5一开始报依赖冲突这种小问题就暂且不说了。互联网上对于Wayland下输入法问题的资料都比较零散,其中也不乏已经失效或是过期的方法。结果光是让LinuxQQ可以输入中文就消耗了笔者一个晚上的时间,而且不同软件里的让输入法工作的方法可能还不一样,这个问题当时确实是让笔者感到崩溃的。
不过好在虽然过程繁琐,结果也不算尽善尽美(第二天接上外接屏幕打字发现候选词面板在另一块屏幕上),不过至少勉强能用了。
内存占用过大导致内核崩溃
随后的几天,经过一轮又一轮的折腾,大概配置好了系统和开发环境,可以投入使用了。虽然系统美化过程中主题的应用效果和宣传图有差距,笔者在Fedora KDE下安装的kvantum始终没法正常让背景半透明化。查阅了很久的资料无果后因为不影响使用也就放弃了。
于是笔者开始尝试正式在干活的时候使用Fedora KDE来替代Mac Mini。
然而,刚开了几个项目,内存压力一上去,整个系统就开始出现诡异的严重卡顿,甚至开始卡顿到打字都打不利索的状态。
当时笔者认为应该是内存压力太大导致的,准备尝试重启来解决问题,然而没想到的是,重启后提示了一个内核错误,等到再次重启之后就连图形界面也无法启动了。随后又连续碰上了无法切换核显/独显的问题以及不识别外置显示器的问题。这些问题的原因,笔者当时并没有深究。但至少可以肯定的是这种稳定性在生产环境下使用是难堪大任的。
自此,笔者终于决定放弃了Fedora KDE。
放弃了Fedora KDE之后,短暂的尝试了一下基于Arch的EndeavourOS,然而因为系统代理无法使用(其实是KDE的通病),只短暂的体验了一下就放弃了。
两个KDE的体验都算不上太好,笔者决定尝试一下之前被抛弃的GNOME。
Fedora Workstation
既然决定要使用GNOME,就要尝试改善一些操作逻辑的不习惯的部分。
首先是没有最小化按钮,这个在系统自带的GNOME优化工具
里就可以打开,打开之后体验就和别的系统差不多了。
然后是没有托盘的问题,不知道GNOME的团队是怎么想的,直接把托盘图标取消掉了,然而很多软件还需要依赖托盘图标来进行操作,但是却没有任何代替的操作。好在GNOME的插件(GNOME Shell Extensions)足够好用,通过安装AppIndicator and KStatusNotifierItem Support
插件,即可把托盘图标带回来。不过,可能是因为并非官方实现,在一些细节上还有BUG,例如在200%缩放下,有些超长菜单会超出屏幕;再比如QQ有时会弹不出菜单等等。
P.S. 甚至在 AppIndicator and KStatusNotifierItem Support 插件的评论区也充满了对GNOME的吐槽,笔者也非常反感这种替用户做决定的行为。
这两个问题解决之后,其实用起来就已经比较习惯了,笔者随后就将其当主力机使用了几天,在其中也发现了一些优点:
- 手势操作非常好用,而且动画也非常流畅
- UI上虽然比较少透明要素,但是统一性非常不错,也非常简约美观
- GNOME的插件商店里有很多好玩的和好看的插件,安装起来也非常的方便
但是,在使用过程中,也遇上了不少问题:
托盘图标
前文已经提到过的托盘图标的问题,在实际使用的过程中其实是很影响体验的一个点。笔者所使用的小猫工具的菜单由于过长,导致有好几个选项看不到了,只能盲操。其实理论上来说将系统缩放比例调小一点即可解决此问题,然而GNOME默认只支持整数倍缩放,即使通过一些方法开启非整数倍缩放,也有一些显示问题,所以最后还是只能用默认的200%缩放盲操菜单了。
中文输入法
这个在此前的输入法文章中已经提到过,GNOME的mutter合成器不愿意支持text-input-v1,这导致所有的基于Electron的App在Wayland模式启动时都不能输入中文,只能退回X11通过XWayland运行,然而在X11下会遇到双屏不同缩放比时的缩放问题。最后相比于缩放问题还是没有中文输入法更能接受一点,于是选择了没有中文输入法运行。
使用证书的IKEv2 VPN无法连接
笔者经常需要连接到自己家的内网环境去操作内网设备,所以在自己家里搭建了IKEv2的VPN。然而在全新安装的Fedora下,按照教程配置好的VPN居然没办法连接。
通过一番搜索,最终找到了这个问题,按照其中的方法将证书放在/etc/strongswan
目录里并添加上必要的权限,总算是能连上了。然而在Fedora从40升级到41之后,这个方法似乎也失去了作用,VPN再次变得无法连接上。
至此,笔者的耐心已经消耗得差不多了,最后一个终端展示的问题成为了压死骆驼的最后一根稻草。
默认终端的行高不正确
这其实是个历史悠久的老问题了,GNOME的默认终端在中日韩文环境下行距会变大,导致powerlevel10k、fastfetch等的显示效果不正确,看起来很别扭。
P.S. 有意思的是,很多使用GNOME的用户自己晒的桌面截图里的fastfetch的行高就是有问题的,整个logo都被拉长了
VTE 上游的意思是因为 Noto Mono CJK 里有几个特别高的字符,你使用了 fontconfig 的 prepend 最终的 fontset 会导致用 pango_context_get_metrics() 取到的 metrics 会特别大,它作为终端绘制的库必须把方块(bounding box)全涂满,就造成行间距大了。
Noto 的意思是跟它没什么关系,我们是有特别高的字符,但我们的垂直 metrics 计算的时候已经把它们排除了。还是你没取对。
然后就一直僵了这么多年[1]
这问题吧,说大也不大,换个终端或者字体都可以解决问题。但是这个问题扯皮扯了3年,至今没有解决,再加上前面输入法和托盘图标的问题,让人感觉GNOME团队似乎并不在乎用户体验。于是笔者对GNOME彻底失望了。
到这里,笔者对Linux桌面环境感到非常的失望。不过笔者还是决定最后再尝试一下ArchLinux,如果再不行就彻底放弃。
Arch Linux
其实Arch Linux的安装和配置过程除了繁琐,本身倒是没有什么很大的难度,一步步按照ArchWiki写的内容来就好了。
后期使用的过程中与其说是ArchLinux的问题变少了,倒不如说是随着之前那么多次的踩坑,有些问题的解决方案已经心知肚明,有些之前没有查到的问题,经过反复的搜索,终于找到了答案。
花屏+卡顿
此前在Fedora KDE里碰到的轻微卡顿+局部花屏的问题,其实是AMD显卡驱动的问题,按照issue中提到的方法,增加了内核参数,虽然电量消耗速度变快,起码问题得到了临时解决。后来不知道哪个内核版本之后,这个问题得到了修复,现在即使是使用Fedora KDE也不会再出现问题。
休眠后唤醒黑屏死机
After “wakeup” the screen is sometimes black, sometimes with clock, sometimes with (not moving) cursor, not reacting to any key, had to hard reboot (with holding power button for 5 secs).
No messsage in journalctl AFTER wakeup. (no error or suspicious message in journal during suspend)[2]
这个问题最终查明是网卡导致的,参考这个链接设置了休眠时自动禁用蓝牙后问题就没问题了。
解决了这两个问题之后,日常使用ArchLinux就没有再碰到什么大的问题了。得益于近年来Linux生态的发展以及AUR的存在,我日常较多使用的QQ、微信、VSCode等软件在ArchLinux下基本都能顺利运行。也许或多或少有些小毛病,但总体来说不是很影响使用。
总结
用Linux桌面整个就是一个不断折腾的过程。
从一开始的新奇,到后来不断的碰到问题,大量消耗精力解决了一些问题,仍然有一些解决不了的问题,最终达到一个能比较稳定使用的状态。
回望过去,你说Linux的体验好吗,那显然谈不上好,运气不好的话,说不定每天都能碰上新的小毛病。
可是你说Linux的体验很糟糕吗,似乎也不尽然。在达到最后稳定使用的状态之后,笔者感觉体验还蛮好的:
- KDE下的一些小工具例如Ark压缩文件管理工具、Spectacle截图工具等非常的好用
- KDE的可自定义程度更高,可以调整成自己喜欢的样子
- 更少的后台服务也让电脑运行更安静和清凉
- 开发环境相比Windows也更好配置一些
此外,也许是得益于微软在Windows里不断降低的运行效率(例如使用WebApp代替原生App),Linux在其对比下反而显得更加流畅顺滑。
正是这些优点加起来,让笔者最后选择在笔记本上将Linux作为了日常主力系统。所以如果你也:
- 厌倦了Windows,想要体验一下不同风格的其他操作系统
- 有一定折腾水平和查阅资料的能力,能独立自主的解决问题
- 电脑硬件不太旧也不太新
那就不妨去试试看吧,也许就打开了新世界的大门呢~
友情提醒:折腾有风险,入坑需谨慎