Files
deskTopFloat/PROGRESS.md
T
congsh 8e9d108995 Initial commit: DeskFloat 桌面透明浮动工具栏
Tauri 2 + React:任务列表、快捷方式、番茄钟、系统托盘、钉子穿透模式等。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-26 20:01:43 +08:00

91 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# DeskFloat 开发进度
最后更新:2026-05-25
## 总体状态:MVP 完成 ✅
7 个里程碑全部完成,可运行/可构建,待真实环境联调与样式打磨。
---
## 里程碑详情
### 1. 项目骨架 ✅
- [x] `package.json` / `tsconfig.json` / `vite.config.ts`
- [x] `src-tauri/Cargo.toml` / `tauri.conf.json` / `build.rs`
- [x] `src-tauri/capabilities/default.json`(窗口/fs/shell/notification/global-shortcut 等权限)
- [x] 应用图标:用 `mmx image generate` 生成紫蓝玻璃风格 256² PNG,再用 `npx tauri icon` 转出 ICO/ICNS/各分辨率 PNG
- [x] 透明无边框窗口配置(decorations: false, transparent: true, alwaysOnTop, skipTaskbar
- [x] `data-tauri-drag-region` 拖拽热区
### 2. JSON 持久化 + Zustand ✅
- [x] `storage.rs``AppState` 结构 + `data_path/ensure_data_file/read_state/write_state`
- [x] 启动时若 `data.json` 不存在则写入默认值(含 2 个示例快捷方式)
- [x] `commands.rs``load_state` / `save_state` 双向通道
- [x] `useAppStore.ts`Zustand 全局 store + 300ms 防抖落盘
- [x] 启动 hydrate → store 落地 → `ready` 标志门控渲染
### 3. 任务列表 ✅
- [x] 工具栏触发按钮 `TasksTrigger`(含未完成数量徽标)
- [x] 展开面板 `TasksPanel`:输入框(回车新增)+ 列表
- [x] 单条任务:勾选、双击编辑、悬停显示删除/编辑按钮
- [x] @dnd-kit 拖拽排序
- [x] "清除已完成"批量动作
### 4. 自定义快捷按钮 ✅
- [x] `ShortcutsBar`:工具栏内横向滚动按钮区
- [x] `ShortcutsPanel`:管理面板(列表 + 增删改)
- [x] `ShortcutEditor`:编辑表单(名称 / 类型 / 目标 / 参数 / 工作目录 / 图标网格)
- [x] 4 种执行器:
- `url` → 前端 `@tauri-apps/plugin-opener`
- `app` / `cmd` / `powershell` → Rust `runner.rs::execute`(带 `CREATE_NO_WINDOW` 防控制台闪烁)
- [x] 27 个 lucide 图标白名单可选(避免引入全量包)
### 5. 番茄钟 ✅
- [x] `pomodoroStore.ts`:阶段(work/break+ 剩余秒 + tick 逻辑
- [x] `PomodoroIndicator`:工具栏指示器(脉冲点 + MM:SS)
- [x] `PomodoroPanel`:开始/暂停/重置 + 进度条 + 可调工作/休息分钟
- [x] 阶段切换自动调用 `notify_user` 发系统通知
- [x] 监听 `deskfloat:toggle-pomodoro` 自定义事件(响应全局快捷键)
### 6. 设置 + 全局快捷键 + 自启 ✅
- [x] `SettingsPanel`:置顶 / 透明度 / 自启 / 数据目录入口
- [x] 三个全局热键编辑(`showHide` / `newTask` / `togglePomodoro`
- [x] `useHotkeys.ts``register` + `unregisterAll`,配置变更时重新注册
- [x] 透明度通过 CSS 变量 `--bg-opacity` 实时刷新
- [x] 置顶通过 `set_always_on_top` 命令同步到窗口
- [x] 开机自启使用 `tauri-plugin-autostart`
### 7. 打磨 ✅
- [x] 折叠态(180×40)/ 正常态(560×56)/ 展开态(自适应)三档窗口尺寸动态切换(`set_window_size`
- [x] 抽屉式面板下滑动画
- [x] 自定义 toggle / range 控件样式
- [x] README + 当前 PROGRESS 文档
- [x] 前端 `tsc -b && vite build` 通过:bundle 245 KB JS / 17 KB CSSgzip 后 77 KB / 3.6 KB
- [x] 后端 `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`
- 番茄钟"专注次数"统计(用户在初版选择不要)
- 快捷方式拖拽排序
- 多主题切换(浅色 / 高对比)
- 多窗口/多个独立工具栏布局