跳转至

CFDesktop 桌面本体规划文档


一、项目背景与现状

1.1 项目定性

CFDesktop 是一个基于 Qt 6.8.3+ / C++23 开发的嵌入式桌面 UI 框架,遵循 Material Design 3 规范。当前版本(0.13.1)本质上是一个UI 组件库 + 底层架构,尚不构成完整的桌面环境。

本文档的目标是在现有基础上,规划桌面本体(Desktop Shell)的完整建设路径。

1.2 当前已完成的基础(可复用)

模块 完成度 可复用价值
工程骨架(CMake/CI/CD) 100% ✅ 直接复用
Material Design 3 Token 系统 100% ✅ 主题系统基础
ThemeEngine 主题管理 100% ✅ 桌面主题切换核心
AnimationManager 动画引擎 100% ✅ 桌面过渡动效基础
DPI 管理 100% ✅ 多分辨率屏幕适配
19个 P0+P1 控件 100% ✅ 桌面 Shell UI 基础
Google Test 测试框架 100% ✅ 持续集成基础
CPU/内存/GPU/网络检测器 90% ✅ 硬件探针基本完成
ConfigStore 配置中心 100% ✅ 四层存储,INI持久化
Logger 日志系统 100% ✅ 异步日志,多Sink
Windows 显示后端 100% ✅ Win32 DWM + HWND
WSL X11 显示后端 100% ✅ XCB + XWayland
显示服务器抽象 (IDisplayServerBackend) 100% ✅ 三模式抽象
窗口管理基础 (WindowManager/PanelManager) 80% ✅ 基础注册/查询/弱引用

1.3 当前关键缺口(桌面本体的前置依赖)

缺口模块 当前进度 对桌面本体的影响
输入抽象层(InputManager) 0% 🔴 所有交互的根基,必须最先完成
HWTier 硬件分级系统 0% 🔴 性能自适应的核心判据
CrashHandler 崩溃处理 0% 🟡 稳定性保障
IPC 进程间通信 0% 🟡 多进程架构依赖
P2 高级控件(27个) 0% 🟡 文件管理器等应用依赖

二、需求定义

2.1 目标用户与场景

主要面向: - 开源社区与个人开发者

典型使用场景: - 嵌入式 Linux 设备上运行一个完整的桌面环境 - 开发者在 Windows 上开发调试,部署到 Linux 嵌入式设备 - 设备厂商基于 CFDesktop 定制自己品牌的桌面风格

2.2 目标硬件规格

档位 硬件规格 行为策略
Low Tier 无独立 GPU,≤512MB RAM,ARM Cortex-A5/A7 关闭动效、简化阴影、降低合成层数
Mid Tier 弱 GPU,1-2GB RAM,ARM Cortex-A53/A55 基础动效开启,限制并发动画数量
High Tier 独立 GPU,≥4GB RAM,ARM Cortex-A72/A76+ 全量动效、模糊/透明效果全开

HWTier 系统是整个性能自适应的核心判据,必须在桌面本体启动前完成探测并注入全局配置。

2.3 屏幕与输入规格

  • 屏幕尺寸:5.5 ~ 10.1 英寸矩形触摸屏
  • 分辨率:变化范围较大,依赖现有 DPI 管理模块动态适配
  • 输入方式:触摸(单点/多点手势)+ 鼠标键盘(开发调试/PC风格主题)
  • 操作系统:Linux 主力部署;Windows 作为开发调试等价环境

2.4 渲染后端策略

采用多后端抽象层,运行时按环境选择:

渲染后端抽象层(RenderBackend Interface)
    ├── EGLFS / LinuxFB   → 嵌入式 Linux 直驱(主要部署环境)
    ├── Wayland Client    → 跑在现有 Wayland 合成器之上
    ├── X11               → 旧版 Linux 桌面兼容
    └── Windows (Win32)   → 开发调试等价环境

不自研 Wayland Compositor,优先保证嵌入式 EGLFS 直驱路径的稳定性。

2.5 应用模型

  • 多应用自由切换(类手机/PC 体验)为主,同时支持 Kiosk 全屏模式配置
  • 进程隔离:每个 App 独立进程,桌面 Shell 作为宿主进程(Compositor Process)
  • 系统服务:核心服务单进程(通知/窗口管理/输入路由),可选服务(媒体控制/设置服务)独立进程,服务以插件式形式挂载
  • IPC 机制:优先使用 Qt 自带机制(QLocalSocket / Shared Memory),如复杂度不可控再迁移 D-Bus

