以人为本还是脱离实际?GNOME 桌面环境的演进及争议

17:02

反复失败的预言1999年,时任SUSE首席技术官的DirkHohndel大概不会想到,自己口中的「Linux桌面元年」此后会被反复提起,成为圈内一个著名的迷因。每年都有人扮演先知,然后看着统计报告上的 ...


反复失败的预言

1999 年,时任 SUSE 首席技术官的 Dirk Hohndel 大概不会想到,自己口中的「Linux 桌面元年」此后会被反复提起,成为圈内一个著名的迷因。每年都有人扮演先知,然后看着统计报告上的数字在 5% 下方徘徊。

数据来源:StatCounter

然而今年 8 月,Linux 在北美市场上的占有率突破 10%。Win10 结束支持、Steam Deck 的火爆都在一定程度上促使用户向 Linux 桌面迁移。就在前不久,Ruby on Rails 的创始人 DHH 更是凭其个人影响力为旗下的发行版 Omarchy 募集到 800 万美元的资金。Linux 桌面走进大众视野,似乎又要迎来曙光。

那明年会是 Linux 桌面元年吗?恐怕依旧不会。

现在是尝试 Linux 桌面的最好时机吗?我认为是的。

Freedom is not just for geeks.

我第一次接触 Linux 桌面要追溯到十几年前。而今系统和驱动的安装远比过去容易,软件生态也逐步摆脱贫瘠1。目前新用户面对的挑战主要来自两方面:命令行,以及绕不过的发行版碎片化问题。

常见发行版在DistroWatch上的关注热度。HPD,即 Hits Per Day(日均访问次数)

但不论你选择哪个发行版,其默认的桌面环境大概率是 KDE 或者 GNOME。前者比较贴合 Windows 用户的使用习惯,后者则挑战那些「习惯」。作为多年的 GNOME 用户,我将在下文中介绍它一路来的设计演进,以及这些年发生过的争议与纠缠。

GNOME,G 到底要不要发音

GNOME,即GNU Network Object Method Environment。然而该全称目前不再有任何意义,原因在于:

  • Network Object Method 因过度复杂及性能问题,早已被更轻量的 D-Bus 所取代。
  • 由于 KDE 依赖非自由许可证的 Qt 在当时引发不少争议2,1997 年 GNOME 创立时冠以 GNU 前缀,意在创建一个完全基于自由软件的桌面环境。然而,因对 Richard Stallman 行为和领导风格的长期不满3,GNOME 最终于 2021 年同 GNU Project 分道扬镳。

所以目前 GNOME 不再被视为某种缩写,而是作为一个非营利组织下的独立品牌名存在。一些官方视频中仍将 GNOME 读作guh-NOME,就上面的论述可见,将 GNOME 直接读作NOME 也有充足理由。

开发简史

GNOME 的演进大致分为如下几个阶段:

GNOME 1: 1999-2002

创立之初,GNOME 并未急于开拓新的工作流范式。从下图可见,当时的 GNOME 类似 Win95,桌面图标、窗口控件及底部的任务栏仍符合大多数用户的使用习惯。留心底栏,你会发现工作区在 GNOME 1 时便已经存在。

底栏应用图标右侧已有工作区存在

值得一提的是,当时的窗口管理器 Sawfish 支持用户使用 Lisp 脚本进行深度定制,此后 GNOME 的设计目标开始转变,而 Sawfish 也被更简洁,同时自定义程度更低的窗口管理器所替代。

GNOME 2: 2002-2011

同 GNOME 1 相比,GNOME 2 界面上最明显的变化是其全新的双面板布局。面板上的组件可自由摆放,一般情况下,用户会在顶栏上放置主菜单与系统托盘,底栏上则是窗口列表和工作区切换器。

当时的 Ubuntu 默认四个工作区,工作区组件在底栏右侧,以 2x2 堆叠

GNOME 2 朴素的界面对用户来说十分直观高效。由于其不错的定制性与生产力,GNOME 2 成为了多数主流发行版的默认桌面,并随 Ubuntu 的崛起,在占有率上逐渐超越当时的 KDE。其里程碑式的成功也在后来推动了MATE等项目的诞生。而 GNOME 至今都包含一个 Classic Session,来为「怀旧」的用户提供一个 GNOME 2 桌面布局的模拟。

MATE 桌面环境,GNOME 2 的直接后继者
GNOME Classic 中用扩展模拟 GNOME 2 的界面

GNOME 3: 2011-2021

早在 2005 年,对下一代 GNOME 的概念性探索就已开始。2008 年 10 月,在为期 5 天的 GNOME UX Hackfest 上,GNOME 3 完成了最初的构想。开发者希望用一个整体性的界面层——后来被称为 GNOME Shell,来取代 GNOME 2 的中面板、菜单等独立部件的拼凑。他们期待一次重新设计能解决 GNOME 2 时期的一些顽疾,比如:

  1. 面板配置自由度过高,许多组件无人使用
  2. 程序开启过多时,应用窗口难以寻找
  3. 通过层级菜单启动应用效率太低
  4. 工作区用起来不够方便
GNOME 2 时期的应用启动菜单

设计的最终成果,便是 GNOME Shell 中的 Activities Overview。

