三年磨一剑,Rust 桌面终于来了

2025年12月11日,System76 正式发布了 Pop!_OS 24.04 LTS 和 COSMIC 桌面环境。

这个系统作者我已经使用了3个多月,因为他是一个唯一不用你折腾n卡驱动的linux系统

说实话,当我第一次听说有人要用 Rust 从零开始写一个完整的桌面环境时,我的反应是:“这帮人是不是疯了?” 毕竟,桌面环境这玩意儿,GNOME 和 KDE 已经折腾了二十多年,代码量都是以百万行计的。用一门相对年轻的语言重新造轮子?听起来就像是用筷子吃牛排——能吃,但何必呢?

但 System76 还真就这么干了。三年时间,大约20万行 Rust 代码,他们交出了一份让人刮目相看的答卷。

COSMIC 到底是个啥?

先说清楚一件事:COSMIC 不是主题,不是 GNOME 的魔改版,也不是什么皮肤

它是一个从头开始用 Rust 写的完整桌面环境。自己的 iced 工具包,自己的 Wayland 合成器,每一个组件从第一天起就是为内存安全设计的。

这就好比什么呢?想象一下,你家小区的物业一直用的是二十年前的管理系统,虽然能用,但经常出bug,偶尔还会把你的快递送到隔壁老王家。现在有人说:“我们不修了,直接用最新的技术重新写一套。” 这就是 System76 干的事。

COSMIC 面板配置选项

技术架构长这样

COSMIC 的架构分成几层:

1. 自研 Wayland 合成器 (cosmic-comp)

没有 X11 的历史包袱,纯 Wayland 实现。这意味着更好的安全隔离、更流畅的渲染,以及不用再处理那些十几年前的兼容性补丁。

2. iced 工具包

System76 深度参与开发的跨平台 GUI 库。响应式设计,GPU 加速,专门为现代硬件优化。

3. 内存安全

每一行代码都是 Rust。内存泄漏、缓冲区溢出、释放后使用这些困扰 C/C++ 桌面环境的老毛病?在结构上就不可能发生。这不是理论,这是工程现实。

第一印象:快,真的快

我在虚拟机里跑了一下(是的,我的主力机不敢冒险装测试版),结果让我有点意外:

  • 启动到桌面:8秒
  • 空闲内存占用:780MB

作为对比,GNOME Shell 空闲时通常要吃掉 1.4GB 内存。COSMIC 几乎只要一半。

当然,虚拟机环境下我确实注意到打开和关闭应用时有些卡顿。不确定是虚拟化的锅还是真实存在的问题,但看到一些裸机用户也报告了类似情况,所以可能不完全是我的环境问题。

COSMIC 主题定制系统

定制化:GNOME 做不到的,这里都有

GNOME 的哲学是"通过删减来实现简洁"。System76 的回应是"通过选项来实现强大"。

打开设置应用,你会发现:

  • Dock 位置:左、右、上、下,随你选
  • 面板配置:浮动、居中、自动隐藏,都行
  • 窗口管理行为:想怎么来怎么来
  • 主题系统:深色/浅色自动切换,强调色只出现在选中元素上(不会像某些系统那样到处都是)

我花了10分钟就配好了自己喜欢的工作流。Dock 放底部(没办法,macOS 用久了的习惯),Super 键打开启动器。这些在 GNOME 上要装三个扩展,而且每次更新都可能挂掉。

还有个视觉密度选项特别贴心:

  • 宽松:GNOME 风格的大间距
  • 舒适:默认,类似 Mint
  • 紧凑:信息密集型

平铺窗口:这才是杀手锏

说真的,在试用 COSMIC 之前,我对平铺窗口管理器一直无感。我不想所有窗口都被平铺,我喜欢用鼠标,我喜欢完整的桌面环境。

但 COSMIC 的做法改变了我的想法。

点击平铺小程序,点击"平铺当前工作区",搞定。这个工作区现在就是平铺的了。每个新窗口自动平铺。Super + 方向键在窗口间导航,Super + Shift 移动窗口。你甚至可以把窗口拖到一起创建标签组。

