Budgie Desktop 架构转型技术分析:从 GTK 到 Qt6 的战略重构
一、新闻概述
1. 标题
Budgie Desktop 发布 2025 年度回顾与 Budgie 11 技术路线图
2. 发布时间
2026 年 1 月 11 日
3. 来源
Buddies of Budgie 官方博客
二、核心内容
1. 事件摘要
A. 主要内容
Buddies of Budgie 团队发布了 2025 年度回顾报告,宣布 Budgie 10.10 正式发布,同时披露了 Budgie 11 的重大架构转型计划。
B. 核心亮点
- Budgie 10.10 正式发布,完成两年多的 Wayland 迁移工作
- Budgie 11 将采用 Qt6 框架重写,放弃 GTK 技术栈
- 宣布迁移至自托管软件平台 Forgejo,脱离 GitHub
- 引入模块化架构设计,支持多种设备形态
2. 关键信息
A. 版本号
Budgie 10.10(2026 年 1 月 10 日发布)和 Budgie 11(开发中)
B. 重要数据
- Wayland 迁移耗时:超过 2 年
- Budgie 10 开发周期:约 10 年
- 代码仓库迁移:14 个 GitHub 仓库
C. 涉及产品
Budgie Desktop、Budgie Desktop Services、Raven 通知中心、labwc 合成器
3. 背景介绍
A. 前置版本
Budgie 10 系列始于约 10 年前,采用 GTK3 和 Vala 语言开发。Budgie 10.10 是该系列的最后一个主要版本,标志着 Budgie 10 时代的结束。
B. 相关上下文
Linux 桌面环境正在经历从 X11 向 Wayland 的全面迁移,同时桌面环境生态也在不断演进。Budgie 作为轻量级、简洁的桌面环境,一直以 Solus 项目的默认桌面而闻名。
三、详细报道
1. 主要内容
A. Budgie 10.10 完成 Wayland 迁移
2025 年是 Budgie Desktop 在 Wayland 迁移方面取得重大进展的一年。尽管 Budgie 10.10 的发布时间比预期延后,但这为团队提供了更多时间进行完善和测试。
关键组件更新:
小程序(Applet)移植
- 夜间模式小程序:使用 gammastep 和 wlr gamma control protocol
- 工作区小程序:移除 X11 window ID 依赖
- 键盘布局小程序:支持每窗口键盘布局切换
- 图标任务列表:修复 Wayland 下的窗口分组
- 任务列表:使用 libxfce4windowing 完全重写
截图功能重构
- 从 Mutter 特定代码迁移到 grim + slurp
- 截图对话框由 budgie-session 控制
会话管理改进
- 新增启动脚本,自动配置环境变量
- 集成 labwc 作为默认 Wayland 合成器
屏幕锁定和空闲管理
- 使用 swayidle、gtklock 和 wlopm
- 完全移除 budgie-screensaver(gnome-screensaver 的 fork)
主题和优化
- 改进内置主题和高对比度主题
- 修复各种颜色和对比度问题
B. Budgie 11 架构转型
技术栈迁移:Budgie 11 将采用 Qt6 和 Kirigami 框架重写,这是 Budgie 历史上最大的技术栈转型。
历史背景:
- 曾考虑使用 Qt5,但很快放弃
- 2018 年计划迁移到 GTK4,但 GTK4 尚未发布
- 甚至曾考虑使用 EFL(Enlightenment Foundation Libraries)
当前状态:
- Budgie Desktop Services(Qt6 编写)已在生产环境运行
- 负责 Budgie 10.10 中的 Wayland 输出管理和持久化配置
- Budgie Display Configurator 也在使用 Qt6 和 Kirigami 开发
C. 模块化架构设计
Budgie 11 的核心目标是实现模块化架构,分为两个主要层次:
Budgie Core(核心平台)
- 跨所有设备共享的库
- 会话管理器:管理应用和服务生命周期
- Budgie Services:通知、显示输出、空闲管理等
- 通过 DBus 暴露功能,支持其他 RPC 机制
Budgie Desktop(桌面表现层)
- 针对桌面、笔记本和 2 合 1 设备的图形环境
- 三大核心特性:可适应、易用、可扩展
D. 版本管理策略
采用三段式版本号 X.Y.Z:
X(主版本):锁定到特定的 Qt 主要版本
- Budgie 11 锁定到 Qt6
- Budgie 12 将使用 Qt7
- 类似 KDE Frameworks 和 Plasma 的版本策略
Y(特性版本):每半年 increment 一次
- 所有 Budgie 组件同步更新
- 允许(但不强制)ABI 破坏性变更
- 支持 N-3..N 的 ABI 范围
- ABI 总寿命约 2 年,与 Ubuntu LTS 对齐
- Z(补丁版本):错误修复和小改进
2. 技术细节
A. 架构对比
graph TB
subgraph Budgie_10["Budgie 10 架构"]
B10_GTK["GTK3 + Vala"]
B10_Panel["budgie-panel 进程"]
B10_Daemon["budgie-daemon"]
B10_Raven["Raven 通知中心"]
B10_Settings["Budgie Desktop Settings"]
B10_X11["X11 支持"]
B10_Wayland["Wayland 支持"]
end
subgraph Budgie_11["Budgie 11 架构"]
B11_Qt["Qt6 + Kirigami"]
B11_Core["Budgie Core 平台"]
B11_Desktop["Budgie Desktop 表现层"]
B11_Services["Budgie Desktop Services"]
B11_Session["会话管理器"]
B11_Modules["可插拔模块"]
end
B10_GTK --> B10_Panel
B10_GTK --> B10_Raven
B10_Panel --> B10_Daemon
B10_Panel -.支持.-> B10_X11
B10_Panel -.支持.-> B10_Wayland
B11_Qt --> B11_Core
B11_Core --> B11_Services
B11_Core --> B11_Session
B11_Desktop --> B11_Core
B11_Desktop --> B11_ModulesB. 技术栈对比
| 组件 | Budgie 10 | Budgie 11 |
|---|---|---|
| 主要语言 | Vala | C++(Qt6) |
| UI 框架 | GTK3/ GTK4 | Qt6 + Kirigami |
| 插件系统 | libpeas | 待定(可能 QML + JS) |
| 进程模型 | budgie-panel + budgie-daemon | 模块化 systemd 服务 |
| 显示协议 | X11 + Wayland | Wayland 为主 |
| 合成器 | 多种支持 | labwc(默认) |
C. Budgie 10 的技术痛点
紧耦合架构
- budgie-desktop 仓库包含 shell、面板、Raven、设置等所有内容
- 面板管理代码复杂,源于 X11 时代的设计
- 面板自定义应用需要面板进程运行
插件分发困难
- 使用 libpeas 实现插件支持
- 每个发行版需要独立打包和维护第三方小程序
- 发现机制困难
会话管理复杂
- budgie-session 和 budgie-desktop 之间的流程复杂
- 未充分利用 systemd 功能
- 缺少用户级服务支持
D. Budgie 11 设计目标
可适应:
- 复杂多任务能力
- 高级应用和工作区管理
- 多窗口平铺
- 不同操作模式(专注模式、游戏模式等)
易用:
- 上游桌面界面直观易用
- 新手用户友好
可扩展:
- 组件互换(如合成器、Raven 替代品)
- 扩展互换(面板或 Raven 内的扩展)
- 主题支持(包括跨平台主题)
3. 数据与事实
A. 开发时间线
- Budgie 10 Wayland 迁移:超过 2 年
- Budgie 10 系列总时长:约 10 年
- Budgie 10.10 发布:2026 年 1 月 10 日
B. 代码仓库迁移
- GitHub 仓库数量:14 个
- 新平台:Forgejo(自托管)
- CI/CD:Woodpecker CI + ARM64 构建器
C. 技术决策理由
- Qt6 生态系统成熟
- KDE Frameworks 提供优质库
- 模块化设计支持多种形态
- 为未来 10 年发展奠定基础
四、影响分析
1. 行业影响
A. 桌面环境生态
- GTK 和 Qt 两大阵营的竞争更加明显
- 模块化设计可能影响其他桌面环境的发展方向
- Wayland 生态系统进一步成熟
B. 技术趋势
- 桌面环境向 Wayland 迁移已成定局
- Qt6 在新兴桌面项目中越来越受欢迎
- 自托管和 CI/CD 自动化成为趋势
2. 用户影响
A. 现有用户
- Budgie 10.10 将进入维护模式
- 用户可选择继续使用 Budgie 10 或等待 Budgie 11
- Wayland-only 版本可能影响某些 X11 应用兼容性
B. 潜在用户
- Qt6 技术栈可能吸引更多 KDE 生态开发者
- 模块化设计便于发行版定制
- 跨设备形态支持扩大潜在用户群
C. 迁移建议
- 稳定用户建议等待 Budgie 11 的首个稳定版本
- 开发者可关注 Budgie Core 平台的 API 设计
- 发行版维护者需准备 Qt6 依赖
3. 技术趋势
A. 架构演进
- 从单体应用向微服务/模块化转变
- DBus 和 RPC 成为组件通信标准
- systemd 作为服务管理核心
B. 跨平台潜力
- Qt6 的跨平台特性可能使 Budgie 支持 Windows、macOS
- 模块化设计便于适配不同输入设备和交互方式
- 为 VR/AR、手机、平板等新形态预留空间
C. 生态影响
- 可能促进 Qt/QML 开发者社区增长
- 为 KDE 和 Budgie 生态提供更多协作机会
- XDG portal 等通用组件的标准化
五、各方反应
1. 官方回应
Buddies of Budgie 团队强调:
- Budgie 11 不仅仅是技术栈迁移,更是架构重构
- 代码已在生产环境验证,非纸上谈兵
- 期待社区参与塑造下一代桌面
2. 业内评价
A. 专家观点
- 从 GTK 到 Qt 是重大决策,但考虑到 Qt 生态成熟度是合理选择
- 模块化设计顺应现代软件架构趋势
- 自托管平台显示项目独立性
B. 社区反馈
- 部分用户担心迁移过程中的兼容性问题
- 开发者社区对 QML/JS 扩展支持表示期待
- 对脱离 GitHub 的决定褒贬不一
3. 用户反馈
A. 正面评价
- Wayland 迁移完成值得肯定
- 模块化设计提供更大灵活性
- 团队的透明度和长期规划获得认可
B. 关注点
- Budgie 11 发布时间表尚未明确
- 插件生态迁移的工作量
- 性能和资源占用是否优于 Budgie 10
C. 中立观察
- 这是 Budgie 自然演进的下一步
- 与其他桌面环境(GNOME、KDE Plasma)的竞争格局变化不大
- 成功与否取决于执行质量