2.6 商业模式

MIT 开源协议,无商业授权限制。


三、桌面本体功能定义

3.1 核心子系统总览

CFDesktop Shell
├── 主题风格系统(Theme Style System)
│   ├── iOS 风格主题包
│   └── Windows 11 风格主题包
├── 窗口管理器(Window Manager)
├── 任务栏 / 导航系统(Shell Navigation)
├── 应用启动器(App Launcher)
├── 通知系统(Notification System)
├── 快捷控制中心(Control Center)
├── 系统设置(System Settings App)
├── 锁屏模块(Lock Screen)
├── 桌面壁纸与 Widget 系统(Desktop Layer)
├── 文件管理器(File Manager App)
├── 媒体控制服务(Media Control Service)
└── 硬件性能自适应引擎(HWTier Adaptive Engine)

3.2 双主题风格系统(核心特色)

CFDesktop 的核心差异化特性:支持整体主题包切换 + 组件级微调

iOS 风格主题包

特性 描述
导航范式 底部手势条(类 iOS Home Indicator)+ 底部 Tab Bar
启动器 网格图标桌面(类 iOS 主屏),支持图标拖拽排列
窗口过渡 全屏滑入/滑出(类 iOS App 打开/关闭动效)
任务切换 上滑调出卡片式任务切换器(类 iOS App Switcher)
控制中心 右上角下滑展开圆角磁贴面板
通知 顶部下滑展开通知列表
字体/圆角 大圆角卡片,SF Pro 风格字体层级
动效风格 弹簧动效(Spring Animation),响应灵敏

Windows 11 风格主题包

特性 描述
导航范式 底部居中任务栏(类 Win11 Centered Taskbar)
启动器 点击任务栏图标展开开始菜单(类 Win11 Start Menu)
窗口过渡 缩放淡入淡出(类 Win11 窗口动效)
任务切换 任务栏悬停预览缩略图 + Task View 全览
控制中心 右下角系统托盘区点击展开快捷面板(类 Win11 Quick Settings)
通知 右侧滑出通知中心面板(类 Win11 Action Center)
字体/圆角 中圆角,Segoe UI 风格字体层级
动效风格 时间曲线动效(Ease In/Out),流畅稳重

主题切换架构

ThemeStyleManager
    ├── loadThemePack(ThemePack::iOS / ThemePack::Windows)
    ├── 注入 ThemeEngine(颜色 Token)
    ├── 注入 NavigationPolicy(导航范式)
    ├── 注入 AnimationPolicy(动效策略)
    ├── 注入 LayoutPolicy(圆角/间距/字体)
    └── 触发 Shell 重新布局

主题包切换是运行时热切换,无需重启桌面进程。

3.3 窗口管理器

  • 浮动窗口模式(可拖拽/缩放,Windows 风格主题默认)
  • 全屏平铺模式(iOS 风格主题默认)
  • 分屏模式:左右/上下固定分割
  • 窗口层级管理:Z-order 管理,支持 Always On Top
  • 窗口动效:开启/关闭/最小化/恢复均有主题对应动效
  • 多显示器:基础支持(后期扩展)

3.4 Shell 导航系统

导航组件根据当前主题包动态切换形态,不硬编码:

NavigationPolicy Interface
    ├── iOS Policy   → BottomGestureBar + BottomTabBar
    └── Windows Policy → CenteredTaskbar + SystemTray

公共元素(跨主题): - 顶部状态栏(时间、网络、电量、通知角标) - 应用标题区(返回按钮/窗口控制按钮随主题变化)

3.5 通知系统

对标 iOS 通知中心 + Windows Action Center,要求完善

NotificationService(独立进程)
    ├── 通知接收 API(App 调用)
    ├── 通知持久化存储(ConfigStore 依赖)
    ├── 分组/折叠(按 App 归组)
    ├── 优先级分级(Critical / Normal / Silent)
    ├── 横幅弹窗(Banner,自动消失)
    ├── 通知中心面板(下拉/侧滑展开,可清除)
    ├── 角标计数(状态栏图标角标)
    └── 勿扰模式(Do Not Disturb)

3.6 快捷控制中心

对标 iOS Control Center + Windows Quick Settings:

  • 亮度滑条
  • 音量滑条
  • WiFi / 蓝牙 快捷开关
  • 截图
  • 勿扰模式切换
  • 主题风格快速切换入口
  • 自定义快捷瓦片(开发者可注册)

