typeNow:让你再也不被输入法坑了
你在 macOS 上用第三方输入法时,大概率遇到过这个场景:打完一长串英文,抬头一看全是拼音。macOS 经常悄无声息地把输入法从搜狗/鼠须管切回 ABC,而你毫无察觉 — 除非你把菜单栏那枚图标盯出个洞来。
于是花了几个晚上写了 typeNow。
它干什么
输入法一切换,屏幕中央弹出一个半透明浮层,告诉你当前输入法名字。1.5 秒后自动淡出,不抢焦点,不用你操作任何东西。看一眼就够了。
支持中/英/日/韩四种标识:中 EN あ 한,在状态栏也能看到缩写。
更多细节
位置记忆。 你可以拖动浮层到屏幕任意位置,下次它还会出现在那里。九宫格锚点定位也支持 — 上/下/左/右/四个角/居中,九选一。
跟随输入框。 开启后通过 Accessibility API 定位当前输入光标位置,浮层会出现在你正在打字的地方正上方。没授权辅助功能权限时自动降级为鼠标位置。
应用切换感知。 从微信切到终端、从浏览器切到 VS Code,浮层会弹出当前输入法状态。再也不用在每个窗口切换后先敲两个字试试是中文还是英文。
偏好设置
| 设置 | 默认值 |
|---|---|
| 显示时长 | 1.5s |
| 浮层大小 | 中 |
| 透明度 | 70% |
| 九宫格位置 | 居中 |
| 跟随输入框 | 关 |
| 聚焦时显示 | 开 |
| 开机自启 | 关 |
| 菜单栏显示 | 开 |
| 跟随系统外观 | 开 |
技术实现
纯 Swift + AppKit,没有第三方依赖。核心机制是利用 macOS 分布式通知中心监听 com.apple.Carbon.TISNotifySelectedKeyboardInputSourceChanged 通知 — 这是系统级输入法切换事件,延迟极低。
浮层用 NSPanel 实现,设置 nonactivating 避免抢焦点。淡入淡出动画用 NSAnimationContext,60fps 流畅。
项目结构精简,七个文件各司其职:
1 | Sources/typeNow/ |
安装
1 | git clone https://github.com/wlxweb/typeNow |
把生成的 typeNow.app 拖入 /Applications。macOS 13+ 可用,Intel 和 Apple Silicon 都支持。
开源的初衷
这个需求说大不大 — 就是个浮层提醒。但如果你每天在中文和代码之间来回切输入法,这个小东西省下的纠错时间积少成多。而且,它不弹窗不打扰、不联网不收集数据、内存占用不到 20MB。
GitHub: wlxweb/typeNow · MIT License




