← 返回
PROJECT DOSSIER
Initials · 按字母切换应用
独立设计与开发·2026·原生 macOS 应用
SwiftAppKitCGEventTapCLI

问题与取舍
我原先在 Hammerspoon 中使用按字母切换应用的脚本。把它独立成 Initials,是为了让这一项能力有自己的安装包、权限提示和设置入口,使用者不必先部署整套自动化环境。
范围保持明确:它负责打开、切换和隐藏应用,以及用字母面板提示映射;不尝试替代所有启动器或窗口管理器。
实现
- 纯状态机处理按键:事件回调只做是否放行、拦截或产生动作的判断,应用启动与切换在回调之外执行。
- 左右 ⌘ 分开配置:每侧独立控制按住与双击。左侧只接管明确指定的字母;如果映射与常见快捷键重叠,设置窗会提示。
- 不抢焦点的面板:双击后显示字母面板,按 Esc 或等待超时退出;普通组合键、长按和夹杂鼠标操作不会误算为双击。
- 一个配置源:图形界面与
initialsCLI 共用配置和规则,支持导入已有的 Hammerspoon rcmd 映射。
如何验证
公开源码包含按键状态机、动作选择、配置与导入的测试。构建脚本先运行测试再编译。界面截图由应用的离屏渲染模式生成,演示使用示例应用配置。
在自己的 Mac 上,可先给一个字母指定应用,再分别验证启动、切换和隐藏;随后检查左右 ⌘ 设置、面板取消和已有快捷键的行为。
当前可用范围
- macOS 14 及以上,Apple Silicon;中英文界面。
- 安装包使用 Developer ID 签名并通过 Apple 公证。
- 需要辅助功能权限;应用不记录或保存输入内容。
- 源码采用 MIT 许可,当前提供免费下载。