Skip to content

Repository files navigation

绘心 Logo

绘心 Launcher Template

基于 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

第一阶段运行时链路(Phase 1)

第一阶段由 Python CLI 提供运行时事实,Tauri 负责队列与事件桥接,React 负责展示。

1. 运行时检查

本地先执行:

uv run python -m xnnehanglab_tts.cli inspect-runtime

Launcher 启动后会通过 Tauri inspect_runtime 命令读取这份检查结果,核心字段包括:

  • runtimeDriver(当前阶段固定为 uv
  • pythonPath(来自 config/runtime.tomlpython_path
  • environment(CPU/GPU、torch/cuda 可用性)
  • resources.genie-base(GenieData 资源状态)
  • managedPaths(可打开的受管目录)

2. GenieData 下载与串行队列

模型页点击“下载 GenieData”会触发 Tauri enqueue_download,任务进入串行队列:

  1. 先标记 queued
  2. 后台 worker 逐个执行下载
  3. 按阶段推送 preparing/downloading/verifying/completed|failed

可通过 CLI 单独校验资源状态:

uv run python -m xnnehanglab_tts.cli verify genie-base

下载目标目录为:

models/genie/base/GenieData

3. 控制台事件与日志导出

Tauri 会把运行时输出拆成两条事件通道给前端:

  • runtime:event:结构化任务事件(状态、进度、消息)
  • runtime:raw-log:原始文本输出

控制台页展示运行驱动、当前活动任务、队列长度和日志明细,并保留复制/清空/导出能力。

“导出日志”通过 Tauri export_console_logs 写入下载日志目录,方便问题复现与排查。

为什么单独做这个仓库

Important

主仓库 XnneHangLab 更偏完整系统。

而这个仓库更偏“桌面壳层模板”,目标不同:

  • 更轻
  • 更适合分发
  • 更适合做产品化桌面入口
  • 更适合复用到多个子项目

预览

日间界面 夜间界面
daily preview night preview

适用场景

  • 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 build

Rust 检查:

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                 # 前端依赖与脚本

About

XnneHangLab 启动管理器。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages