zzliu93-debug/FocuSD

GitHub: zzliu93-debug/FocuSD

一款 Windows 桌面「灵动岛」效率工具,以悬浮置顶面板形式整合待办、笔记、剪切板历史、媒体控制和 AI 编程状态指示灯,帮助用户减少窗口切换、保持专注。

Stars: 127 | Forks: 5

FocuSD Island Logo

FocuSD Island

一款 Windows 灵动岛效率工具,把待办、每日笔记、Codex 状态指示灯、剪切板历史和媒体控制放在屏幕顶部。

下载 Release · 反馈 Issue · 查看路线图

Version Platform Tauri React TypeScript

## 目录 - [关于项目](#关于项目) - [核心功能](#核心功能) - [技术栈](#技术栈) - [快速开始](#快速开始) - [使用说明](#使用说明) - [数据与存储](#数据与存储) - [项目结构](#项目结构) - [路线图](#路线图) - [参与贡献](#参与贡献) - [许可证](#许可证) - [致谢](#致谢) ## 关于项目 FocuSD Island 是一个 Windows 优先的桌面效率工具。它以透明、无边框、始终置顶的 Tauri 悬浮岛形式运行,平时停靠在主屏幕顶部,需要时展开为一个紧凑的工作面板。 如果你正在寻找一个适合 Windows 桌面的「灵动岛」工具,FocuSD Island 的目标不是做一个装饰组件,而是把每天最常用、最容易打断注意力的入口收进一个小岛里:今日待办、每日笔记、AI 编程状态、剪切板历史、媒体控制和外观设置。它也适合正在搜索 windows灵动岛、灵动岛 或 Windows Dynamic Island 替代方案的用户。 项目当前处于早期 MVP 阶段,优先适配 Windows。欢迎通过 Issue 和 PR 一起完善它。 ## 核心功能 | 功能 | 说明 | | --- | --- | | Windows 灵动岛 | 透明、无边框、始终置顶,支持折叠、展开、边缘收起和托盘隐藏。 | | 今日待办 | 新增、编辑、完成、删除任务,并可设置当前专注任务。 | | 任务延续 | 可在设置中开启“自动将未完成任务写入下一天”。 | | 拖动排序 | 可在设置中开启任务拖动排序,通过任务右侧把手调整顺序。 | | 每日笔记 | 记录当天补充信息,与待办一起形成每日工作记录。 | | 自动归档 | 跨天后自动归档上一天的待办和笔记。 | | Markdown 保存 | 将当天内容保存为 `YYYY-MM-DD.md`,方便接入本地笔记流。 | | Codex 状态指示灯 | 通过 Codex hooks 显示 AI 编程任务正在运行、已完成或需要查看。 | | 剪切板历史 | 记录文本和图片剪切板内容,支持收藏、复制、删除和清空。 | | 媒体控制 | 查看系统音频状态,控制播放/暂停、上一首、下一首。 | | 外观设置 | 调整透明度、缩放、顶部间距、主题色,并保存样式预设。 | | 系统集成 | 支持系统托盘菜单和 Windows 当前用户开机自启动。 | ## Codex 状态指示灯 FocuSD Island 内置 Codex 状态指示灯,适合把 AI 编程任务的运行状态放在桌面最显眼的位置。 你可以在设置中一键安装或修复 Codex hooks。Codex 正在处理任务时,悬浮岛会显示运行状态;任务空闲或完成后回到完成状态;如果任务失败,或者运行标记超过 10 分钟没有收到结束事件,悬浮岛会提醒你回来查看。 ### Codex hook 信任步骤 1. 在 FocuSD Island 中打开 **设置 → AI Agent 状态灯**,点击 **安装/修复**。 2. 重启 Codex,或新开一个 Codex 任务。 3. 在 Codex 中打开 **设置 → Hooks**;使用 CLI 时输入 `/hooks`。 4. 找到名称为 **Updating FocuSD agent status** 的两条 hook,确认脚本路径位于 `%APPDATA%\com.focusd.island\`。 5. 点击 **审核并信任 / Trust**,然后发送一条新任务测试状态灯。 如果 hook 已被信任但状态灯仍无效,请回到 FocuSD 再次点击 **安装/修复**,然后重启 Codex 后重试。 这个功能的目标很简单:不用反复切回终端或编辑器,也能知道 Codex 现在是在工作、已经完成,还是需要你接手。 ## 技术栈 - [Tauri 2](https://tauri.app/):桌面应用外壳与原生能力 - [React 19](https://react.dev/):前端界面 - [Vite 7](https://vite.dev/):前端开发与构建 - [TypeScript](https://www.typescriptlang.org/):类型约束 - [Rust](https://www.rust-lang.org/):窗口定位、托盘、文件写入、媒体控制和 Windows API 集成 - [lucide-react](https://lucide.dev/):界面图标 ## 快速开始 FocuSD Island 支持两种使用方式:直接下载 Release,或者通过源码自行构建。 ### 方式一:通过 Release 安装 适合只想直接使用应用的用户。 1. 打开本仓库的 [GitHub Releases](https://github.com/zzliu93-debug/FocuSD/releases/latest) 页面。 2. 下载最新版本的 Windows 安装包。 3. 推荐优先下载 `FocuSD Island_版本号_x64-setup.exe`。 4. 双击安装包,按提示完成安装。 5. 首次启动后,可在设置中配置 Markdown 保存目录、开机自启动、Codex 状态指示灯、剪切板历史和样式预设。 如果 Release 页面暂时没有安装包,可以使用下面的源码构建方式。 ### 方式二:通过源码构建 适合想参与开发、自己构建可执行文件,或暂时没有可用 Release 包的用户。 #### 环境要求 - Windows 10 / Windows 11 - Node.js - pnpm - Rust / Cargo - Microsoft Visual Studio Build Tools,并安装 C++ 工作负载 - Microsoft Edge WebView2 Runtime #### 构建步骤 git clone https://github.com/zzliu93-debug/lsland-1.git cd lsland-1 pnpm install pnpm tauri build 构建完成后,安装包通常位于: src-tauri/target/release/bundle/nsis/FocuSD Island_0.1.6_x64-setup.exe src-tauri/target/release/bundle/msi/FocuSD Island_0.1.6_x64_en-US.msi 原始可执行文件通常位于: src-tauri/target/release/focusd-island.exe 如果只想生成 release 可执行文件、不生成安装包,可以运行: pnpm tauri build --no-bundle 开发模式: pnpm tauri dev 只启动前端开发服务器: pnpm dev ### 常用命令 | 命令 | 说明 | | --- | --- | | `pnpm install` | 安装前端和 Tauri CLI 依赖 | | `pnpm dev` | 启动 Vite 前端开发服务器 | | `pnpm build` | TypeScript 检查并构建前端 | | `pnpm preview` | 预览前端构建产物 | | `pnpm tauri dev` | 启动 Tauri 桌面开发模式 | | `pnpm tauri build` | 构建 Tauri 桌面应用和安装包 | | `pnpm tauri build --no-bundle` | 仅生成 release 可执行文件 | ## 使用说明 ### 待办与每日笔记 - 在展开面板中添加今日待办,并将最重要的一条设为当前专注任务。 - 每日笔记适合记录当天补充信息、临时想法或任务背景。 - 跨天后,上一天内容会进入归档,方便回顾。 - 如需本地保存,可在设置中选择 Markdown 保存目录。 默认 Todo 保存路径为: %USERPROFILE%\Documents\FocuSD ### 剪切板 - 开启剪切板历史后,应用会记录文本和图片剪切板内容。 - 每条记录支持收藏、复制、删除。 - 收藏内容会保留在收藏栏目中,适合保存高频片段。 ### Codex 状态 - 在设置中安装或修复 Codex hooks。 - 状态文件位于 `%APPDATA%\com.focusd.island\agent-status.json`。 - 指示灯会根据 Codex 运行、完成、失败或超时状态变化。 ## 数据与存储 - 待办、每日笔记、归档、外观设置等前端状态默认保存在 `localStorage`。 - 配置保存目录后,今日内容可写入本地 Markdown 文件,文件名为 `YYYY-MM-DD.md`。 - 剪切板历史、Codex 状态等原生侧数据保存在应用数据目录。 - 开机自启动使用 Windows 当前用户注册表路径:`HKCU\Software\Microsoft\Windows\CurrentVersion\Run`。 ## 项目结构 . ├── src/ # React 前端 │ ├── App.tsx # 核心 UI、状态和 Tauri invoke 调用 │ ├── App.css # 主要样式 │ └── main.tsx # React 入口 ├── src-tauri/ # Tauri / Rust 桌面端 │ ├── src/lib.rs # 原生命令、窗口定位、托盘、媒体和文件保存 │ ├── src/clipboard_history.rs │ ├── src/main.rs # Tauri 应用入口 │ ├── capabilities/ # Tauri 权限能力配置 │ └── tauri.conf.json # Tauri 配置 ├── scripts/ # Codex 状态 hook 脚本 ├── docs/ # 补充文档 ├── package.json └── README.md ## 路线图 - [ ] 开发并适配 macOS 版本 - [ ] 完善安装包发布流程和自动更新能力 - [ ] 增强多显示器定位策略 - [ ] 增加更完整的快捷键与键盘工作流 - [ ] 扩展任务分类、标签和筛选能力 - [ ] 增加数据导入、导出和同步方案 - [ ] 优化剪切板历史、媒体控制和 Codex 状态指示灯体验 如果你有更适合 Windows 灵动岛、桌面效率工具或 AI 编程工作流的想法,欢迎在 Issue 中讨论。 ## 参与贡献 欢迎提交 Issue 和 Pull Request。 1. Fork 本仓库。 2. 创建你的功能分支:`git checkout -b feature/amazing-feature`。 3. 提交改动:`git commit -m "Add amazing feature"`。 4. 推送分支:`git push origin feature/amazing-feature`。 5. 发起 Pull Request。 提交 Issue 时,建议说明: - 系统版本 - 应用版本 - 复现步骤 - 预期行为 - 实际行为 - 截图或录屏 提交 PR 时,建议保持改动范围清晰,并在说明中写明验证过的命令。 ## 许可证 当前仓库暂未声明开源许可证。如需公开分发或协作复用,建议补充 `LICENSE` 文件。 ## 致谢 - README 结构参考 [Best-README-Template](https://github.com/othneildrew/Best-README-Template) - 感谢所有通过 Issue、PR 和反馈帮助改进 FocuSD Island 的用户
标签:可视化界面, 自动化攻击