外观
Hammerspoon:用脚本定制自己的 Mac
适合谁
Hammerspoon 把 macOS 的多种能力交给 Lua 脚本调用,适合愿意学习少量代码、把重复操作变成个人工具的人。例如,连接显示器后整理窗口,按快捷键切换工作布局,或根据设备状态显示提醒。它刚安装时不会自动完成这些任务,需要你写配置或加载扩展。项目官网介绍了它能访问的系统能力。
如果只是偶尔左右分屏,系统自带窗口操作更直接;如果想用可视化步骤完成文件处理,可先学系统“快捷指令”。Hammerspoon 的优势在于把多个事件和动作组织起来,代价是你需要理解并维护脚本。它也不是“安装后立即加速电脑”的工具。
获取与费用
从官方发布页面获取安装包,把解压后的 Hammerspoon.app 移到“应用程序”并打开。项目免费提供,代码采用 MIT 许可证,没有购买订阅才能使用本篇功能的要求。旧版 macOS 用户应核对所选发布包的系统要求,不能默认所有历史机型都适用。官方仓库列出了安装与许可信息。
首次启动后,菜单栏会出现图标。使用窗口控制等能力时,按提示到“系统设置 → 隐私与安全性 → 辅助功能”授予 Hammerspoon 相应权限;以后脚本需要其他能力时,再核对请求原因。不要为了试用先授予所有权限。
第一次使用:让快捷键显示一句提示
先从不会改文件、不会移动窗口的任务开始。配置文件是 ~/.hammerspoon/init.lua,其中 ~ 表示你的个人文件夹。已经有配置时先保存副本,下面的代码应追加到适当位置,不要覆盖原文件。
- 点击菜单栏 Hammerspoon 图标,选择
Open Config,用支持纯文本的编辑器打开配置。 - 首次没有配置时,创建上述位置的
init.lua。若需建立目录,可在终端执行mkdir -p ~/.hammerspoon;它只创建目录,-p允许目录已存在。使用“文本编辑”时先切换纯文本,并确认没有保存成.lua.txt。 - 写入下面的代码,保存文件。
- 回到菜单,选择
Reload Config。 - 同时按下 Command、Option、Control 和 H,检查屏幕是否出现
Hello。
lua
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "H", function()
hs.alert.show("Hello")
end)第一行把组合键与一段函数关联起来,中间一行显示提示,最后一行结束绑定。这里 alt 对应 Option。它显示的是 Hammerspoon 的屏幕提示,不是给联系人发送消息,也不会创建文件。流程来自官方入门教程,参数可查快捷键 API。
检查、退出与恢复
没有反应时,先确认 Hammerspoon 正在运行、文件名正确且已经重新加载,再检查菜单中的控制台错误。中文弯引号、漏括号、快捷键冲突都可能使结果不符;每次只修改一处,重新加载后再试。
删除刚加入的这段绑定并重新加载,就能撤销本次练习。从菜单退出 Hammerspoon 则会停止其中运行的快捷键和监听器;它不会自动撤回脚本已经发送的消息、改写的文件或其他外部操作。因此以后编写真正的自动化时,要先用临时数据验证,并为每个写入动作设计恢复办法。
网上的 Spoons 是可加载的扩展。导入前读清用途、来源和权限,不要把不理解的大段配置当作主题皮肤使用。尤其是包含 Shell 命令、网络请求或剪贴板读取的脚本,应知道它会处理什么内容。
练习与官方资料
把 Hello 改成“开始专注”,保存、重新加载并测试,再移除这段配置确认快捷键失效。完成一次添加和撤销后,再考虑第二个小任务。