跟手,而且平滑
方块是一张预渲染位图,由 GPU 移动——它是某个静态透明窗口里的一层,而不是被拖来拖去的窗口。仅这一个决定,就让「跟随指针」的开销只有移动窗口的零头。
macOS 14 或更高 · 菜单栏工具
Orca IM Tracker 在鼠标指针旁画出一个小圆角方块——拼、A、あ、한——当前输入法就显示在你本来就看着的地方。
即将上架 Mac App Store · 支持 Apple 芯片与 Intel
七个行为,全部在本机完成。
方块是一张预渲染位图,由 GPU 移动——它是某个静态透明窗口里的一层,而不是被拖来拖去的窗口。仅这一个决定,就让「跟随指针」的开销只有移动窗口的零头。
指针静止时一旦有按键,方块淡出;下一次移动指针它再回来。应用只向 macOS 询问「最后一次按键是什么时候」,从不问「按了哪个键」。
指针静止一小会儿后(默认 1 秒,可在设置里以 0.5 秒为步进调 0–10 秒,0 表示永不隐藏),指针旁的那个方块淡出,一切归于安静:不会留下任何定时器去唤醒 CPU。
不要辅助功能、不要输入监控、不要屏幕录制。用到的都是公开且无需授权的 API,所以既没有弹窗,也不需要向谁解释。
方块里的字取自系统自己输入法指示器的同一个标签,方块本身也会跟随浅色 / 深色外观。
没有 Dock 图标,不打开设置就没有任何窗口。开机自启只有一个开关。
切换到别的应用时,一个更大的方块(44 pt 而非 22 pt)会出现在它窗口的正中央——在你开口之前就告诉你输入法是哪个。它有自己的显示时长(默认 1 秒,可在设置里调 0.5–10 秒,没有「永不隐藏」),永远不会取消指针旁那个方块,两者可以同屏同时出现。每次切换只查一次窗口几何,不需要任何权限;但 macOS 不会告诉你同一个应用里哪个窗口是焦点窗口,所以同一个应用内用 ⌘` 换窗口不会有提示。
这是应用跑在 Mac 上的样子:一张方块的近景,一张完整的设置窗口。
真实构建的 CPU 开销,在一台接着 170 Hz 外接屏的 MacBook Pro 上测得。
| 场景 | CPU |
|---|---|
| 指针静止、应用非活动 | 0.00% |
| 指针移动,约 31 事件/秒 | 总计 1.28% · 我们的代码 0.20% |
| 170 Hz 跟随,含淡出与跳过提交 | 净 0.03% |
| 设置窗口打开(应用活动) | ≈ 0.5% |
M3 Max、macOS 27.2、170 Hz 外接屏。完整数据表(包括因为更重而被否掉的设计)在项目 README 里。
不需要。当前输入源通过公开的 Text Input Source API 读取;鼠标位置来自全局事件监听,而 macOS 投递这类事件本来就不需要授权。它同时监听前台应用的切换,并向 macOS 查询屏上窗口的位置矩形——同样都是公开、无需授权的 API。
不会。应用里没有任何网络代码——没有统计、没有崩溃上报、没有更新检查、没有账号。
支持。macOS 认识的所有输入源都能用;方块里的字取自输入法自带的标签,取不到时退回它的名称,所以冷门或第三方输入法也能显示出有意义的内容。
macOS 14 或更高。应用是 universal 二进制,在 Apple 芯片和 Intel Mac 上都是原生运行。
不需要。macOS 会把屏上窗口的位置告诉任何应用,这不需授权;只有窗口标题才属于屏幕录制范围,而这里从不需要标题。代价是「同一个应用里哪个窗口是焦点窗口」我们看不到,所以在同一个应用内用 ⌘` 换窗口不会出现提示;一个应用有多个窗口时,取最前面的那个。
1.0.0 版本已经构建并签名完毕。商店页还差账号侧的几步操作,一旦上线,这个页面就会直接指向 App Store。
有疑问,或者想更早试用? 写信给 kefroth@outlook.com