让我们统一Linux桌面环境
将所有Windows风格的Linux桌面环境整合为一,甚至仅整合三四种,都是不可能的。用C语言编写的大型程序与C++或Vala语言编写的程序无法有效整合,基于Gtk开发的程序也无法与Qt构建的程序兼容。
老牌FlatPak正缓缓登场,带着它独特的韵律…
Linux开发者热衷于重复造轮子早已不是秘密。与其说是房间里的大象,不如说是整艘喷气推进的制导方舟——载满了从阿姆贝龙象到甲龙象,涵盖长鼻目所有已知与未知成员的巨兽群,从喙象、象、猛犸象到其他古象类无所不包。
诚然,Linux本身及其构建所用的GNU工具,都是对现有专有工具的开源重构。但历经三十余载持续发展,Linux始终独此一家——GNU工具的替代方案同样寥寥无几。某些领域尚能维持统一生态,
某些领域却惨遭崩坏。且看《注册表》开源专栏眼中最触目惊心的案例:或许是终端用户操作系统最显眼的组件——桌面环境。
正如我们此前详尽讨论过,当今开源世界中绝大多数桌面环境都采用相同的设计,而这种设计源自Windows。近二十年前,微软曾威胁就此提起诉讼。最终诉讼未发生,但并非因微软缺乏证据:正如我们在2013年的阐述中所指出的,证据链条清晰可见。未诉之因在于:微软难以确定应起诉何方,亦不确定能否对免费社区驱动的开发成果提起诉讼。
何谓“类Windows”?具体指Windows 95式设计——因为此后所有Windows版本都继承了相同的核心架构。当Windows 95迎来20周年时,《The Register》曾发表短评致敬,其核心设计至今清晰可见: 屏幕长边整排排列着功能区,从左至右依次为:应用启动按钮、已打开窗口按钮栏、内嵌时钟的凹陷式“系统托盘”(通常含通知图标)。部分图标可控制扬声器音量等功能。启动按钮展开分层视图,顶层显示主应用与系统控制功能,下层为子功能文件夹。
基于图标的文件管理器,每个窗口可选配左侧窗格,其中包含可展开的目录层次结构树。在此之前,文件管理器最流行的布局是经典诺顿指挥官风格,如今被称为 正统文件管理器 。就连Windows 3的文件管理器也采用这种模式。
笔者在探讨GNOME 3变革时曾详尽剖析。欢迎展开讨论,但请务必先阅读该文。核心在于Windows 95的界面功能组合具有开创性。此前没有任何系统集成了全部这些功能。充其量只有零散的相似特性,例如RISC OS的图标栏或NeXTstep的Dock。但1995年后诞生的几乎所有系统都沿用了这一精确组合。
以21世纪的标准衡量,Windows 95堪称 精简 。初版系统仅需13张软盘即可容纳。对于不熟悉软盘的读者,这意味着其容量不足25MB。
初代Windows资源管理器的代码量仅为200KB。已故的杰夫·查普尔曾撰写过详尽的历史回顾,其观点常被英国科技媒体引用)。 尽管体量微小,它却是杰作,以一种直至22年后iPhone问世才被超越的方式重新定义了计算机用户界面。(请务必记住,这位“秃鹫”的评价基于其个人偏好——从经典MacOS起步,历经RISC OS、BeOS直至Psion EPOC等图形界面系统。)
我们认为至今仍无人能出其右。这正是众多团队和产品效仿其核心设计的原因。
原始资源管理器不仅视觉上简洁,其底层实现也具备简洁性。例如在Windows 3.x和NT.x系统中,程序管理器仅支持单层级结构。应用程序必须以组的形式存储于.GRP文件格式,且无法嵌套。而资源管理器则引入了快捷方式文件,并将开始菜单存储于简易目录树中:图标即快捷方式,子菜单即子目录。Linux自然也有自己的版本,但复杂得多。
NT 4 改编并复用了资源管理器,仅有一项重大变更:NT强制实施用户账户机制,除每个用户的专属树外,还增设了 所有用户 树。(附注:1998年微软用Active Desktop取代资源管理器,该界面基于Internet Explorer 4重构,旨在应对司法部诉讼案。)
Linux平台上存在数量近乎荒谬的Windows风格桌面环境——BSD系统同样如此。其中多数采用C语言实现,并普遍使用不同版本的Gtk工具包构建控件:菜单、对话框、按钮等。
按大致发展时间排序,当前仍在维护的桌面环境包括:Xfce;基于GNOME 2分支的MATE;LXDE; Linux Mint的Cinnamon;以及采用GNOME核心Vala语言开发的Budgie。
GNOME在3.0版本中彻底革新,摆脱了Windows式的设计风格,但仍保留了 GNOME Classic和GNOME Flashback两种模式,其桌面布局更接近GNOME 2风格。Cinnamon桌面最初只是名为MSGE的定制方案集合,后来发展为完整分支,偶尔会基于上游GNOME Shell的新版本进行更新。与之不同的是,Zorin OS桌面环境仍采用多扩展程序的方案而非分叉代码。
自核心开发者转向LXQt后,LXDE已沉寂数年,但近期迎来少量更新。即便如此,众多发行版仍提供LXDE支持,树莓派操作系统至今仍沿用部分LXDE组件。其继任者LXQt与KDE Plasma相同,采用Qt工具包替代Gtk,并以C++取代C语言。延续KDE 3.5分支的Trinity桌面环境亦遵循此路线。
在西方罕见但在东方半球更常见的还有两个类Windows桌面环境。联想的发行版采用Deepin桌面环境,而麒麟系列发行版则使用UKUI。这两种桌面环境(或其组合)也存在于从Arch到Ubuntu的其他发行版中,且均融合了Gtk与Qt组件。
至此已列举13种。现在让我们深入这片黑暗森林……
Enlightenment 虽功能更强大,但其默认布局与上述系统相同,其分支版本E16和Moksha亦延续此特性。它们均采用自研版本的Enlightenment基础库替代Gtk。
而Equinox桌面环境(EDE)则使用FLTK而非Gtk。随着FLTK重启活跃开发,EDE或许也该更新了。XPde曾采用Delphi的Linux版本Kylix而非C语言开发, 但该项目同样已终止多年。Lumina最初为FreeBSD平台采用C++与Qt构建,近年亦支持Linux运行。同样极简的ChromeOS桌面环境Aura亦属此类。
IceWM正重启活跃开发,JWM (Joe’s Window Manager)亦然。甚至FVWM95也在几年前获得更新。公平地说,这些属于窗口管理器而非桌面环境,但它们仍保留熟悉的任务栏+开始菜单设计,并被当前发行版如antiX和Damn Small Linux等现代发行版中。
如今版本已达23。我们本可继续深入探讨,但相信此时已阐明核心观点:这里存在多种编程语言(但远少于23种),以及若干图形工具包(同样远低于20种)。这相当于耗费巨大精力反复发明并维护“轴端圆形物体”这一基本概念。
但其背后的核心理念其实相当简单。这些窗口管理器无法匹敌Windows 95资源管理器的功能,也没有任何桌面环境能复刻原版的简约优雅。Windows 95允许将任务栏置于任意屏幕边缘,但你只能拥有一个任务栏,无法调整其长度,更无法重新排列或调整内容大小,更别提改变内容方向了。多行排列是唯一的选项。
当这位秃鹫推出Tilde文本编辑器时,我们特意在标题中标注年份:1976年正是比尔·乔伊发布Vi初版之年。笔者自1988年起被迫使用Vi,37年来始终厌恶它。但必须承认Vim是卓越的编辑器,深受数万乃至数十万用户推崇。这正是我撰写布拉姆·穆勒纳尔讣告的部分缘由。
如今,恐怕很少有开源开发者记得Elvis或Stevie了。他们是早期另外两大主流开源Vi克隆版本——你懂的,指的是1900年代末期。
试想如果没有Vim,而是存在23种不同的Vi克隆版本,且每个发行版都包含其中多数版本——只因它们的拥趸仍在争论孰优孰劣。试想如果每种版本都采用专属配置文件格式,且无法导入其他版本的配置。试想除了1970年代的核心界面外,它们都采用不同的键位映射。各自拥有语法高亮的实现方式、专属脚本语言、独立插件体系等等。
抛开混乱不堪的局面不谈,这些分支真有可能达到Vim的功能高度吗?
将所有Windows风格的Linux桌面环境整合为一,甚至仅整合三四种,都是不可能的。用C语言编写的大型程序与C++或Vala语言编写的程序无法有效整合,基于Gtk开发的程序也无法与Qt构建的程序兼容。
但它们可以协同工作。
谨记Unix哲学精髓:
编写只做一件事且做得好的程序。 编写能协同工作的程序 。编写处理文本流的程序,因为这是通用的接口。
1995年的设计很简单。桌面组件——任务栏、文件管理器、文本编辑器等——无需交换大量复杂信息。
用户应能自由组合——例如同时使用MATE面板搭配Xfce窗口管理器、Cinnamon文件管理器和Budgie启动菜单。
所有组件可共享统一配置格式。它们都应能读取相同配置文件,并理解三十年前确立的核心基础功能,例如主面板的位置。当年我们无需调整面板布局,如今亦然:在泰坦尼克号上挪动甲板椅本就是徒劳无功的代名词。
近二十余种Windows式界面设计,堪称对程序员心血、技能与时间的 泰坦尼克级 浪费。数百甚至数千人,数十年辛勤耕耘……却各自为政,导致无一项目能成就伟大。例如KDE Plasma的36个启动器菜单。
自KDE首次发布至今已27年,我怀疑微软这二十年来一直在笑嘻嘻地赚得盆满钵满。开源世界完全可以做得更好,现在正是开始尝试的时候。®

