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 的发布时间比预期延后,但这为团队提供了更多时间进行完善和测试。

关键组件更新

  1. 小程序(Applet)移植

    • 夜间模式小程序:使用 gammastep 和 wlr gamma control protocol
    • 工作区小程序:移除 X11 window ID 依赖
    • 键盘布局小程序:支持每窗口键盘布局切换
    • 图标任务列表:修复 Wayland 下的窗口分组
    • 任务列表:使用 libxfce4windowing 完全重写
  2. 截图功能重构

    • 从 Mutter 特定代码迁移到 grim + slurp
    • 截图对话框由 budgie-session 控制
  3. 会话管理改进

    • 新增启动脚本,自动配置环境变量
    • 集成 labwc 作为默认 Wayland 合成器
  4. 屏幕锁定和空闲管理

    • 使用 swayidle、gtklock 和 wlopm
    • 完全移除 budgie-screensaver(gnome-screensaver 的 fork)
  5. 主题和优化

    • 改进内置主题和高对比度主题
    • 修复各种颜色和对比度问题

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 的核心目标是实现模块化架构,分为两个主要层次:

  1. Budgie Core(核心平台)

    • 跨所有设备共享的库
    • 会话管理器:管理应用和服务生命周期
    • Budgie Services:通知、显示输出、空闲管理等
    • 通过 DBus 暴露功能,支持其他 RPC 机制
  2. 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_Modules

mermaid

B. 技术栈对比

组件Budgie 10Budgie 11
主要语言ValaC++(Qt6)
UI 框架GTK3/ GTK4Qt6 + Kirigami
插件系统libpeas待定(可能 QML + JS)
进程模型budgie-panel + budgie-daemon模块化 systemd 服务
显示协议X11 + WaylandWayland 为主
合成器多种支持labwc(默认)

C. Budgie 10 的技术痛点

  1. 紧耦合架构

    • budgie-desktop 仓库包含 shell、面板、Raven、设置等所有内容
    • 面板管理代码复杂,源于 X11 时代的设计
    • 面板自定义应用需要面板进程运行
  2. 插件分发困难

    • 使用 libpeas 实现插件支持
    • 每个发行版需要独立打包和维护第三方小程序
    • 发现机制困难
  3. 会话管理复杂

    • 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)的竞争格局变化不大
  • 成功与否取决于执行质量

六、相关链接

1. 官方资源

2. 相关技术

3. 社区资源


参考资料

  1. State of the Budgie: 2025 In Review and Cranking Budgie Up To 11
  2. BuddiesOfBudgie/budgie-desktop GitHub Repository
  3. Budgie Desktop Wikipedia)
最后修改:2026 年 01 月 25 日
如果觉得我的文章对你有用,请随意赞赏