3.7 系统设置 App

对标 KDE System Settings + Windows 设置,内置完整设置 App:

分类 设置项
显示 分辨率、亮度、夜间模式、缩放比例
声音 音量、输出设备、提示音
网络 WiFi 列表、IP 配置、代理
蓝牙 设备配对管理
桌面 主题包切换、壁纸、动效开关
输入 触摸灵敏度、鼠标速度、键盘布局
应用 已安装应用列表、权限管理、默认应用
语言 语言/地区/时区(框架预留,后期实现)
辅助 字体大小缩放、高对比度(后期实现)
系统 关于本机、硬件信息(HWTier 展示)、日志查看

3.8 锁屏模块

  • PIN / 密码 / 图案三种解锁方式
  • 锁屏壁纸(独立于桌面壁纸,或继承)
  • 锁屏通知展示(仅 Normal 及以上级别)
  • 息屏超时自动锁屏(可配置时长)
  • 锁屏时媒体控制卡片(正在播放时展示)

3.9 桌面壁纸 + Widget 系统

壁纸: - 静态壁纸(Low Tier 及以上) - 动态壁纸(High Tier,视频/Lottie 动画,Mid/Low 自动降级为静态) - 主题联动:主题包切换时自动推荐配套壁纸

桌面 Widget(小组件): - 内置 Widget:时钟、日历、天气、系统资源监控 - Widget 框架:开发者可注册自定义 Widget(提供 Widget API) - Widget 编辑模式(长按进入,支持拖拽/缩放) - iOS 风格:Widget 与图标共存于网格桌面 - Windows 风格:Widget 区域独立(类 Win11 Widgets Panel)

3.10 文件管理器 App

对标 Windows 资源管理器,内置完整文件管理器:

  • 目录树导航(左侧面板)
  • 文件列表视图(图标/列表/详情切换)
  • 基础文件操作(复制/剪切/粘贴/删除/重命名)
  • 文件搜索
  • 压缩包浏览(后期)
  • 文件选择器对话框(供应用调用的系统级 API)

3.11 媒体控制服务

  • 系统级媒体会话管理(跨 App 统一控制)
  • 状态栏/锁屏媒体卡片(播放/暂停/上下曲)
  • 快捷控制中心媒体区块
  • 音量控制与输出设备切换
  • 蓝牙音频设备快速切换(依赖蓝牙模块)

四、架构分层设计

┌─────────────────────────────────────────────────────────┐
│                   Layer 7: Apps Layer                    │
│         文件管理器 / 系统设置 / 内置 Widget App           │
├─────────────────────────────────────────────────────────┤
│                   Layer 6: Shell Layer                   │
│   任务栏 / 启动器 / 通知中心 / 控制中心 / 锁屏 / 桌面层   │
├─────────────────────────────────────────────────────────┤
│               Layer 5: Theme Style System                │
│         iOS主题包 / Windows主题包 / ThemeStyleManager     │
├─────────────────────────────────────────────────────────┤
│               Layer 4: Window Manager                    │
│          浮动/全屏/分屏 / Z-order / 窗口动效              │
├─────────────────────────────────────────────────────────┤
│               Layer 3: System Services                   │
│   NotificationService / MediaService / InputRouter       │
├─────────────────────────────────────────────────────────┤
│               Layer 2: Base Infrastructure               │
│   InputManager / ConfigStore / Logger / IPC              │
├─────────────────────────────────────────────────────────┤
│               Layer 1: Hardware Abstraction              │
│      HardwareProbe / HWTier / RenderBackend              │
├─────────────────────────────────────────────────────────┤
│               Layer 0: Already Completed                 │
│   ThemeEngine / AnimationManager / DPI / P0 Controls     │
└─────────────────────────────────────────────────────────┘

设计原则: - 每层只依赖下层,严禁跨层调用 - Layer 5(主题风格系统)横切 Layer 4-6,通过 Policy 注入而非直接调用 - 系统服务通过 IPC 与 Shell 通信,Shell 不直接持有服务实现


五、开发路线图

节奏定义:不赶时间,架构分层优先,质量优先,每个 Phase 完成后需通过完整测试才可进入下一 Phase。


Phase A:基础设施补全(前置必做)

对应现有 Phase ½ 的未完成部分,是桌面本体的地基

A1 — 硬件探针完善 - GPU 检测器(DRM 设备枚举、OpenGL 上下文探测) - HWTier 枚举定义(Low / Mid / High) - HardwareProbe 主类(整合 CPU + 内存 + GPU 探测) - CapabilityPolicy 策略引擎(各档位默认配置集) - 单元测试覆盖

