[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-93574":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":17,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":18,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":23,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":45,"readmeContent":46,"aiSummary":10,"trendingCount":16,"starSnapshotCount":16,"syncStatus":47,"lastSyncTime":48,"discoverSource":49},93574,"StrokeMouse","Licoy\u002FStrokeMouse","Licoy","macOS 鼠标手势自定义工具。按住该手势的触发键（默认右键，也可中键 \u002F 侧键）绘制轨迹，匹配后执行快捷键、打开应用、窗口操作、媒体键、Shell \u002F AppleScript 等 ｜ A macOS mouse gesture customization tool. Hold down the trigger key to execute shortcuts, open applications, shell\u002FAppleScript, etc. after matching.","",null,"Swift",108,5,101,1,0,4,12,52.73,"GNU Affero General Public License v3.0",false,"main",true,[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"apple","automation","bettertouchtool","desktop-app","gesture","gesture-recognition","hammerspoon","mac-app","macos","macos-app","menu-bar","menubar","menubar-app","mouse","mouse-gestures","productivity","shortcuts","swift","swiftui","utility","2026-07-22 04:02:09","\u003Cdiv align=\"center\">\n  \u003Cimg src=\"design\u002Flogo\u002Fstroke-mouse-app-icon.png\" width=\"128\" alt=\"StrokeMouse\" \u002F>\n  \u003Ch1>StrokeMouse\u003C\u002Fh1>\n  \u003Cp>\n    \u003Cb>中文\u003C\u002Fb> · \u003Ca href=\".\u002FREADME_EN.md\">English\u003C\u002Fa>\n  \u003C\u002Fp>\n  \u003Cp>\n    \u003Ca href=\".\u002FLICENSE\">\u003Cimg alt=\"License: AGPL-3.0\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-AGPL%20v3-blue.svg\" \u002F>\u003C\u002Fa>\n  \u003C\u002Fp>\n\u003C\u002Fdiv>\n\nmacOS 鼠标手势自定义工具。按住**该手势的触发键**（默认右键，也可中键 \u002F 侧键）绘制轨迹，匹配后执行快捷键、打开应用、窗口操作、媒体键、Shell \u002F AppleScript 等。支持**全局或指定 App** 生效，手势配置可**导入导出**，本地运行、菜单栏常驻。\n\n## 界面预览\n\n| 手势配置列表 | 手势测试 |\n|:---:|:---:|\n| \u003Cimg src=\"website\u002Fdocs\u002Fpublic\u002Fscreenshots\u002F1.png\" width=\"400\" alt=\"手势配置列表\" \u002F> | \u003Cimg src=\"website\u002Fdocs\u002Fpublic\u002Fscreenshots\u002F2.png\" width=\"400\" alt=\"手势测试\" \u002F> |\n\n| 通用设置 | 权限与引擎状态 |\n|:---:|:---:|\n| \u003Cimg src=\"website\u002Fdocs\u002Fpublic\u002Fscreenshots\u002F3.png\" width=\"400\" alt=\"通用设置\" \u002F> | \u003Cimg src=\"website\u002Fdocs\u002Fpublic\u002Fscreenshots\u002F4.png\" width=\"400\" alt=\"权限与引擎状态\" \u002F> |\n\n| 新建手势 · 录制轨迹 | 应用范围 |\n|:---:|:---:|\n| \u003Cimg src=\"website\u002Fdocs\u002Fpublic\u002Fscreenshots\u002F5.png\" width=\"400\" alt=\"新建手势 · 录制轨迹\" \u002F> | \u003Cimg src=\"website\u002Fdocs\u002Fpublic\u002Fscreenshots\u002F6.png\" width=\"400\" alt=\"应用范围\" \u002F> |\n\n## 功能\n\n- **菜单栏常驻**：启停手势、打开设置、退出；图标随状态变色（正常 \u002F 暂停 \u002F 缺权限）；可**隐藏菜单栏图标**（与隐藏 Dock 同时开启会二次确认；隐藏后点 Dock 或再开 App 进入设置）\n- **手势库管理**：侧栏按**全局 \u002F 各 App** 组织（新建时预填作用域）；搜索 \u002F 筛选 \u002F 排序；多选批量启停删除；**JSON 导入导出**（重复项可跳过或强制导入）\n- **每条手势独立触发键**：默认右键；中键 \u002F 侧键可选；只监听已启用触发键\n- **每条手势独立目标**：可选按下触发键时的当前前台应用或指针位置所属应用；若存在普通窗口则同时锁定精确窗口，应用范围判断与目标相关动作始终复用该目标\n- **自由轨迹识别**：有序弧长重采样 + 1D\u002F2D 归一化 + 有限旋转；显著转折结构门控；按住触发键时实时轨迹 HUD\n- **App 作用域**：全局，或从已安装应用中选图标添加（支持搜索 \u002F 浏览 `.app`）\n- **多种动作**：快捷键、打开 App（图标选择器）、URL、媒体键、窗口操作、Shell \u002F AppleScript（语法高亮；AppleScript 含睡眠、锁屏、清废纸篓等预设与自定义）\n- **体验**：中英界面、深浅色（跟随系统 \u002F 强制）、登录启动、隐藏 Dock \u002F 菜单栏图标、Sparkle 应用内更新（失败可回落 GitHub Releases）\n\n## 系统要求\n\n- macOS 14 Sonoma 或更高\n- Xcode 16+（开发构建）\n- 任意鼠标即可（默认手势使用右键触发；可在手势编辑中改为中键等）\n\n## 权限\n\n| 权限 | 用途 |\n|------|------|\n| **辅助功能（Accessibility）** | 全局鼠标事件监听（CGEventTap）、快捷键注入、窗口 AX 操作 |\n| **自动化（Automation）** | 可选；AppleScript 控制其他 App 时按需授权 |\n\n首次启动或 **设置 → 权限** 可使用应用内**引导授权**：打开系统设置并拖入 StrokeMouse 完成开关。未授权时引擎不会假装在监听。\n\n## 构建与运行\n\n### 依赖\n\n```bash\nbrew install xcodegen\n```\n\n### 生成工程并打开\n\n```bash\n.\u002Fscripts\u002Fgenerate_project.sh\nopen StrokeMouse.xcodeproj\n```\n\n或在 Xcode 中直接 **Run**（Scheme: `StrokeMouse`）。\n\n### 命令行构建（推荐）\n\n固定产出到仓库下 `output\u002FStrokeMouse.app`，路径稳定，减少重复授权辅助功能。  \nDebug 显示名为 **StrokeMouse Dev**（Bundle ID `com.strokemouse.app.dev`），与正式版 **StrokeMouse** 可同时在辅助功能中授权，互不冲突：\n\n```bash\n.\u002Fscripts\u002Fbuild.sh           # Debug → output\u002FStrokeMouse.app（辅助功能中显示 StrokeMouse Dev）\n.\u002Fscripts\u002Fbuild.sh --open    # 编译完成后自动打开\n.\u002Fscripts\u002Fbuild.sh --release # Release（显示名 \u002F Bundle ID 与正式包一致）\n```\n\n### 发布打包\n\n按架构生成 ZIP、TAR.GZ 和 DMG，并验证签名、entitlements 与产物完整性（默认用固定自签身份 **`StrokeMouse Release`**，便于辅助功能跨 Sparkle 更新保留）：\n\n```bash\n# 首次本地：.\u002Fscripts\u002Fgenerate-codesign-cert.sh --import\nSPARKLE_PUBLIC_KEY=\"...\" ARCH=arm64 .\u002Fscripts\u002Fpackage-app.sh\nSPARKLE_PUBLIC_KEY=\"...\" ARCH=x86_64 .\u002Fscripts\u002Fpackage-app.sh\n```\n\n发布与 CI secrets 说明见 `RELEASING.md` \u002F `certs\u002FREADME.md`。\n\n版本发布使用 `.\u002Fbump.sh -v x.y.z [-p]`；同版本重打 tag 并推送用 `.\u002Fbump.sh -v x.y.z --force`。\n\n### 测试\n\n```bash\nxcodebuild -scheme StrokeMouse -configuration Debug test\n```\n\n## 使用说明\n\n1. 启动应用，菜单栏出现鼠标图标  \n2. 授予 **辅助功能** 权限，并在菜单栏选择「恢复手势」\u002F 确认已启用  \n3. 打开 **设置 → 手势**，查看默认手势或新建  \n4. 按住该手势的 **触发键**（默认右键；可在编辑手势时改为中键等），画出路径后松开  \n5. 匹配成功后执行绑定动作  \n\n> **短按 vs 手势**：触发键的按下与松开由手势引擎暂时捕获；未达到「最小滑动距离」便松开时会回放为正常点击，右键菜单仍可用。所有鼠标移动与拖动事件都会直接交给系统更新光标，手势引擎通过定时采样记录轨迹；前台 App 收不到配对的触发键按下与松开，因此绘制时不会打开或选中右键菜单。左键和未配置为触发键的鼠标按钮不受影响。\n\n> 快捷键会先激活锁定应用；若锁定了精确窗口，也会将该窗口置前，因此可能切换焦点或桌面空间。Finder 桌面等没有普通窗口的位置仍可执行快捷键和「隐藏应用」；关闭、最小化、缩放、全屏、居中仍需要精确窗口。短按不会激活目标。\n\n默认手势示例（均默认右键触发；不同手势可绑定不同按键）：\n\n| 手势 | 动作 |\n|------|------|\n| ↑ | Mission Control（⌃↑） |\n| ↓ | 应用程序窗口（⌃↓） |\n| ↓← | 最小化窗口 |\n| ↓→ | 关闭窗口 |\n| ↑→ | 打开 Safari |\n| →← | 播放 \u002F 暂停 |\n| ↑← | 打开 GitHub |\n\n## 配置文件\n\n路径：\n\n```text\n~\u002FLibrary\u002FApplication Support\u002FStrokeMouse\u002Fgestures.json\n```\n\n日常可用 **设置 → 手势** 多选后导出 \u002F 导入 JSON 包。整库可复制上述文件备份或手工编辑（需保持结构合法）。设置页可「在 Finder 中显示」。\n\n## 技术栈\n\n- Swift \u002F SwiftUI（macOS 14+）\n- 轻量 MVVM + Service\n- `CGEventTap` 全局鼠标事件\n- JSON 配置持久化\n- [LaunchAtLogin-Modern](https:\u002F\u002Fgithub.com\u002Fsindresorhus\u002FLaunchAtLogin-Modern) 登录启动\n- [Sparkle](https:\u002F\u002Fgithub.com\u002Fsparkle-project\u002FSparkle) 签名校验与应用内更新\n- XcodeGen 管理工程\n\n## 许可与免责\n\n本项目采用 [GNU Affero General Public License v3.0 (AGPL-3.0)](.\u002FLICENSE) 开源。\n\n本地工具，全局事件与脚本动作具有系统级能力。请仅添加你信任的 Shell \u002F AppleScript。作者不对误操作或权限滥用负责。\n",2,"2026-07-21 02:30:05","CREATED_QUERY"]