Project 01 · 个人项目 · 2026

QZdesk320 × 240 桌面 AI 终端

把对话、技能、提醒、专注、设备控制和 Windows 桌面连接收进一块 320 × 240 触控屏。Rust 核心 + 自绘界面 + 四套主题,Windows 侧用 MCP 连接器把桌面交给设备,默认只读、授权后才放开控制。

Rust 核心 嵌入式 GUI MCP 320 × 240 触控
320×240
触控屏分辨率
04
套界面主题
09
个 MCP 工具
14
章实机手册
QZdesk 首页:状态栏、AI 助手卡片、暂无安排、天气与应用入口
图 01首页总览:AI 助手、当前安排、天气与应用入口,一屏之内

01形态

一块屏,装下六件日常的事

首页不是固定壁纸:有番茄钟在跑、有提醒快到,中间那张卡就换成那件事本身。

顶部状态栏显示时间与「本地工作台」,表示界面正在和本地核心通信;右侧是 Wi-Fi 与电池。往下依次是 AI 助手、当前安排、天气,以及进入应用中心的入口。屏幕没有常驻桌面和图标,一切按优先级排布:正在发生的事永远在中间。

应用中心把技能单列为一个工作区,其余六个工具按日常使用频率排列。列表纵向滚动,看到「时钟与天气」就到末尾了。

六个工具 · 一句话说明
性能监控CPU、内存、磁盘与温度常驻顶部四格,下面分概览 / 核心 / 资源 / 状态 / 进程五个标签逐层定位。
定时提醒一次或每日重复,可填日期;由核心侧计时,离开页面、重启设备都不丢。
番茄钟圆环表盘:中间剩余时间、外圈进度、底部轮次轨道,默认 25 / 5 / 4。
设备控制本机声音、背光、按键提示音,以及局域网内已发现的智能设备。
设置WLAN、声音与显示、安静时段、外观(四套主题)、关于。
时钟与天气桌面气象站:温度、湿度、风速、体感、降水、紫外线、最高最低、日出日落。
应用中心:技能工作区与六个常用工具入口
图 02应用中心:技能 + 六个工具
桌面气象站:当前天气与湿度、风速、体感等九项指标
图 03桌面气象站:九项指标一屏读完
为什么不是手机 App

手机能做的事远比这块屏多,但手机不在桌面上。这块屏的定位是抬头就能看见的一小块状态:现在几点、下一件事是什么、电脑在干什么、要不要专注一轮。

02实现

界面是画出来的,没有现成控件可用

320 × 240、2 英寸出头:卡片、滚轮、圆环、滑杆、开关全部自己排。

这个尺寸下,任何通用控件库的默认边距都会把版面撑爆。所以界面走自绘路线:坐标系按 320 × 240 硬性排版,字号、行高、圆角、触摸热区逐项定死;滚动、按压、页面切换都自己实现,不依赖平台控件。

设备上跑两个进程:核心 xiaozhi_linux_r 常驻,负责会话、技能、提醒、番茄钟与设备状态;界面 qzdesk_screen 只负责画和收触摸。两者通过本地接口通信,性能页可以分别看到它们的 CPU 与内存——排查「卡」的时候,第一件事就是分清是核心慢还是界面慢。

核心是唯一状态源。语音、设备界面和网页控制台读写同一份提醒与番茄钟数据,所以在设备上暂停的计时,网页里看到的也是暂停。

性能监控的进程标签:核心 xiaozhi_linux_r 与界面 qzdesk_screen 的 CPU、内存占用
图 04进程标签:核心与界面分开计量
两个进程的好处

界面崩了核心还在计时,重启界面即可恢复;核心重启时界面顶栏会立刻掉到「未连接」,不用猜是网络问题还是程序挂了。

03视觉

四套主题,靠颜色而不是靠换皮

只改颜色、材质与动效,不改功能路径——四套主题共用同一套布局和交互。

外观设置页:苔原、夜海、纸蓝、余烬四套主题并列,当前选中夜海
图 05外观页:四套主题并列,选中即有预览

苔原和夜海来自同一套逻辑:浅色冷灰配深青,暗色墨绿配薄荷;纸蓝更强调信息层级,余烬则把冷光压下去,适合夜里看。

苔原浅色 · 冷灰 / 深青。白天、明亮桌面、长时间阅读。
夜海暗色 · 墨绿 / 薄荷。夜间、低光环境。
纸蓝浅色 · 亮白 / 钴蓝。清爽,强调信息层级。
余烬暗色 · 暖灰 / 珊瑚。暖色环境,减少冷光刺激。

动效只有几条,但每条都有时长

主题切换做约 300 ms 的交叉淡化,底色、文字、描边和强调色一起过渡,不会整屏闪一下;按钮按下时轻微缩放并变色,约 120 ms,松开回弹;页面左右滑入、面板从右侧或底部滑入,用方向表达层级。

熄屏不是一刀切:无操作满 120 秒后开始渐暗,接下来 10 秒内用 smoothstep 曲线从当前亮度降到 1%。曲线两端更平缓,所以第一眼只是轻微变暗,最后也不会突然跳黑。触摸、按键或任何交互都会立即中止并恢复原亮度;提醒弹窗、配对对话框和通知中心打开时不熄屏。

