一屋清净。

Free of worries

Manjaro 桌面折腾记

2024-02-14·非我他物

我的本科导师在大一刚开学,还未正式行课的时候,给我们发了一份二十多页的 Word 文档,要求我们在两周内按照文档的指导自行安装 Windows 和 Manjaro 的双系统,原因是程序设计作业需要在 Linux 系统上编写、调试和运行。

我向来不喜欢未经思考就接受别人交给我的任务,所以当我面对这一个多少有些强人所难的要求和一份三十多 GB 出头的定制系统文件时,我是很抗拒的。

于是,当天我就尝试了 Arch Linux 的 WSL(Windows Sub-system for Linux,适用于 Windows 的 Linux 子系统)和虚拟机安装 Manjaro 系统这两个自以为聪明的方案。除了个别基础不错的同学,其他不少刚接触计算机的大学生连续几周都被安装系统这个任务搞得心神不宁,而我还泡在自己的舒适圈里,在 Windows 11 系统上畅玩各种电子游戏。

故事讲到这里,你一定会期待一段这样的情节——一个刚获得些许自由的大学生我行我素,最后被残酷的现实击倒在地,开始后悔自己为什么没有早点醒悟。

好吧,或许你没有,我也没有为了我自己的决定后悔。安装双系统的做法的确不太聪明,不但麻烦,真正发挥用武之地的地方又很少,只能算是一个对大部分人都有效的解决方案。而当我掏出我的第二台笔记本电脑,阁下又该如何应对?

冷淡的接待

我有一台陪伴了我整个高中的戴尔灵越轻薄本,在我毕业之后光荣退役,因为我有了一台性能更好的游戏本。于是这台笔记本一直闲置了好几个月,不过这下终于有用武之地了。我决定在这台并不常用的电脑上安装 Manjaro 系统,以应付作业的需求。

由于我打算完全抛弃之前旧的 Windows 系统,安装一个单独的 Manjaro 系统,而导师提供的文档却只给出了双系统的操作指导,其中涉及到各种复杂的分区,大部分内容对我没有太大的参考价值。于是我先根据文档制作用于安装系统的启动盘,我得先从 Manjaro 官网上下载 KDE 版本的系统镜像,然后用 Ventoy 和一个 U 盘制作启动盘,系统安装好之后再把导师发在群里的三十多个 GB 的系统快照在安装好的新系统上恢复,省区自己安装软件的麻烦。

**不过我很快就把自己唯一的 U 盘搞坏了。**大概是在操作时出现了失误,又或是什么令人摸不着头脑的问题,我在按照教程使用 Ventoy 制作启动盘时,软件弹出了一个文档中没有提到的报错,然后我发现我无法在 Windows 中访问 U 盘了。于是我格式化 U 盘后并重新设置了分区,好在这个盘里没有什么重要数据。但第二次尝试的时候还是发生了同样的错误,第三次、第四次也一样。最后我还是放弃了,借用了室友已经制作好的启动盘。

后来我又照常使用这个被我格式化数次的 U 盘,结果在好几次拷贝文件的时候发现文件损坏。直到一次上台展示的时候,发现自己做好的 PPT 无法打开,才意识到这个 U 盘已经没办法正常使用了。我至今也没弄明白是哪一步出了问题。

由于 Manjaro 的安装程序有图形界面,只需要一些简单的配置就可以自动安装。我打算直接抹除原来的 Windows 系统,Manjaro 也在安装时提供了直接覆盖原系统的选项,不过我常试了几次都报错,表示无法正常安装。具体的细节我已经因为过了太久而遗忘了,但我记得我百思不得其解,被这个错误搞得焦头烂额,最后又在导师给的文档里找到了答案——好嘛,是我没改 BIOS 设置

在全英文还没法用鼠标控制的界面了找了好久,我终于找到了正确的设置项。之后便顺利地安装好了,没出什么差错,只是我才发现导师给的那三十多 GB 的系统快照是双系统的结构,也就是说,本质上我得在自己的机器上百分百还原他电脑的文件分区,然后把他系统里所有的文件恢复到我的电脑上。而我并没有装双系统,所以这个快照我是用不了的。

