8e9d108995
Tauri 2 + React:任务列表、快捷方式、番茄钟、系统托盘、钉子穿透模式等。 Co-authored-by: Cursor <cursoragent@cursor.com>
4.0 KiB
4.0 KiB
DeskFloat 开发进度
最后更新:2026-05-25
总体状态:MVP 完成 ✅
7 个里程碑全部完成,可运行/可构建,待真实环境联调与样式打磨。
里程碑详情
1. 项目骨架 ✅
package.json/tsconfig.json/vite.config.tssrc-tauri/Cargo.toml/tauri.conf.json/build.rssrc-tauri/capabilities/default.json(窗口/fs/shell/notification/global-shortcut 等权限)- 应用图标:用
mmx image generate生成紫蓝玻璃风格 256² PNG,再用npx tauri icon转出 ICO/ICNS/各分辨率 PNG - 透明无边框窗口配置(decorations: false, transparent: true, alwaysOnTop, skipTaskbar)
data-tauri-drag-region拖拽热区
2. JSON 持久化 + Zustand ✅
storage.rs:AppState结构 +data_path/ensure_data_file/read_state/write_state- 启动时若
data.json不存在则写入默认值(含 2 个示例快捷方式) commands.rs:load_state/save_state双向通道useAppStore.ts:Zustand 全局 store + 300ms 防抖落盘- 启动 hydrate → store 落地 →
ready标志门控渲染
3. 任务列表 ✅
- 工具栏触发按钮
TasksTrigger(含未完成数量徽标) - 展开面板
TasksPanel:输入框(回车新增)+ 列表 - 单条任务:勾选、双击编辑、悬停显示删除/编辑按钮
- @dnd-kit 拖拽排序
- "清除已完成"批量动作
4. 自定义快捷按钮 ✅
ShortcutsBar:工具栏内横向滚动按钮区ShortcutsPanel:管理面板(列表 + 增删改)ShortcutEditor:编辑表单(名称 / 类型 / 目标 / 参数 / 工作目录 / 图标网格)- 4 种执行器:
url→ 前端@tauri-apps/plugin-openerapp/cmd/powershell→ Rustrunner.rs::execute(带CREATE_NO_WINDOW防控制台闪烁)
- 27 个 lucide 图标白名单可选(避免引入全量包)
5. 番茄钟 ✅
pomodoroStore.ts:阶段(work/break)+ 剩余秒 + tick 逻辑PomodoroIndicator:工具栏指示器(脉冲点 + MM:SS)PomodoroPanel:开始/暂停/重置 + 进度条 + 可调工作/休息分钟- 阶段切换自动调用
notify_user发系统通知 - 监听
deskfloat:toggle-pomodoro自定义事件(响应全局快捷键)
6. 设置 + 全局快捷键 + 自启 ✅
SettingsPanel:置顶 / 透明度 / 自启 / 数据目录入口- 三个全局热键编辑(
showHide/newTask/togglePomodoro) useHotkeys.ts:register+unregisterAll,配置变更时重新注册- 透明度通过 CSS 变量
--bg-opacity实时刷新 - 置顶通过
set_always_on_top命令同步到窗口 - 开机自启使用
tauri-plugin-autostart
7. 打磨 ✅
- 折叠态(180×40)/ 正常态(560×56)/ 展开态(自适应)三档窗口尺寸动态切换(
set_window_size) - 抽屉式面板下滑动画
- 自定义 toggle / range 控件样式
- README + 当前 PROGRESS 文档
- 前端
tsc -b && vite build通过:bundle 245 KB JS / 17 KB CSS(gzip 后 77 KB / 3.6 KB) - 后端
cargo check通过
验证清单(手工 QA TODO)
下次需要在真机上跑 npm run tauri:dev 后逐项验证:
- 窗口透明 + 置顶 + 拖动正常
- 任务增删改查 + 拖拽排序持久化
- 4 种快捷方式分别执行成功(URL/notepad/cmd echo/PS)
- 番茄钟阶段切换通知到达
- 3 个全局快捷键在窗口失焦时仍生效
- 修改快捷键 → 旧热键释放、新热键注册
- 开机自启开关可来回切换
npm run tauri:build出 MSI / NSIS 安装包并能安装运行
后续可选增强(非 MVP)
系统托盘 + 右键菜单(show/hide/quit)✅ 已实现(src-tauri/src/tray.rs)- 番茄钟"专注次数"统计(用户在初版选择不要)
- 快捷方式拖拽排序
- 多主题切换(浅色 / 高对比)
- 多窗口/多个独立工具栏布局