A2 — ConfigStore 配置中心 - 三层存储模型:系统默认 → 用户配置 → 运行时覆写 - 变更监听机制(Observer 模式) - 持久化序列化(JSON / QSettings 后端) - 线程安全访问 - 单元测试覆盖

A3 — Logger 日志系统 - 多 Sink 支持(文件 / 终端 / 系统日志) - 日志级别(Debug / Info / Warning / Error / Fatal) - 日志轮转(大小/时间) - 结构化日志(JSON 格式可选) - 单元测试覆盖

A4 — 输入抽象层 - InputManager 统一分发层 - TouchInputHandler(单点 + 多点手势识别) - KeyInputHandler(键盘/快捷键) - MouseInputHandler(鼠标 + 滚轮) - GestureRecognizer(Tap / LongPress / Swipe / Pinch / Pan) - FocusNavigator(焦点导航系统) - 单元测试 + UI 自动化测试框架搭建

A5 — IPC 基础层 - QLocalSocket 封装(进程间消息信道) - 消息序列化协议定义 - 服务注册/发现机制(ServiceLocator) - 基础测试覆盖

里程碑验收标准: - HWTier 可在目标设备上正确探测并输出档位 - ConfigStore 可持久化读写并触发变更通知 - 触摸/鼠标/键盘输入均可通过 InputManager 统一路由 - 两个进程可通过 IPC 层互相发送消息


Phase B:渲染后端抽象层

解决"同一代码跑在 EGLFS / Wayland / Windows"的问题

B1 — RenderBackend 接口定义 - RenderBackend 抽象接口(初始化/交换缓冲/截图/VSync) - 后端注册机制(运行时按环境选择)

B2 — EGLFS 后端 - Qt EGLFS 封装 - HWTier 联动:High Tier 开启 OpenGL ES 合成,Low Tier 降级 LinuxFB