不过系统都装好了,软件什么的自己装就好了。

吃豆人欢呼

Arch Linux 的软件生态在各大 Linux 发行版中算是不错的,许多人选择 Manjaro 也是因为它是基于 Arch 开发的。尽管国内大部分桌面端应用只提供了更常见的 .deb 包,以供国产系统 deepin 和麒麟使用,但因为 AUR(Arch User's Repository)的存在,Arch 用户可以将适用于 Arch 发行版的软件包发布在所有人都可以访问的公共仓库中, 而 AUR 可以用 yay 这个命令行工具直接访问。

也就是说,如果一个软件包没有被收录在 pacman 能够访问的 Arch 官方库中,用户仍然能通过 AUR 安装社区维护的软件包

对于 Arch 用户来说,使用 yay 访问 Arch 官方库和 AUR 安装软件是最好的选择,但当时刚接触 Linux 软件生态的我什么也不懂,导致我安装软件的方法十分混乱,大概可以这样描述:

  1. 在 Manjaro 提供的软件管理器中搜索,如果有,就安装这里的包;
  2. 尝试用 sudo pacman -S 包名称 搜索这个包;
  3. 如果软件提供了 AppImage,则使用 AppImage Launcher 安装;
  4. 直接从官网上下载 .deb 包,强行安装在 Manjaro 上(千万不要这么做,可能会损坏软件包的依赖关系!
  5. 使用 flatpakflathub 安装软件包。

由于之前没有发现 yay 这个好用的工具,而且发现了之后也不会上 AUR 查找软件包,所以在刚开始使用 Manjaro 的时候我是很痛苦的。我花了两天的时间才安装好 QQ、WSL 和某个小猫咪软件。

不过之后就学聪明了,在安装软件前会先在 AUR 上搜索是否有直接可用的包,如果没有也可以下载 deb 包,然后用 debtap 这个工具将其转换为适用于 Arch 的包。

很难想到,我在 Manjaro 上安装软件遇到最大的坎居然是——微信。微信的官方 Linux 版本似乎很久没有维护了,并且也没有做 Arch 的包;AUR 上有很多第三方的微信客户端,但好多都年久失修,虽然能用,但总没有原生软件的那种舒爽;我还尝试了使用 Wine 在 Linux 上安装适用于 Windows 的微信,结果 Wine 没有办法正常显示中文。

到现在,我这台电脑上都只安装了 QQ,没有找到合适的微信客户端。

你的下一台 MacBook

Linux 桌面环境最让人着迷的一点就是极高的自定义性,我花了一些零碎的时间折腾了一下 KDE 桌面,现在我的 Manjaro 看起来是这样的。

为了实现这个效果,我是用了 KDE / Plasma 全局主题 WhiteSur,这个主题提供了仿 Mac OS 的风格、窗口样式等。同时,我还使用了 Latte Dock 代替原本的停靠栏,使用 WhiteSur 作者提供的 Latte 主题美化了停靠栏。

当然,如果仅仅是美化,那也不是不敢称作「MacBook」的。MacBook 被很多人奉为生产力工具和效率工具,而不仅仅是一台笔记本。

生产力并不是由机器本身决定的,而是由软件和软件的使用者决定的。既然谈到软件,那就离不开软件生态。Mac OS 的软件生态不必多说,要在 Arch 中找到 MacOS 大部分效率工具的替代品,这确实需要多下一点工夫。

用你的键盘做更多

Alfred 是 Mac OS 上的一个应用启动器,可以通过快捷键呼出,然后输入应用的名字(大部分时候,只需要应用名字的前一两个字母即可)即可启动应用。在这个过程中,手不需要离开键盘,不需要用鼠标在桌面和 Dock 栏的图标里寻找自己想要的应用,节省了切换输入设备和寻找图标位置的时间。在 Linux 上也有不少类似的应用,最终我选择了 Ulauncher。

我之所以选择额外安装一个应用启动器,而不是使用 KDE 桌面自带的开始菜单(可以用原 Windows 系统上的 WIN 键呼出),是因为 Ulauncher 提供了更模糊的检索方式,是我更容易找到自己想要打开的应用。同时,我还能把他当作一个快速的搜索入口,如果我输入的字符不匹配任何一个应用的名称,Ulauncher 就会显示在 Google / Stack Overflow / Wikipedia 搜索该关键字的选项。

有了 Ulauncher 的加持,再搭配 Alt + Tab 快速切换已经打开的窗口,就能快速地在各个应用之间来去自如。而且,我还要继续强调,完成这些操作,你的手完全不需要离开键盘

编辑器的文艺复兴

我卸载了 Manjaro 自带的文本编辑器,因为它并不好用,于是,不熟悉 Linux 软件生态的我安装了 Sublime Text 作为敲代码之外的主力编辑器。但使用一段时间之后,我发现我并不习惯 Sublime 这款编辑器,原因有以下几点:

  1. 如果用来写代码,它提供的功能太少了,不如用拓展性更强的 VS Code;
  2. 如果单纯用来编辑文本和一些配置文件,它的某些功能又显得有些多余;
  3. 我不喜欢它的界面,默认的 Tab 缩进太短了。

于是我开始寻找一款真正简单好用的编辑器。恰好,我在少数派上读到「沉浸式翻译」的作者 Owen 一直使用 Neovim 作为他的主力编辑器。我一直听闻 Vim 作为编辑器的效率极高,而 Neovim 作为 Vim 更现代的续作必然不简单,所以就打算尝试一下。

不过,当我看到 Vim 和 Neovim 冗杂的配置文件时,顿时产生了十分抵触的心理——我不喜欢需要花大把时间在配置上的软件。于是我尝试了开箱即用的 Helix,它自称「后现代」的编辑器,不需要过多的配置,操作与 Vim 也十分相似。

开始使用 Helix 我才发现,对于纯粹的文字编辑器来说,图形界面是完全可以抛弃的。文本编辑器该有的查找、替换、文件切换,终端驱动的 Helix 都能做到,同时它还实现了窗口分割,跨行多选文本、多种语言的语法检查和代码高亮等。总之,一开始的体验非常舒服。

不过,我很快又发现了一个叫做 NvChad 的项目,它是 Neovim 的一个配置文件和插件集,也就是说,使用 NvChad 就能实现 Neovim 的开箱即用。这也完美解决了 Helix 没有插件系统,拓展性差的问题。通过 NvChad 配置的 Neovim 拥有文件目录树、对 Git 的适配、语法检查、对各种 Linter 的支持、标签页打开多个文件等功能,这已经是能替代 VS Code 和许多 IDE 的工具了

于是我很快抛弃了 Helix 和 VS Code,开始使用 Neovim 作为自己的主力编辑器。毕竟它在终端里启动,速度很快,而且什么样的编辑任务都能胜任,无论是简单修改配置文件还是开发一整个项目,而且你还能享受原生的 Vim 编辑模式。

如果不是因为早已经购买了 Typora 的软件序列号,我甚至会考虑用 Neovim 代替我所有的文本编辑器。不过仔细想想这样也有些太激进了,Typora 这样的可视化编辑器比起 Neovim 这样的纯文本编辑器,能够好地帮助撰写者把注意力放在文字本身上。

实打实的生产力工具

大概是收到身边人的影响,我也开始关注起办事效率和知识管理了。说到生产力工具和知识管理,很难不想到 Notion 和它优秀的数据库系统。虽然我在我的思绪像河流这篇文章里提到我并不喜欢 Notion 的模式,因为我觉得它不适合个人知识管理。不过人家的产品定位的确不是以知识管理为主,而是一个提升团队协作效率的工具,而我最近也的确体会到了它在这方面的强大。

关于 Notion 的数据库和各种视图都是老生常谈了,比起写一篇产品说明书,不如谈一谈真实有用的案例。

我在后室中文维基担任版主,网站内大大小小的事务虽然不算困难,但的确又多又杂。网站里十多个管理人员唯一常用的交流渠道只是一个「单线程交流」的 QQ 群。单线程的意思是,即使当下有好几件事务需要讨论和处理,也只能排着队一个一个来。不过,单线程并不是最大的问题,最大的问题是有不少需要处理的事情随着这条线性的溪流流走了——较好的情况是一件事情已经敲定了,但是当时没来得及查看消息的职员不知道这个决策,还在按照以前的方式办事;比较坏的情况是,有些事情因为一直没有讨论出结果,很快就被大家忘记了,最后不了了之

最近的某一天我又突然想起了 Notion 这个被推上神坛,随后又渐渐淡出视野的工具。我有了个大概的构想,在群里和其他人介绍了一下,随后便开工了。

邀请其他人进入工作区后就能一起查看和编辑页面了。这样可以把任务按照待办事项、正在进行的事项、已经完成的事项、过去时间太久所以已经归档的事项这四个类别分好,这样大家就能知道该做什么,什么事情已经敲定了。由于网站的管理人员都是为爱发电,难免会出现有一段时间因为个人原因无法参与工作的情况;当他们再次回归网站事务时,只需要查看 Notion 工作区的看板就能大概了解最近发生了些什么事情。

每个任务标注了「负责人」和「优先级」,这样大家就能知道哪些事情比较重要,哪些事情还没有人负责,并以此为依据选取无人负责且较为重要的事情优先完成。如果点进每个任务各自的页面,就能看到这个任务的「标签」,标签标明了这个任务属于哪一方面,可能是技术性问题,也可能是政策修订问题,也有可能是社区内的事务,这时职员可以根据自己的职权范围选择是否接手这个任务;如果接手,就可以继续往下读,参考写下这个任务的人留下的详细说明。

另外,因为站点工作人员大部分的讨论都在 QQ 群,而 QQ 群是单线程的,所以开设一个「提案区」能帮助所有人搞清楚还要哪些事项没有讨论出结果,同时也方便提出新的想法,还有一个更重要的作用是,让所有人都静下心来组织一下自己的想法,写成有条理的文字再发给大家看,这样也提升了效率。

尽管 Notion 免费版无法给协作者分配「成员」权限组(也就是说加入工作区的所有人都有最高权限,不会用 Notion 的人要是有误操作可能会留下比较棘手的烂摊子),但对效率的提升是显著的。

我似乎跑题了,但我不得不提到 Notion,因为我想要介绍一下我目前安装在 Manjaro 上的生产力工具,它们之间形成了十分良好的分工。

  • Obsidian 作为一款双链笔记软件,作为我的「第二大脑」存在,储存着我所有成体系的知识和笔记;
  • Flomo 作为一款卡片式笔记软件,储存着我零碎的、未经处理的想法;
  • Notion 作为一款效率工具,用于团队协作分配任务;
  • X-Mind 作为思维导图软件,用于在做事前理清思路(目前我正在尝试使用更轻量、功能更丰富的「幕布」替代有些臃肿的 X-Mind);
  • 滴答清单作为一款规划工具,用于计划我个人近期和长期要完成的事项,同时,其内置的课表和番茄时钟功能也十分好用。

如果要把任何设备称作「生产力工具」,对我来说,以上工具一定得有至少三个。


后记

因为我的主力笔记本暗影精灵惨遭黑屏,在送修前和寄回前都没办法继续使用 Windows 系统的电脑,于是这台开学前几个月装好系统之后就没怎么用过的轻薄本临危受命,成为了我最近的主力。于是就有了这么一篇折腾记录。

另外,这些是写这篇文章时的一些奇思:

  • 第一个副标题「冷淡的接待」致敬了《饥荒》冒险模式中一个关卡的名字。
  • 第二个副标题「吃豆人欢呼」包含两个要素:Pacman(吃豆人,同时也是 Arch Linux 自带的包管理器的名字)和 Yay(用于安装 AUR 包的工具,全名 Yet another Yogurt,和英语中表示欢呼的拟生词拼写相同)。拜托,想个更好的双关语吧。

顺带一提,今天是一个很重要的日子:

1946 年 2 月 14 日,世界上第一台电脑 ENIAC 在美国宾夕法尼亚大学诞生。

望周知。

TL;DR

  1. 因为专业需求,在一台闲置电脑上安装了 Manjaro 系统;
  2. 探索 Arch Linux 的软件生态;
  3. 美化 KDE / Plasma 桌面环境,仿造 Mac OS;
  4. 寻找效率工具和生产力软件。

封面图源:Christin Hume on Unsplash