基于 XnneHangLab 的桌面启动器模板仓库
Note
这个仓库不是一次性的页面 Demo。
它的目标是沉淀一个可复用、可扩展、可打包成 exe 的桌面启动器模板, 用于承载 XnneHangLab 系列后续的语音、角色、陪伴型 AI 产品。
Tip
当前品牌方向为「绘心」。
当前 UI 风格参考绘世启动器,但仓库本身保持模板属性,后续可以继续演化为具体产品,比如:
- 绘心 Voice
- XnneHangLabTTS Launcher
- 其他桌面整合包入口
绘心 Launcher Template 是一个桌面启动器模板仓库,主要解决这几类问题:
- 桌面端统一入口怎么做
- 启动器 UI 怎么组织得更像产品
- 环境检查、资源下载、启动管理怎么抽象
- 如何把 HTML 原型演进成长期可维护的桌面工程
它适合继续承载:
- 模型管理
- 资源下载
- 环境诊断
- WebUI / 服务启动
- 陪伴型 AI 产品桌面壳
- 基于 Tauri 2 + React 18 + Vite 5 + TypeScript
- 桌面启动器布局已成型
- 已具备侧边栏导航、首页、设置页等基础结构
- 已接入窗口控制相关前端逻辑
- 适合继续扩展为完整 Launcher
第一阶段由 Python CLI 提供运行时事实,Tauri 负责队列与事件桥接,React 负责展示。
本地先执行:
uv run python -m xnnehanglab_tts.cli inspect-runtimeLauncher 启动后会通过 Tauri inspect_runtime 命令读取这份检查结果,核心字段包括:
runtimeDriver(当前阶段固定为uv)pythonPath(来自config/runtime.toml的python_path)environment(CPU/GPU、torch/cuda 可用性)resources.genie-base(GenieData 资源状态)managedPaths(可打开的受管目录)
模型页点击“下载 GenieData”会触发 Tauri enqueue_download,任务进入串行队列:
- 先标记
queued - 后台 worker 逐个执行下载
- 按阶段推送
preparing/downloading/verifying/completed|failed
可通过 CLI 单独校验资源状态:
uv run python -m xnnehanglab_tts.cli verify genie-base下载目标目录为:
models/genie/base/GenieData
Tauri 会把运行时输出拆成两条事件通道给前端:
runtime:event:结构化任务事件(状态、进度、消息)runtime:raw-log:原始文本输出
控制台页展示运行驱动、当前活动任务、队列长度和日志明细,并保留复制/清空/导出能力。
“导出日志”通过 Tauri export_console_logs 写入下载日志目录,方便问题复现与排查。
| 日间界面 | 夜间界面 |
|---|---|
![]() |
![]() |
- TTS / STT / AI 陪伴类产品启动器
- 模型管理与下载入口
- 资源检查与环境检查界面
- 本地整合包桌面壳
- XnneHangLab 系列桌面 UI 模板
Tauri 2
React 18
Vite 5
TypeScript
Vitest + React Testing Library
安装依赖:
npm install前端开发:
npm run dev桌面开发:
npm run tauri dev测试:
npm run test -- --run构建:
npm run buildRust 检查:
cargo check --manifest-path src-tauri/Cargo.toml.
├── src/ # 前端源码
│ ├── components/ # React 组件
│ │ └── ui/ # shadcn/ui 组件
│ ├── i18n/ # 国际化
│ │ ├── index.ts # i18n 配置入口
│ │ └── locales/ # 多语言文案文件
│ ├── lib/ # 通用工具函数
│ ├── pages/ # 页面组件
│ │ ├── home.tsx # 主窗口页面
│ │ ├── about.tsx # 关于页面
│ │ └── settings.tsx # 设置页面
│ └── main.tsx # 前端入口与基于 pathname 的页面选择器
├── src-tauri/ # Tauri / Rust 后端
│ ├── src/ # Rust 源码
│ └── tauri.conf.json # Tauri 配置
├── docs/ # 文档目录
│ ├── AUTO_UPDATE.md # 自动更新说明
│ ├── I18N.md # 国际化说明
│ └── GLOBAL_SHORTCUT.md # 全局快捷键说明
├── components.json # shadcn/ui 配置
└── package.json # 前端依赖与脚本

