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

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

4.0 KiB
Raw Permalink Blame History

DeskFloat 开发进度

最后更新:2026-05-25

总体状态:MVP 完成

7 个里程碑全部完成,可运行/可构建,待真实环境联调与样式打磨。


里程碑详情

1. 项目骨架

  • package.json / tsconfig.json / vite.config.ts
  • src-tauri/Cargo.toml / tauri.conf.json / build.rs
  • src-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.rsAppState 结构 + data_path/ensure_data_file/read_state/write_state
  • 启动时若 data.json 不存在则写入默认值(含 2 个示例快捷方式)
  • commands.rsload_state / save_state 双向通道
  • useAppStore.tsZustand 全局 store + 300ms 防抖落盘
  • 启动 hydrate → store 落地 → ready 标志门控渲染

3. 任务列表

  • 工具栏触发按钮 TasksTrigger(含未完成数量徽标)
  • 展开面板 TasksPanel:输入框(回车新增)+ 列表
  • 单条任务:勾选、双击编辑、悬停显示删除/编辑按钮
  • @dnd-kit 拖拽排序
  • "清除已完成"批量动作

4. 自定义快捷按钮

  • ShortcutsBar:工具栏内横向滚动按钮区
  • ShortcutsPanel:管理面板(列表 + 增删改)
  • ShortcutEditor:编辑表单(名称 / 类型 / 目标 / 参数 / 工作目录 / 图标网格)
  • 4 种执行器:
    • url → 前端 @tauri-apps/plugin-opener
    • app / cmd / powershell → Rust runner.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.tsregister + 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 CSSgzip 后 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
  • 番茄钟"专注次数"统计(用户在初版选择不要)
  • 快捷方式拖拽排序
  • 多主题切换(浅色 / 高对比)
  • 多窗口/多个独立工具栏布局