这次把一个很老、但手感真的很特别的 macOS 触控板工具 Jitouch 重新整理了一遍:
- GitHub 仓库:GitHub - constansino/jitouch-arm64 · GitHub
- 产品主页:https://jitouch-arm64.vercel.app
- Release 下载:Release jitouch-arm64 v2.82.1-arm64.1 · constansino/jitouch-arm64 · GitHub
起因很简单:三指轻点绑定 Command+W,BetterTouchTool 这类现代工具当然能做,但实际触发手感总有点挑姿势。以前用过的 Jitouch 反而很神:三个手指只要轻点,不管手掌略微旋转、手指不是很标准,它都更容易识别;One-Fix Left-Tap / Right-Tap 这种一个手指固定、另一边轻敲的手势,也比很多通用触发器方案自然。
这次做的事情不是重写一个新识别器,而是尽量保留 Jitouch 原来的识别核心,把它迁移和包装成 Apple Silicon 友好的版本:
- 基于上游
JitouchApp/Jitouch的v2.82.1源码构建。 - 产物是 universal
arm64 + x86_64,在 Apple Silicon 上直接跑 ARM slice,不再依赖 Rosetta 跑 x86_64 主程序。 - 做成普通
Jitouch.app,用户下载 DMG 后拖到/Applications,打开一次,然后给 Accessibility 权限即可。 - 把原来的偏好设置面板嵌进 app 里,用于设置,但最终包里只保留一个运行时 app。
- 专门清掉了历史
.prefPane内嵌套Jitouch.app的结构,避免 Spotlight / 应用程序搜索里出现一排重复的 Jitouch。
为什么它会比很多方案“灵”?核心差异在设计哲学:
| 项目 | jitouch-arm64 | BetterTouchTool 这类通用工具 |
|---|---|---|
| 目标 | 触控板 / Magic Mouse 手势识别 | macOS 通用自动化平台 |
| 输入模型 | 直接吃 MultitouchSupport 的触点流,再跑自己的手形识别 | 更宽泛的 trigger/action 系统 |
| 三指轻点 | 短状态机,姿态容忍度高 | 容易受到系统手势、BTT 配置、触发条件影响 |
| 休息拇指 / 掌根 | Jitouch 源码里有专门过滤思路 | 依赖具体 trigger 和配置 |
| One-Fix 手势 | 一等公民,原生识别 | 往往只能用其他触发方式近似 |
| 资源形态 | 小而窄 | 大而全 |
本机测到的体积对比也很能说明问题:
| 指标 | jitouch-arm64 | BetterTouchTool |
|---|---|---|
| App bundle | 1.9 MB | 184 MB |
| 主可执行文件 | 319 KB | 98 MB |
otool -L 依赖行数 |
28 | 236 |
这不是说 BTT 不好。BTT 是一个巨大的自动化工具箱,能力范围完全不是一个量级;但如果只看“触控板某几个高频手势的触发手感”,Jitouch 的小而专反而是优势。
这次迁移里最有意思的一个坑是打包形态。老 Jitouch 时代更像是 “app + prefPane” 的桌面软件习惯,而我们想要的是今天更自然的安装方式:下载、拖进 Applications、打开。刚开始为了保留设置面板,把 .prefPane 直接塞进 app 资源里,结果 .prefPane 里面历史上又带了一个 Jitouch.app,于是 Spotlight 搜索就会看到多个 Jitouch。最后的包脚本明确删除这个嵌套运行时,只让外层 app 做唯一运行入口。
当前 Release 还是 ad-hoc 签名、未 notarize,所以第一次打开 macOS 可能需要在 Privacy & Security 里手动允许。后面如果要更像正式产品,可以继续补 Developer ID 签名和 notarization。
总的感觉是:有些老工具不是因为新工具更大、更现代就自然被淘汰。Jitouch 的源码很老,但它对触点流和手势姿态的理解很直接,这种“窄而准”的东西迁到 Apple Silicon 后,还是很有生命力。