我认为碎片化是特性而非缺陷。“自由”的本质在于随心所欲。这种自由需付出代价——统一需要纪律与治理,而治理需要权威。但关键在于:我们能随心所欲地编写代码。
我认为碎片化也是缺乏真正优质解决方案的症结所在——人们不断重造轮子,以为能解决现有方案的问题(结果反而制造了新问题)。
一群人聚在一起达成某种结构共识(即治理机制)并不剥夺任何人的自由。但这样的团体有望实现比所有“独行侠”或小型团队各自为战更大的成就。
我认为核心困难在于:每个人对桌面UI/UX都有独特偏好,不愿参与与自身理念存在差异的项目。企业/组织能通过雇佣解决这个问题——薪酬能弥补理念上的细微分歧。
不过文章也提及兼容性接口,这意味着所有分散的项目都能以有意义的方式协同运作。
某种程度上,这段话让我读出这样的潜台词:“为何人们要浪费时间开发自己想用的东西,而不直接使用现成的解决方案?”而答案显然是:他们对现有方案并不满意。布兰姆·穆勒纳为何要创建vim而非直接使用vi或ed?
我理解为“为何自主开发者不转而从事矿业?”
对问题的精辟分析。通用配置解析、UI/UX一致性及文本流支持是统一Linux的基础。期待看到类似方向的编码统一化协同努力…听起来很像需要资金支持的软件开发团队
这里很多评论强调多样性的价值等等。没错,但很多人同样重视一致性。如今Win10退出历史舞台,用户对Win11又持观望态度,正是切换系统的绝佳时机。然而即便是我(数年前曾将Linux作为日常系统),也因界面体验不统一而迟迟不愿全面迁移(工作环境使用Ubuntu,家用Jellyfin电脑装Mint,两者间仍存在诸多烦人的差异)
我宁愿不换。我喜欢选择权。你可以不同意我的选择,但能自由表达异议不正是美妙之处吗?
问题在于Gnome/KDE/XFCE等桌面环境严格来说并非Linux专属,它们也支持其他类Unix系统。这使得标准化工作复杂得多。
FreeBSD 15计划在默认安装程序中加入KDE Plasma桌面环境选项!
我认为碎片化是好事,它让众多人才能在同一领域并行发展,也让用户能选择最适合自己的方案。问题在于这将大量打磨工作留给了用户,而大多数人选择的默认配置往往是最乏味、最保守的选择。
DHH在Omakub(及Omarchy)项目中的做法提供了建设性解决方案——从海量选项中筛选出高效协同的组件与配置组合。精炼选项集,隐藏与忽略不合用的功能,并详尽记录最终“组合包”的使用方法。
如今Windows本身就内置了多个桌面环境。
不,一切终究归结于Win32和COM。
用AfterStep克隆版等替代Windows外壳的功能早已消失殆尽。
兄弟,我怀念那些日子啊。
别啊,千万别让Linux桌面变成微软或苹果那种封闭的垃圾场。
在我看来,这正是生态系统最美妙的特质之一。厌倦KDE时,你可在同一系统轻松切换GNOME,所有珍视的数据依然完好无损。若觉得GNOME不合心意,同样能在原系统无缝回退。除非你用的是Gentoo(眨眨眼),否则在现代硬件上切换系统不过是喝杯咖啡的功夫。
更妙的是,若你对两者都感到厌倦,可以尝试Mango(https://github.com/DreamMaoMao/mangowc)或Hyprland(https://hypr.land/)这类工具,自己动手拼凑出专属的桌面环境。或者,如果你 真的 有闲暇时间折腾,不妨试试QuickShell(https://quickshell.org/)之类的工具。(https://hypr.land/))之类的工具自行拼凑桌面环境,或者如果你 真的 有闲暇时间,可以尝试QuickShell (https://quickshell.org/)这类工具,几乎可以 从零开始 独立构建桌面环境。这就是caelestia(https://github.com/caelestia-dots)诞生的过程,它也在QuickShell主页上被重点展示。它就是如此美丽(且实用)。
说到实用性,作为当年CD-ROM和Windows XP盛行、Slackware最流行的时代初次接触Linux的人,所有桌面环境的用户体验都已 大幅提升 。
这其实还是保守估计。我正着手迁移系统(这次是认真的,且永不回头),还想让父母摆脱Windows 10的束缚。为此我随手把KDE Neon的Live CD刻录到U盘,打算向他们展示Linux用户体验这些年已大幅提升,完全无需担忧。
从U盘启动后,我自己都被震撼到了——体验实在太出色了。天啊,我敢说只要人们对Linux的偏见能少些, 大量 用户终将转向它。相较于Windows 11或现行OS X,其用户体验在我看来简直 好得离谱 ——无论新手还是高手都能轻松上手(后者指的是:只要不违反KDE的用户体验规范,想把终端界面改到天翻地覆都行,没人会拦你)
简而言之:无需任何改变。唯一需要的是让人们知道除了macOS Big Sur和Windows 11之外还有其他选择,而且这些替代方案同样易于使用。
我想说,若想打造统一桌面环境,你应该成立组织、筹集资金,雇佣全球所有桌面开发者来实现你构想的统一基础桌面。
我无需认同GNOME的组织架构,也无需接受KDE使用Qt框架等诸多细节…更不必说System76正以惊人速度推进Cosmic项目。这些团队都在独立推进各自的项目,正如微软从未干预macOS开发。
归根结底,人们有权选择自己喜欢的东西…我宁愿不生活在极权/共产主义/法西斯主义或任何其他国家集中管控的空间里。
即便存在资源浪费——确实如此——人们也有权将时间投入爱好或捐赠。对于获得报酬或自费参与者,这很酷;对于无偿参与者,他们是自由的个体。我常说,若不必为生计工作,定要打造更优的开源版Exchange+Outlook。既不必加入现有项目,也无需说服众人加入我的项目。
尽管我永不再碰桌面环境,但GNOME对简单文本文件的依赖,使其与Nix家庭管理器配合使用时堪称绝妙体验。我百分百支持全面采用GNOME设置架构。
GNOME设置?那个需要用三个不同应用(设置、调整和dconf)才能修改配置的系统?老实说,我上次用GNOME已经很久了,但印象中它并不算特别方便。
而且dconf设置存储在二进制数据库里对吧?
哦,你说得完全正确。我被dconf导出和导入(后者是文本格式)搞混了,后者是home-manager透明处理的。
至于那个祖先级评论,确实,我承认界面体验很糟——不过反正我所有操作都是通过home-manager完成的。
只有单一实体能实现这种功能。若真想实现,就分叉所有组件,用你专属的Linux API进行封装。
正因如此,Chrome OS、Android、WebOS和Steam OS才占据消费市场的主流关注,用户根本不在意这些设备其实基于Linux内核。
我只求应用能以统一方式获取当前桌面环境的文本设置和基础配色方案。但即便这点在不同桌面环境和发行版间也存在不一致。
如今Unix的魅力不正在于为其量身打造的开源软件拥有海量选项吗?为何要在这个领域限制任何东西?
未必,UNIX之争早已演变为Linux之争。
MacOS依然存在…在某个角落
不知本文作者是谁,但这纯属胡说八道…
至于桌面环境的多样性,我们只能感叹缺乏面向大众的强劲竞争者——Ubuntu本有望成为这样的存在,可惜被自负毁了。但归根结底,Linux架构自诞生之初的核心价值就在于:你可以随心所欲地拥有它并按喜好调整…
你可以拥有它并按自己的喜好调整…
其实不然。我曾投入大量时间和精力寻找并配置“完美”的桌面环境,最终却以失败告终。一旦开始调整(即修改默认设置)并安装额外工具来弥补功能缺失,就会发现 大量 的漏洞和僵化设计。
我深有同感…曾用Budgie桌面环境近一年,当时非常满意…基本都按个人喜好调整过了。但最终还是觉得回归Pop并保持接近默认设置更舒服。其实我对Mac或Windows的设置也没怎么折腾过。
归根结底,我只想有个足够稳定的基础环境来完成工作。
我从未说“调整”必须简单或像配置脚本那样幼稚,但确实存在可能性。
试着在OSX下以任何方式实现一个像样的菜单栏——哪怕是想自己编写菜单栏软件——你就会明白我的意思。
典型的xkcd 927式案例。
我没记住编号,想在谷歌前猜猜看。
那个关于存在N种标准,试图统一却最终产生N+1种标准的梗?
编辑:猜对了。
桌面环境统一始终是业界追求,但碎片化本质上源于使用场景与哲学理念的差异。
这种分歧在X11与Wayland之争中愈演愈烈,如今更演变为去中心化自由主义与集中化企业主义的对立。后者以行为准则或觉醒软件为战场,演变为文化战争。如今这场斗争正凝聚为hyprland与X11阵营、GNOME与Wayland阵营的政治对立线。(hyprland虽采用Wayland,但其与X11阵营因拥趸同样喧嚣分裂而具有相似政治倾向。)
觉醒派倾向于集中式企业主义,希望在该框架下统一freedesktop协作,确保身份认同的代表性,使贡献者不必担忧细微歧视和办公室政治。
反对派则倾向于去中心化自由主义,他们拒绝身份政治,主张个人自由应能随心所欲地行动——即便这不符合政治正确。他们相信这是让思想迸发、催生更优质软件的最佳途径。
我个人认为双方皆有可取之处,需寻求精妙平衡。我们应当汲取精华(卓越的软件成果),摒弃糟粕(歧视与办公室政治)。
我对此也有些矛盾…我欣赏某些觉醒组织的技术解决方案,但极度反感他们借行为准则之名滥用权力,或对非觉醒者发动的战争。例如GNOME内部活动家呼吁拒绝Framework资助,只因该机构同时资助Omarchy和Hyperland。
这种行为虽显荒谬,但我认为问题依然严峻。
身份政治可采取明令强制或默许纵容两种形式。觉醒派选择了前者。反对派虽可采取后者,但他们同时主张以个人自由为重来制衡身份利益。
有人担忧这会演变为法西斯主义,但将理念逻辑化极端化只会混淆视听、阻碍沟通。务实平衡的解决方案因此渐行渐远,企业守望者便能将温和反对派驱赶至极端边缘。那么,谁来监督这些守望者?
别邀请企业守望者来参加派对。