结合图上标注,让我们看看 Activities Overview 是如何解决上述问题的:

  1. GNOME 3 默认提供一个功能精简的顶部常驻面板,并提供接口让用户自己编写、加载想要的组件。
  2. 面板下是当前工作区的完整预览,方便用户寻找想要的窗口。
  3. 在顶栏下方,如果你点击 Applicaitons,窗口预览将切换为一个类似 macOS Launchpad 的界面。左侧,这个类似程序坞的组件名为 dash,显示用户固定的和正在运行中的软件。Overview 中还设有搜索栏,方便用户启动已安装的软件。
  4. 工作区纵向堆叠。用户可以通过点击缩略图来切换工作区,或是用鼠标将窗口拖至其他工作区内。
GNOME 3.16 时期的 App Grid,设计已有部分变化

对比 macOS 中的 Mission Control,可以发现两者的设计存在一定的相似性。其中最大的一个差异是:GNOME 中工作区默认是动态的,即 GNOME 会根据工作区内的窗口数量自动新增或删除工作区。

Activities Overview 集应用启动、窗口与工作区切换等功能于一身。这种一体化的导航机制是对 WIMP 范式4的一次激进重构。而在 Activities Overview 之外,原来的桌面又如何呢?

Gnome 3 桌面,黑色的顶栏及下方的文件管理器 nautilus

GNOME 3 中,用户可以通过按下 Super 键5在 Activities Overview 与桌面中来回切换。桌面被分为两个区域,即顶栏和顶栏下的窗口区域。任务栏消失了。而在默认情况下,用户不可以在桌面上放置图标。

HP Touchpad 上的 webOS,也是 GNOME 3 的灵感来源之一

历经数年开发,GNOME 3 终于在 2011 年 4 月 6 日正式发布。在发布后的一次采访中,主设计师 Jon McCann 提到,他希望这一代的 GNOME 能让用户感到更加专注、敏锐、高效、能干、被尊重、愉悦,并且自在。

很不幸,他的希望落空了。

发布之初,GNOME 3 招致许多批评

相对 GNOME 2,GNOME 3 并非是一次渐进式的改进,必然引发大量用户的水土不服。同时,GNOME Shell 初期的频繁崩溃堪称灾难,直接导致 GNOME 2 时代积攒的用户大量流失。种种不满也催动了新的桌面环境产生:前文提及的 MATE 就基于 GNOME 2,而Cinnamon则选择在 GNOME 3 的基底上,回归传统的桌面范式。

Cinnamon 在采用 GNOME 3 技术的同时坚持传统桌面范式

面对铺天盖地的批评,GNOME 方否认在设计过程中无视反馈、忽视用户需求,同时保证:预计在很长一段时间内,团队都不会再做出如此程度的变革了。于是,代替 GNOME 2,GNOME 3 踏上了自己的渐进式演进之路。

GNOME 40+: 2021 至今

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人机界面指南的应用。

旧版 Adwaita 与 libadwaita 样式对比

现状一览

这一节中,我将为读者粗略地介绍一下当前 GNOME 桌面环境7的使用。读者可在线上或 GNOME 自带的帮助应用内阅读更为详尽的使用文档。若你想完整体验 GNOME,最好的方式是通过某个发行版(比如 Fedora)的 Live CD,或是在虚拟机中安装GNOME OS

GNOME Shell

GNOME 桌面环境主要由 GNOME Shell 和一些自带的核心应用组成。当前的 GNOME Shell 同 GNOME 3 发布之初相比并没有太多结构性上的变化,依旧可视为普通桌面与 Activities Overview 的组合。

让我们先从桌面看起:

结合标注,上图中:

  1. 工作区指示器,随工作区切换而变化。
  2. 日期与时间,点击后显示一个集成了日历、天气与通知的菜单。
  3. 用户安装的 GNOME Shell 扩展。
  4. 系统菜单,可进行一些快捷的设置与关机/锁屏。你也可以通过快捷键Super+L进行锁屏。
  5. 窗口区域。用户可使用按键组合Super+Tab/Super+`在不同窗口或同一应用的不同窗口间进行切换,并通过三指在触摸板上左右滑动或Ctrl+Alt+左右方向键来切换工作区。注意默认情况下,GNOME 下的 GTK 应用只在右侧显示「关闭」的窗口按钮。我会在后文中对这一点进行展开。
顶栏上的两处菜单
GNOME 的锁屏界面

接下来让我们进入 Activities Overview。从桌面进入 Overview 有三种方式:

  • 按下 Super 键。
  • 将鼠标移至左上角 (Hot Corner)。
  • 在触摸板上,三指往上滑。
截图中使用了第三方图标主题Papirus

上图中,按标注从上往下,依次是:

  1. 搜索栏。用户可进行对软件、文件、设置等项目的搜索。若要在结果中排除某些项目,可在 GNOME 的设置中进行修改。
会员专属文章,欢迎加入少数派会员。
优质内容
权益周边
会员社群
power+
评论区
全部评论0
成为少数派会员方可评论,立即加入。若已是少数派会员,点击登录
还没有评论,来发表第一个评论吧
全部评论
还没有评论,来发表第一个评论吧
成为少数派会员方可评论,立即加入。若已是少数派会员,点击登录