最妙的是:你可以同时拥有平铺和浮动的工作区

工作区1:平铺的终端、浏览器、文件管理器和笔记应用,用来写代码。工作区2:浮动窗口,VLC 全屏看视频,文件浏览器随便放。

在平铺工作区里,Super + G 可以让单个窗口浮动。需要一个计算器浮在平铺布局上面?Super + G。再按一次就平铺回去。

用了几个小时后,我已经离不开这个功能了。

说说不足的地方

三年开发不可能消除所有毛病,诚实地说几个问题:

原生应用比较基础

COSMIC 自带的应用都很简单。文件管理器有网格视图、列表视图、标签页、基本搜索,就这些。终端支持配置文件和透明度。文本编辑器很简约。如果你觉得 GNOME 的文件管理器功能都不够用,COSMIC 的默认应用会让你觉得更简陋。

没有扩展系统

这是故意的。System76 认为核心功能不应该依赖扩展。有小程序系统(剪贴板管理器、系统监视器、天气小部件),但不是 GNOME 那种扩展生态。

KDE 应用兼容性差

GNOME 应用能很好地跟随 COSMIC 的主题。KDE 应用?Flatpak 版本不跟主题但至少能用,仓库版本直接废了。Dolphin 不跟随深色模式,图标也坏了。如果需要 KDE 应用,用 Flatpak。

文档稀缺

目前主要靠 GitHub issues 和社区论坛。

COSMIC 使用 Rust 构建

为什么这件事很重要?

COSMIC 的意义超出了 Pop!_OS 用户群体。

它验证了 Rust 可以用于大规模 GUI 开发

在 COSMIC 之前,Rust 桌面开发意味着命令行工具、系统实用程序或小型应用。最大的 Rust GUI 项目要么是实验性的,要么范围有限。

现在我们知道了:

  • Rust 可以处理复杂的 GUI 应用(不只是 CLI 工具)
  • iced 工具包已经可以用于桌面级项目
  • 内存安全不需要牺牲性能
  • 一个小团队(System76 的桌面团队不到20人)可以构建完整的桌面环境

它打破了 GTK/Qt 的二十年垄断

25年来,Linux 桌面意味着 GTK 或 Qt,GNOME 或 KDE。COSMIC 引入了第三条路:用 Rust 写,基于 iced,独立于两大工具包。

我不是说 COSMIC 会取代 GTK 或 Qt,那不现实。但它证明了替代方案是可行的。其他项目现在可以指着 COSMIC 说:“看,Rust 桌面开发在规模上是可行的。”

谁应该试试?

如果你符合以下情况,可以考虑切换到 Pop!_OS 24.04:

  • 想要平铺窗口管理但不想手动配置
  • 多显示器混合 DPI 设置在其他桌面上让你抓狂
  • 重视定制化,受够了 GNOME 的"我说了算"
  • 想在桌面上运行生产级 Rust 基础设施
  • 已经在用 Pop!_OS(这就是你等待的升级)
  • 开发者,想要一个干净、快速的环境(平铺功能对终端重度用户特别友好)
  • 对 GNOME 定制限制感到沮丧,但还没准备好接受 KDE 的复杂性

写在最后

System76 用三年时间证明了一件事:用现代语言重新思考桌面环境是可能的。

COSMIC 1.0 不完美,原生应用还很基础,文档还很稀缺,某些地方还需要打磨。但作为第一个版本,这个稳定性已经相当惊人了。我见过成熟桌面环境有更多毛病。

最重要的是,System76 有不同于社区项目的激励机制。他们卖预装 Pop!_OS 和 COSMIC 的笔记本和台式机。客户会要求修复 bug、添加功能、实现设置。如果 System76 不交付,他们会失去销售。这是质量的强制函数。

Linux 桌面的未来,可能比我们想象的更有趣。


觉得这篇文章有用? 如果你也对 Rust 或 Linux 桌面感兴趣,别忘了点赞、收藏,方便以后查阅。转发给你那些还在折腾 N 卡驱动的朋友,说不定能救他们一命。有问题或者想法,评论区见!