按照前几年的经验,在升级22.04 LTS之前我会先试用一下,看看体验如何再做决定。一般来讲一个LTS版本和它的前一个版本之间不会有太大的变更,所以21.10在某种程度上可以预测22.04 LTS的表现。今天我看omgubuntu,发现21.10的Beta版本已经发布了,就赶紧装了个体验一下。总体感受是和20.04 LTS有着相当大的区别,优点和缺点都是很明显的。
简要配置过程
安装选的最小安装,和20.04 LTS不一样的是启动界面中间有了大大的Ubuntu logo。开机之后简单装了gnome-tweaks dconf-editor
之类配置用的包,结果发现这个版本的gnome-tweaks
已经基本没用了。没有换源。
- 去掉桌面的“主文件夹”图标:桌面上右击,选
Desktop icons settings
,里面改 - 去除dock上的挂载盘和回收站图标:
gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts false
gsettings set org.gnome.shell.extensions.dash-to-dock show-trash false
优点
人类可用的GNOME 40!
如果你曾经使用Fedora 34之类的系统来体验过原汁原味的GNOME 40的话,你一定知道这个桌面环境有多么坑爹和难用。它首先是如同军训一般,杜绝了在桌面上放东西的全部可能:实际上你登录系统后压根就看不到桌面!桌面天生就是给人用来放东西的,让人访问起来方便,不然还要它干嘛?其次,它强制你使用workspace,每个窗口你不能最大化,不能最小化,既然这样我们还要窗口管理器干嘛?还要多任务操作系统干嘛?干脆直接回退到八十年代好了,想要同时做多个任务,给我用中断!还有各种各样反人类之处,这里就不一一列举了,如果你真的好奇的话可以去自己试着用下,绝对100%劝退。
而据可靠消息,Ubuntu 21.10就将使用GNOME 40了,这让人对升级充满了恐惧。还好做出尝试之后,我发现事情压根就不是这样的:Ubuntu取其精华,去其糟粕,将GNOME 40魔改成了一个真正超越之前所有版本GNOME的桌面环境!
具体来说,你将拥有GNOME 40的强大的workspace系统,可以自由排列的应用程序列表,以及各种全新版本的GNOME软件(包括终端,但这是个后面会提到的缺点)。与此同时,你将继续保有Ubuntu标志性的dock、能放文件的桌面、以及可以最大化最小化的窗口,诸如此类。整个桌面环境的使用体验和20.04没有可以察觉的区别。
除了主题配色。Ubuntu的配色一直反复横跳,比如顶部下拉菜单在18.04里是深色,刚使用Yaru主题的18.10里也是深色,20.04里变成了浅色,但在21.10里又变回了深色。窗口的标题栏之前一直是深色的,21.10里首次变成了浅色,我在安装之前还很担心这会很丑,实际上完全没有违和感,因为很多浅色会很丑的应用程序,比如终端,都会把标题栏自定义成深色。而像gedit这样的应用,白色反而显得更统一(只有我一个人觉得这种黑白橙的配色让人想起南外校服吗)。所以我还算支持21.10删除之前的“Standard”配色,只保留Light和Dark两种配色的选择。
全新版本的各种软件!
从上面的截图中可以发现,gedit的最新版本里,左上角“打开”选项的带搜索功能的下拉菜单回来啦!这是我在用18.04时完全离不开的功能,真的很方便,可以大幅增加使用gedit打开你想找的文件的效率。然而在20.04里,gedit大开倒车,回到了14.04时代的行为,“打开”丧失了搜索文件的功能,下拉菜单只显示一个最近访问文件的列表,可以说相当鸡肋。当然这次倒车让我被迫养成了使用nautilus的搜索功能和GNOME自带的搜索功能(Win+A后输入以搜索)的习惯,其实它们也都非常强大,但毕竟不如gedit曾经自带的功能方便。
在本人曾经的OI生涯之中,每场比赛一般会有10分钟花在配置gedit上,比如显示行号,高亮当前行当前括号,自动缩进等等。之所以gedit不把这些所有人都会改的preferences设置成默认,据说是因为它要向某垃圾专有操作系统的记事本学习。然而它没有想清楚,一个用Linux的人肯定不会喜欢记事本的文件编辑能力。很高兴在现在的版本中,gedit终于找到了正确的方向,将这些选项全部设置成了默认,可以说已经成为了一个开箱即用的代码编辑器。
20.04 LTS软件仓库中的各种包已经越发显得陈旧起来。我前几天要编译一个Electron应用,然而20.04的npm
和nodejs
的版本都太低,编译出来各种报错,更不能正常运行,我被迫手动升级了它们的版本,然而升级到的版本都没有21.10自带的高。还有snz认为texstudio
的版本太过陈旧,bug几个月都不修,于是就手动升级到了3.0.2,然而这就是21.10软件仓库里的版本。
之前Linux给人一种“程序都不能双击运行,只能先开个终端再./xxx
”的印象,可以说是劝退习惯某垃圾专有操作系统的Linux初学者的一大因素。这其实是个bug,多半是因为GCC编译出来的文件的MIME类型被识别成了“共享库”(application/x-sharedlib),而不是“可执行文件”(application/x-executable)。在21.10中,这个bug总算得到了修复,GCC编译的程序也能双击运行了!
能力直逼18.04的桌面图标支持!
这个之所以单独拿出来讲,是因为效果实在是太惊艳了。在18.04的年代,Ubuntu的桌面曾经像Windows一样好用,不过后来就步了GNOME的后尘,逐步丧失了应有的功能。在20.04的年代,我使用Desktop Icons NG(DING)这个扩展来部分补偿桌面图标的功能,但还是有诸多欠缺之处,比如永久删除的默认选项放在“取消”上(这和nautilus的对应功能不统一,严重影响肌肉记忆,实际用起来很容易误操作,也很麻烦),不能排序桌面图标(这也是我在18.04时重度依赖的功能之一),导致我桌面非常凌乱难以整理等等。所幸这些问题在21.10中已经全部被解决了,Ubuntu官方已经招安了Desktop Icons NG(DING)这个扩展,安装时自带这个扩展,并且大幅增强了它的功能,也提供了部分的汉化。从今以后使用Ubuntu的人再也不用担心桌面图标的问题了!
缺点
这些缺点可能都是GNOME 40的锅,不是Ubuntu的锅。
不兼容Topicon Plus
Topicon Plus是一个非常重要的GNOME扩展,如果你还没有体验过,强烈建议去试一试。它可以将建立单独小窗口的烦人的各种“System Tray”移至顶栏右上角的“任务栏”类似区域,能改善很多wine应用的使用体验。然而这个扩展目前还和GNOME 40不兼容。事实上,GNOME 40伤筋动骨的一通胡改,破坏了大量扩展的兼容性,让人用起来很不方便。我目前暂时使用TopIconsFix作为替代方案。
搜狗输入法候选词窗口位置不正确
这个候选词框当且仅当窗口左上角与屏幕左上角重合的时候位置是准确的,因为它貌似把相对(窗口左上角的)坐标当成了绝对坐标,如图所示。毕竟官方没有支持21.10版本,本来也没指望能正常运行。
后来我明白了,这是Wayland的问题,因为在Wayland下一个非compositor的窗口压根就不能设置自己的位置(来源)!使用X11之后这个问题就自动修复了。
终端行间距过大
你可能不信,上面的终端是80列24行的标准大小!行间距真的大到无法忍受了,24行居然能变成正方形。之前也有人遇到相同的问题,后来追根溯源发现是gnome-terminal
的上游VTE的问题。在这个讨论里对此有详尽的分析。
大致说来,这并不是行间距的问题,而是因为行高过大。VTE在一次更新后自作聪明,从你的字体里获取行高,但并不是你在终端里使用的字体,而是你系统语言的默认字体。如果你把系统语言设置成中文,一般来讲这个字体是Noto CJK,它的行高很大,但这只是因为中文的行高本来就比英文大。然而谁在终端里看中文啊?虽然终端里显示的中文没什么行间距了,但这并不影响可读性;而增加行高之后,很多TUI程序的显示都会受到影响;如果你是Powerline的用户,影响就更大了。所以需要为了可有可无的中文字符牺牲掉你的终端。而gnome-terminal
比VTE还更进一步,你甚至无法使用更改环境变量的方式让它就范(至少我把系统语言是英文情况下的全部环境变量复制过来也没有用),必须要把系统语言整个更改成英文,才能让终端显示恢复正常。或者如果你可以忍受超级丑陋的中文点阵字体,也可以这样修复问题:
sudo apt autoremove --purge fonts-noto-cjk
对了,还有上面的screenfetch
会报一个语法错误。虽然bash对编译错误比较宽容,但写程序的不可能还留着个CE就直接打包发布了啊?其实这不是我的问题,也不是程序编写者的问题,照样还是中文的问题。看源码可以得知有free -b | awk -F ':' ...
这样一条命令,但是在中文环境下free
的输出是中文冒号,自然什么都分割不出来了$\dots$在free
前面加一个LANG=
即可解决问题。
总结
21.10的表现还是大大超出我的预期的,很多20.04丢掉的特性已经被重新捡了回来,但毕竟现在才只是个Beta版本,有一些小问题也是正常的。也算是用了几年Ubuntu了,一路看下来这么多反反复复,让人更能明白并不是瞎jb乱改就能叫做创新。有些东西是常年不变的,并不一定意味着他们已经陈旧过时,很多时候恰恰是意味着轻易做出改变的那些都没能挺到现在。