# daoos-tools **Repository Path**: daoos_admin/daoos-tools ## Basic Information - **Project Name**: daoos-tools - **Description**: 通用应用程序非侵入式操作启动器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-08 - **Last Updated**: 2026-06-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DaoOS Tools - 工具配置管理与启动器 基于 Tauri + Vue3 + rdev 构建的桌面工具管理和全局快捷键监听应用。 ## 🎯 核心功能 - **工具配置管理**: 可视化管理常用工具的启动路径和快捷键配置 - **智能启动器**: 一键启动配置的工具,并跟踪进程状态 - **全局快捷键监听**: 基于 rdev 的非侵入式全局键盘监听 - **上下文感知**: 仅在特定窗口范围内触发快捷键,不影响其他应用 ## 🏗️ 技术架构 ### 前端技术栈 - **Vue 3**: 渐进式 JavaScript 框架 - **Vite**: 下一代前端构建工具 - **Tauri API**: 与 Rust 后端通信 ### 后端技术栈 - **Rust**: 系统级编程语言 - **Tauri 2.0**: 跨平台桌面应用框架 - **rdev 0.5**: 全局键盘钩子库 - **active-win-pos-rs 0.9**: 获取活动窗口信息 ### 核心特性 #### 1. 非侵入式监听 使用 rdev 实现全局键盘监听,按键事件会同时传递给: - Tauri 应用 (用于检测快捷键) - 操作系统和其他应用 (保证原有功能不受影响) #### 2. 进程管理 - 自动跟踪启动的子进程 PID - 实时监控进程状态 - 进程退出后自动清理 #### 3. 上下文感知 通过 active-win-pos-rs 获取当前活动窗口: - 判断是否在白名单内 (Tauri 或其子进程) - 仅在目标窗口触发业务逻辑 - 避免全局误触发 ## 📦 安装与运行 ### 环境要求 - Node.js 16+ - Rust 1.77.2+ - Windows / macOS / Linux (X11) ### 开发模式 ```bash # 安装依赖 npm install # 启动开发服务器 npm run tauri dev ``` ### 构建发布版本 ```bash # 构建应用 npm run tauri build ``` ## 🚀 使用说明 ### 添加工具 1. 点击"+ 添加新工具"按钮 2. 填写工具信息: - 工具名称 (如:MagicDraw) - 可执行文件路径 (如:C:/Program Files/.../app.exe) - 快捷键 (可选,如:Ctrl+Shift+U) - 说明 (可选) 3. 点击"添加"保存 ### 启动工具 - 在工具列表中点击"启动"按钮 - 工具启动后会显示运行状态和 PID - 再次点击可查看或管理进程 ### 编辑/删除工具 - 点击"编辑"按钮修改工具配置 - 点击"删除"按钮移除工具 ### 全局快捷键 - 配置的快捷键会在全局范围监听 - 仅在工具窗口活跃时触发 - 触发时会显示通知提示 ## ⚙️ 技术细节 ### 修饰键处理 rdev 的 `event.modifiers` 在不同平台表现可能不一致: - **Windows/macOS**: 通常比较准确 - **Linux**: 可能需要更细致的处理 进阶方案是维护修饰键状态机 (代码中已预留相关注释)。 ### 性能优化 回调函数采用轻量级设计: 1. 先检查 EventType 是否为 KeyPress 2. 再检查 Key 是否是目标键 3. 最后检查 modifiers 和调用 get_active_window() 4. 尽早 return,避免耗时操作 ### 权限要求 #### macOS 必须在"系统设置 -> 隐私与安全性 -> 辅助功能"中授权 Tauri 应用。 #### Linux - **X11**: 通常无需额外权限 - **Wayland**: 严重受限,建议切换到 X11 会话 #### Windows 需要管理员权限以进行全局键盘监听。 ## 📝 项目结构 ``` daoos-tools/ ├── src/ # Vue3 前端源码 │ ├── App.vue # 主组件 │ ├── main.js # 入口文件 │ └── style.css # 全局样式 ├── src-tauri/ # Rust 后端源码 │ ├── src/ │ │ └── main.rs # Rust 主程序 │ ├── Cargo.toml # Rust 依赖配置 │ ├── build.rs # 构建脚本 │ └── tauri.conf.json # Tauri 配置文件 ├── docs/ # 项目文档 ├── package.json # Node.js 依赖配置 └── vite.config.js # Vite 配置文件 ``` ## 🔧 开发指南 ### 添加新的快捷键支持 在 `src-tauri/src/main.rs` 中修改回调函数: ```rust let is_target_key = matches!(key, Key::YourKey); let has_modifier = event.modifiers.your_modifier(); ``` ### 自定义进程管理逻辑 修改 `launch_magic_draw` 函数,可以添加: - 启动参数 - 环境变量 - 工作目录设置 ## 💡 价值评价 ### 优势 1. **非侵入式设计**: 不影响原有应用功能,完美解决快捷键冲突 2. **跨平台支持**: Windows、macOS、Linux (X11) 全覆盖 3. **轻量高效**: Rust 后端性能优异,内存占用低 4. **现代化 UI**: Vue3 + Vite 提供流畅的开发体验 5. **精准控制**: 基于 PID 的白名单机制,避免误触发 ### 局限性 1. **Wayland 限制**: Linux Wayland 环境下功能受限 2. **权限要求**: macOS 需要辅助功能授权 3. **修饰键兼容性**: 某些平台 modifiers 可能不完全可靠 ### 适用场景 - ✅ 监听已有功能键 (如 Ctrl+S) 且不影响原功能 - ✅ 为特定应用定义全局快捷键 - ✅ 工具链管理和快速启动 - ❌ 定义全新的系统级热键 (建议使用 tauri-plugin-global-shortcut) ## 📄 许可证 ISC ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📧 联系方式 DaoOS Team