Soke 桌面环境的设计规范文档集。桌面栈的全部实现(compositord、wmshell、inputd、Soke Display Server、Soke Display Manager、Soke Display Driver Model 的显示侧约定)以本规范为唯一设计依据;本规范与 CLAUDE.md 冲突时,以规则为准。
- 文档版本:1.0
- 定稿日期:2026-09-05
- 状态:设计定稿,未开始实现
桌面形态
┌──────────────────────────────────────────────┐
│ ╭─────────────────────────────╮ │
│ │ 状态区 · 时钟/日历 · 托盘 · ⏻ │ │ ← 顶部悬浮状态条(玻璃岛)
│ ╰─────────────────────────────╯ │
│ │
│ ┌─────────┐ │
│ │ 窗口 A │ │
│ ┌──────────┴─┬───────┘ │
│ │ 窗口 B │ │
│ └────────────┘ │
│ │
│ ╭──────────────────────╮ │
│ │ ◉ ◉ ◉ ◉ ◉ ⊕ ♫ ⚙ │ │ ← 底部居中悬浮 Dock(玻璃岛)
│ ╰──────────────────────╯ │
└──────────────────────────────────────────────┘
底边与顶边各留一条悬浮玻璃岛,中间整块留给窗口。两座岛都不贴满整宽,边缘露出壁纸,立体感来自液态玻璃折射而非色块填充。
文档索引
已定决策
| 决策点 |
结论 |
日期 |
| 桌面布局 |
底部居中悬浮 Dock + 顶部悬浮状态条,均为玻璃岛 |
2026-09-05 |
| 窗口控制按钮 |
标题栏右上三圆点,悬停着色 |
2026-09-05 |
| 主题基调 |
跟随壁纸自适应,深/浅双档玻璃 |
2026-09-05 |
| 第一期范围 |
仅设计文档,不写实现代码 |
2026-09-05 |
组件速览
| 组件 |
一句话职责 |
详设 |
inputd |
键鼠/触摸板事件流与手势识别 |
architecture.md |
Soke Display Server |
surface 协议端:缓冲提交、输入分发、输出协商 |
architecture.md |
wmshell |
窗口管理 shell,承载 Soke Window Manager 与 Dock/顶栏/通知中心 |
architecture.md |
compositord |
纯渲染合成器:Vulkan、液态玻璃、10bit 输出 |
architecture.md / liquid-glass.md |
Soke Display Manager |
显示管理器:登录与会话生命周期 |
architecture.md |
Soke Desktop Environment |
以上桌面侧全部的总称,.spk 可卸载组件 |
architecture.md |
Soke Display Driver Model |
显示驱动程序模型,驱动用 Zig 编写(ring-0) |
architecture.md |
红线(实现时不可越)
- 渲染链固定为:应用 → 合成引擎 → 显存帧缓冲 → GPU 驱动 → 完整显示输出。
- 全链路 10.7 亿色(10bit),任何环节不得引入调色板、VGA、VBE。
- 三大职责独立进程:输入
inputd、窗口管理 wmshell、合成 compositord,禁止回并。
- 液态玻璃逐项复刻 shuding/liquid-glass,禁止用「半透明 + 高斯模糊」冒充。
- 桌面 UI 用 Qt 6.x 编写,后端 Vulkan;Qt6 与 Vulkan 为完整移植的官方上游源码。
- 用户可见界面不出现品牌、团队、内核及由来信息;系统名称与版本号只出现在设置的「关于」页。