
以人为本还是脱离实际?GNOME 桌面环境的演进及争议
反复失败的预言1999年,时任SUSE首席技术官的DirkHohndel大概不会想到,自己口中的「Linux桌面元年」此后会被反复提起,成为圈内一个著名的迷因。每年都有人扮演先知,然后看着统计报告上的 ...查看全文本文为会员文章,出自《单篇文章》,订阅后可阅读全文。
以下正文同步自 少数派,版权归原站所有,已转换为易读排版。
1999 年,时任 SUSE 首席技术官的 Dirk Hohndel 大概不会想到,自己口中的「Linux 桌面元年」此后会被反复提起,成为圈内一个著名的迷因。每年都有人扮演先知,然后看着统计报告上的数字在 5% 下方徘徊。
然而今年 8 月,Linux 在北美市场上的占有率突破 10%。Win10 结束支持、Steam Deck 的火爆都在一定程度上促使用户向 Linux 桌面迁移。就在前不久,Ruby on Rails 的创始人 DHH 更是凭其个人影响力为旗下的发行版 Omarchy 募集到 800 万美元的资金。Linux 桌面走进大众视野,似乎又要迎来曙光。
我第一次接触 Linux 桌面要追溯到十几年前。而今系统和驱动的安装远比过去容易,软件生态也逐步摆脱贫瘠1。目前新用户面对的挑战主要来自两方面:命令行,以及绕不过的发行版碎片化问题。
但不论你选择哪个发行版,其默认的桌面环境大概率是 KDE 或者 GNOME。前者比较贴合 Windows 用户的使用习惯,后者则挑战那些「习惯」。作为多年的 GNOME 用户,我将在下文中介绍它一路来的设计演进,以及这些年发生过的争议与纠缠。
GNOME,即GNU Network Object Method Environment。然而该全称目前不再有任何意义,原因在于:
所以目前 GNOME 不再被视为某种缩写,而是作为一个非营利组织下的独立品牌名存在。一些官方视频中仍将 GNOME 读作guh-NOME,就上面的论述可见,将 GNOME 直接读作NOME 也有充足理由。
创立之初,GNOME 并未急于开拓新的工作流范式。从下图可见,当时的 GNOME 类似 Win95,桌面图标、窗口控件及底部的任务栏仍符合大多数用户的使用习惯。留心底栏,你会发现工作区在 GNOME 1 时便已经存在。
值得一提的是,当时的窗口管理器 Sawfish 支持用户使用 Lisp 脚本进行深度定制,此后 GNOME 的设计目标开始转变,而 Sawfish 也被更简洁,同时自定义程度更低的窗口管理器所替代。
同 GNOME 1 相比,GNOME 2 界面上最明显的变化是其全新的双面板布局。面板上的组件可自由摆放,一般情况下,用户会在顶栏上放置主菜单与系统托盘,底栏上则是窗口列表和工作区切换器。
GNOME 2 朴素的界面对用户来说十分直观高效。由于其不错的定制性与生产力,GNOME 2 成为了多数主流发行版的默认桌面,并随 Ubuntu 的崛起,在占有率上逐渐超越当时的 KDE。其里程碑式的成功也在后来推动了MATE等项目的诞生。而 GNOME 至今都包含一个 Classic Session,来为「怀旧」的用户提供一个 GNOME 2 桌面布局的模拟。
早在 2005 年,对下一代 GNOME 的概念性探索就已开始。2008 年 10 月,在为期 5 天的 GNOME UX Hackfest 上,GNOME 3 完成了最初的构想。开发者希望用一个整体性的界面层——后来被称为 GNOME Shell,来取代 GNOME 2 的中面板、菜单等独立部件的拼凑。他们期待一次重新设计能解决 GNOME 2 时期的一些顽疾,比如:
设计的最终成果,便是 GNOME Shell 中的 Activities Overview。
结合图上标注,让我们看看 Activities Overview 是如何解决上述问题的:
对比 macOS 中的 Mission Control,可以发现两者的设计存在一定的相似性。其中最大的一个差异是:GNOME 中工作区默认是动态的,即 GNOME 会根据工作区内的窗口数量自动新增或删除工作区。
Activities Overview 集应用启动、窗口与工作区切换等功能于一身。这种一体化的导航机制是对 WIMP 范式4的一次激进重构。而在 Activities Overview 之外,原来的桌面又如何呢?
GNOME 3 中,用户可以通过按下 Super 键5在 Activities Overview 与桌面中来回切换。桌面被分为两个区域,即顶栏和顶栏下的窗口区域。任务栏消失了。而在默认情况下,用户不可以在桌面上放置图标。
历经数年开发,GNOME 3 终于在 2011 年 4 月 6 日正式发布。在发布后的一次采访中,主设计师 Jon McCann 提到,他希望这一代的 GNOME 能让用户感到更加专注、敏锐、高效、能干、被尊重、愉悦,并且自在。
相对 GNOME 2,GNOME 3 并非是一次渐进式的改进,必然引发大量用户的水土不服。同时,GNOME Shell 初期的频繁崩溃堪称灾难,直接导致 GNOME 2 时代积攒的用户大量流失。种种不满也催动了新的桌面环境产生:前文提及的 MATE 就基于 GNOME 2,而Cinnamon则选择在 GNOME 3 的基底上,回归传统的桌面范式。
面对铺天盖地的批评,GNOME 方否认在设计过程中无视反馈、忽视用户需求,同时保证:预计在很长一段时间内,团队都不会再做出如此程度的变革了。于是,代替 GNOME 2,GNOME 3 踏上了自己的渐进式演进之路。
GNOME 每半年发布一个稳定版本,在 GNOME 3 时期,稳定版的版本号以偶数结尾(例如 GNOME 3.6 的下一个稳定版为 GNOME 3.8),除了对细节、性能的打磨外,GNOME 在这一时期最主要的变化是引入了下一代显示服务器协议Wayland的支持。在 GNOME 3.38 后,GNOME 团队将版本号改为 GNOME 40,同时带来了全新的 Activities Overview 设计。
人不能在同一个地方摔倒两次。此次 GNOME 吸取了先前的教训,在正式设计前展开了充分的可用性研究。新设计中,工作区从垂直排列变为从左到右的水平排列,为用户提供了更好的空间隐喻与触摸手势上的一致性。
除了改进 Activities Overview 的设计,GNOME 团队的另一个成果是为 GTK6 4 开发的库:Libadwaita。过去,GNOME 的主题 Adwaita 与 GTK 直接捆绑,Libadwaita 的出现将 GNOME 的视觉风格与 GTK 解耦,使后者拥有更好的通用性和平台无关性。而开发者也能借 Libadwaita 编写更符合 GNOME人机界面指南的应用。
这一节中,我将为读者粗略地介绍一下当前 GNOME 桌面环境7的使用。读者可在线上或 GNOME 自带的帮助应用内阅读更为详尽的使用文档。若你想完整体验 GNOME,最好的方式是通过某个发行版(比如 Fedora)的 Live CD,或是在虚拟机中安装GNOME OS。
GNOME 桌面环境主要由 GNOME Shell 和一些自带的核心应用组成。当前的 GNOME Shell 同 GNOME 3 发布之初相比并没有太多结构性上的变化,依旧可视为普通桌面与 Activities Overview 的组合。
接下来让我们进入 Activities Overview。从桌面进入 Overview 有三种方式:
正文由 FLUX 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。