B3 — Windows 等价后端 - Qt Windows 后端封装 - 开发调试辅助工具:屏幕尺寸模拟(5.5" / 8" / 10.1" 三档快速切换)

B4 — Wayland/X11 后端 - 跑在现有 Wayland/X11 合成器之上的支持(次优先)

里程碑验收标准: - 同一 Shell 代码在 Linux EGLFS 和 Windows 上均可启动 - 屏幕尺寸模拟器可在 Windows 上精确还原嵌入式屏幕效果


Phase C:P1 控件补全 ✅ 已完成 (2026-03-18)

Shell UI 所需的基础控件,与 Phase A/B 并行推进

已实现控件(12个):

优先级 控件 桌面依赖场景 状态
P1-1 Slider 亮度/音量控制
P1-2 Switch 设置开关项
P1-3 ProgressBar 下载/加载状态
P1-4 TabView 设置分类导航
P1-5 ComboBox 设置下拉选项
P1-6 ListView 列表显示
P1-7 TableView 表格显示
P1-8 TreeView 树形显示
P1-9 ScrollView 滚动视图
P1-10 Separator 分隔线
P1-11 SpinBox 整数输入
P1-12 DoubleSpinBox 浮点输入

待实现 P2 控件(文件管理器等依赖): - ToolBar / ToolButton - MenuBar / ContextMenu - StatusBar - Dialog / Card / Snackbar - Tooltip / Popover - ...


Phase D:窗口管理器

Shell 核心,建立在 Phase A/B 完成之后

D1 — 窗口模型 - WindowInfo(标题/图标/PID/状态/几何/层级) - 窗口状态机(Normal / Maximized / Minimized / Fullscreen / Closing) - Z-order 管理(层级排序)

D2 — 布局策略 - FullscreenPolicy(iOS 风格默认) - FloatingPolicy(Windows 风格默认,支持拖拽/缩放) - SplitPolicy(左右/上下分屏) - 策略运行时切换(随主题包切换自动切换默认策略)

D3 — 窗口动效 - 开启动效(按主题包:iOS 弹入 / Win 缩放淡入) - 关闭动效 - 最小化/恢复动效 - HWTier 联动:Low Tier 关闭窗口动效

D4 — 任务切换 - iOS 风格:上滑卡片式 App Switcher(缩略图预览) - Windows 风格:Task View 全览 + 任务栏悬停预览

里程碑验收标准: - 可在桌面上打开/关闭/切换至少 3 个并发应用窗口 - iOS/Windows 两种布局策略均可正常运作 - 窗口动效在 Mid/High Tier 流畅,Low Tier 自动关闭


Phase E:Shell 导航 + 任务栏

桌面的"骨架",用户每次使用都会接触

E1 — 状态栏(Status Bar) - 时间/日期显示 - 网络状态图标 - 电量图标(如有硬件支持) - 通知角标区 - 主题联动(iOS:居中时间;Windows:左侧时间 + 右侧系统托盘)

E2 — iOS 风格导航 - 底部手势条(Home Indicator) - 手势识别:上滑回主屏 / 上滑停留进 App Switcher / 左右滑切换应用 - 底部 Tab Bar(可配置应用快捷入口)

E3 — Windows 风格导航 - 居中任务栏(固定应用图标 + 运行中应用) - 系统托盘区(时间/通知图标/媒体控制入口) - 开始按钮(触发 App Launcher)

E4 — 应用启动器 - iOS 风格:网格图标桌面(图标拖拽/文件夹/多页滑动) - Windows 风格:开始菜单(最近使用 + 固定应用 + 全部应用列表) - 全局搜索(应用/文件/设置 统一搜索入口)

里程碑验收标准: - 两种主题的导航体系均可独立运作 - 主题包切换后导航形态热切换无需重启 - 应用启动器可浏览和启动所有已安装应用


Phase F:通知系统 + 控制中心

完善程度对标 iOS / Windows 11

F1 — NotificationService(独立进程) - 通知接收 API(Qt IPC) - 通知持久化(ConfigStore 依赖) - 优先级分级(Critical / Normal / Silent) - 勿扰模式

F2 — 横幅弹窗(Banner) - 顶部滑入展示,3秒自动消失(可配置) - 可展开操作按钮(最多2个快捷操作) - HWTier:Low Tier 仅显示文字,关闭展开动效

F3 — 通知中心面板 - iOS 风格:顶部下拉展开 - Windows 风格:右侧滑出面板 - 分组折叠(按 App) - 全部清除 / 单条清除

F4 — 快捷控制中心 - 亮度/音量滑条 - WiFi / 蓝牙 / 勿扰 / 截图 快捷开关 - 媒体控制卡片(当有音乐播放时展示) - 主题切换入口 - 自定义瓦片注册 API

里程碑验收标准: - 任意进程可通过 API 发送通知并在桌面正常展示 - 通知中心可展示、分组、清除通知 - 控制中心亮度/音量调节生效


Phase G:主题风格系统完整实现

双主题包的完整实现与热切换

G1 — ThemeStyleManager 核心 - ThemePack 数据结构定义(颜色/圆角/间距/动效/布局策略 完整集) - 主题包加载/卸载机制 - 热切换协调器(通知所有订阅方) - 主题包文件格式定义(JSON + 资源文件)

G2 — iOS 主题包 - 完整颜色 Token 集(对标 iOS 17 Human Interface Guidelines) - 布局策略注入(NavigationPolicy / WindowPolicy) - 动效策略注入(Spring Animation 参数集) - 图标风格(圆角矩形图标,带阴影) - 壁纸默认集(3-5 张高质量默认壁纸)

G3 — Windows 11 主题包 - 完整颜色 Token 集(对标 Windows 11 Fluent Design) - 布局策略注入 - 动效策略注入(Ease 曲线参数集) - Mica/Acrylic 效果(High Tier 开启,模糊半透明) - 壁纸默认集(3-5 张)

G4 — 组件级微调 API - 每个 P0/P1 控件暴露 StyleOverride 接口 - 用户可在主题包基础上微调单个控件样式 - 微调配置持久化(ConfigStore)

里程碑验收标准: - iOS / Windows 两套主题包均完整可用 - 运行时热切换主题无崩溃、无视觉撕裂 - 动效在各 HWTier 按策略正确降级


Phase H:系统设置 App

对标 KDE System Settings + Windows 设置(参见 3.7 节功能定义)

开发要点: - 作为独立进程启动,通过 IPC 调用各系统服务 - 设置项变更实时生效(不需要重启) - 设置界面本身也遵循当前主题风格 - 搜索功能:可在所有设置项中模糊搜索


Phase I:锁屏模块

参见 3.8 节功能定义

开发要点: - 锁屏运行在最高 Z-order 层,不可被其他窗口覆盖 - 解锁验证逻辑与凭证存储安全隔离 - 锁屏时输入路由只处理解锁相关输入 - 息屏策略与 HWTier 联动(Low Tier 更激进的息屏超时)


Phase J:桌面 Widget + 壁纸系统

参见 3.9 节功能定义

开发要点: - Widget 沙箱机制(Widget 崩溃不影响 Shell) - Widget API 设计需兼顾未来第三方开发者接入 - 动态壁纸严格限制 High Tier 才启用,防止低端设备性能问题


Phase K:文件管理器 App

参见 3.10 节功能定义

开发要点: - 依赖 P1 控件:ToolBar / ToolButton / StatusBar / ContextMenu - 文件选择器对话框作为系统级 API 独立封装,所有 App 均可调用 - 支持主题联动(iOS/Windows 风格自动切换界面布局)


Phase L:媒体控制服务

参见 3.11 节功能定义

开发要点: - MediaService 作为独立插件进程,可选挂载 - 与 NotificationService 协作(媒体通知类型) - 锁屏媒体卡片与锁屏模块联动


Phase M:P2 高级控件 + SDK 初稿

此阶段桌面本体已基本完整,开始向外暴露开发者接口

  • P2 控件按需实现(Dialog / Card / Snackbar / Tooltip 等,按使用频率排序)
  • C++ SDK 头文件整理与文档编写
  • QML 接口层(低门槛开发者接口,后期扩展)
  • 开发者文档网站更新(MkDocs)

六、依赖关系图

Phase A(基础设施)
    ├──→ Phase B(渲染后端)
    ├──→ Phase C(P1 控件)[可并行]
    └──→ Phase D(窗口管理器)
              └──→ Phase E(Shell 导航)
                        └──→ Phase F(通知 + 控制中心)
                                  └──→ Phase G(主题系统完整实现)
                                            ├──→ Phase H(系统设置)
                                            ├──→ Phase I(锁屏)
                                            ├──→ Phase J(Widget + 壁纸)
                                            ├──→ Phase K(文件管理器)
                                            └──→ Phase L(媒体服务)
                                                      └──→ Phase M(SDK + P2 控件)

可并行开发的模块: - Phase C(P1 控件)可与 Phase A/B 全程并行 - Phase H / I / J / K / L 在 Phase G 完成后可并行推进 - 文档编写、测试补全可贯穿全程


七、测试策略

7.1 测试分层

层次 内容 工具
单元测试 每个类/模块的独立测试 Google Test / GMock
集成测试 跨模块协作测试(如输入→窗口→通知) Google Test
UI 自动化测试 鼠标/触摸/键盘模拟操作流程 Qt Test / 自研
性能基准测试 帧率/内存/CPU 占用基线 自研 Benchmark 框架
HWTier 回归测试 模拟三档硬件环境验证降级策略 硬件 Mock + Docker

7.2 性能指标目标

指标 Low Tier 目标 Mid Tier 目标 High Tier 目标
Shell 启动时间 < 3s < 1.5s < 0.8s
应用启动时间 < 2s < 1s < 0.5s
桌面帧率 30 FPS(静态) 45 FPS 60 FPS
通知弹窗延迟 < 200ms < 100ms < 50ms
主题切换时间 < 500ms < 300ms < 200ms
Shell 内存占用 < 80MB < 150MB < 300MB

八、关键设计决策记录

决策 选择 理由
IPC 机制 Qt IPC(QLocalSocket)优先,必要时迁移 D-Bus 减少依赖,嵌入式环境 D-Bus 不一定可用
渲染后端 多后端抽象,不自研 Wayland Compositor 降低复杂度,嵌入式 EGLFS 直驱更稳定
主题切换 运行时热切换,Policy 注入而非硬编码 用户体验好,架构扩展性强
应用模型 进程隔离,Shell 作为宿主 稳定性更好,一个 App 崩溃不影响 Shell
动效策略 HWTier 联动,可配置不可强制关闭 低端设备保证性能,高端设备保证体验
SDK 时机 Phase M(桌面本体基本完整后)再开放 先把自己的桌面做好,API 稳定后再开放
商业协议 MIT 开源 最大化社区采用,无授权障碍

九、附录:参考项目

参考对象 学习要点
iOS / iPadOS 手势体系、弹簧动效、控制中心交互、通知分组
Windows 11 Fluent Design、任务栏居中、快捷设置面板、Action Center
KDE Plasma 高度可定制架构、系统设置结构、Wayland 集成方式
Android 通知优先级体系、快捷设置瓦片自定义、Widget 沙箱机制