设置 QZDESK_REDUCE_MOTION=1 可关闭非必要动画,只保留状态变化。

04能力

技能决定它是谁,陪伴能力决定它能陪你做什么

技能不是 App,而是一段会在会话开始时注入的角色与知识指令。

主技能在会话开始时把正文注入模型,决定身份、语气、回复格式与工作方法,只应该启用一个;备用技能只提供目录,模型需要时才检索正文,不会覆盖主技能的人格。没有设置主技能时对话照样能连,但页面会用红字提醒。

设备屏幕只负责选择和查看,新增、编辑、启停都在浏览器里完成:手机或电脑打开 http://<设备IP>:8080 进入技能控制台。改完保存后配置版本变化,下一次唤醒重建会话,新技能才生效。

八项陪伴能力

它们不是八个独立人格,也不会自动切换主技能:共用同一份对话上下文与设备工具,所以说话方式始终来自当前主技能。

05时间

提醒和专注都放在核心,界面关掉也在走

提醒由核心统一保存和推进,界面、语音与网页控制台读写同一份数据。

离开提醒页到点了照样触发,设备重启提醒也不会丢;到点后写入聊天记录并弹通知,开免打扰时只进通知中心、不弹窗——通知中心最多保留最近 8 条。

番茄钟以圆形表盘为核心:中间是剩余时间,外圈是进度,顶部是当前阶段,底部是轮次轨道。默认 25 分钟专注、5 分钟休息、4 轮,开始后给出预计结束时刻。

暂停就是停在当前秒数,不会继续按墙钟推进,再点继续从同一秒恢复——避免「界面还在走、实际已经暂停」的错觉。节律编辑里可以改专注分钟、休息分钟与轮次,也提供 25/5/4、45/10/2、15/5/4 三组预设,设置只影响下一次开始。

番茄钟专注进行中:14:59 剩余、圆环进度、第 1/4 轮与预计结束时刻
图 06专注进行中:圆环进度与轮次轨道
安静时段

可以设一段固定时间自动免打扰,结束时间早于开始时间就表示跨天(例如 22:00–08:00),系统自动识别跨午夜。

06连接

把 Windows 桌面交给设备,但控制权留在手里

WinMCP Connector 跑在 Windows 上:发现设备、完成配对、启动 MCP 引擎,只允许已配对设备用 Bearer token 调用工具。

AI 助手对话页:设备收到 Windows 上下文消息并回复当前前台窗口信息
图 07桌面上下文从连接器进入对话

连接器通过 UDP 广播发现局域网里的 QZdesk,设备屏幕弹配对框,核对校验码后选「拒绝」「仅查看」或「允许控制」。连上后在 http://<电脑IP>:8000/mcp 暴露 MCP 入口,请求需带 Authorization: Bearer <TOKEN>。

九个工具里只有 Snapshot 默认启用,其余全部要授权:读取桌面状态、窗口与可交互元素不修改任何东西,点击、输入、滚动、移动、快捷键、启动应用、查询控制状态、UIA 操作才需要「允许控制」。

九个 MCP 工具 · 初始状态
Snapshot默认启用 读取桌面状态、窗口与可交互元素,不修改桌面。
Click授权后 在指定坐标点击;会占用物理鼠标。
Type授权后 向当前焦点输入文本;会占用物理键盘。
Scroll授权后 滚动窗口或指定区域。
Move授权后 移动鼠标或拖拽;会占用物理指针。
Shortcut授权后 发送键盘快捷键。
App授权后 启动、切换与管理应用窗口。
ControlStatus授权后 查询当前控制状态。
UiAction授权后 通过 UI Automation 操作后台控件,优先不移动用户鼠标。

优先走 UI Automation,而不是抢鼠标

推荐让助手使用 UiAction:它通过 Windows UI Automation 找到控件并执行动作,不移动鼠标、不抢键盘焦点,适合你还在用电脑时做后台操作。物理输入类工具会接管鼠标键盘,只在设备已授权且本机空闲时使用。

还有一个 USER_CONTROL 门控:你一动手操作鼠标或键盘,控制权立刻交还给你;也可以在连接器界面点「停止访问」直接断开。

安全边界写在默认值里

连接器默认只读,只有设备端明确授权后才启用控制;token 由 Windows DPAPI 加密保存,IP 白名单只放行已配对设备。它不提供 TLS,因此只适合可信局域网,不要把 8000 端口映射到公网——这一点写在手册和程序说明里,而不是留给用户猜。

07取舍

知道哪里不做,比做完更难

下面几条都是主动砍掉或主动放慢的地方,也都写进了手册。

项目现状

整机已连续运行,固件 1.0.0,配套 WinMCP Connector 0.2.0(Windows 10 / 11)。相关说明整理成了 14 章、30 张实机截图的《QZdesk 使用手册》,可以直接下载。

想看得更细,手册里连每一页怎么操作都写了

14 章、30 张实机截图:从首页手势、技能配置、番茄钟节律,到连接器配对、九个 MCP 工具与故障排查,都是按真实设备界面整理的。

QZdesk Desk · 固件 1.0.0 · WinMCP Connector 0.2.0 黄海东 · 作品集 / 手写 HTML · CSS