Hero Image

MacOS 效率提升神器之 Hammerspoon

Jun 20, 20234 min read

Hammerspoon 是一个 macOS 上的自动化工具,简单来说它允许你通过 lua 脚本控制系统亮度、声音、鼠标、键盘、窗口、wifi 等...

怎么安装

可以直接在 GitHub Release 下载,解压后将程序拖入到 /Applications 文件夹中即可,打开后你需要授权系统辅助功能权限

怎么使用

Hammerspoon 会生成一个 ~/.hammerspoon/init.lua 文件,这便是编写脚本的地方,lua 是一个很简单的脚本语言,你可以在此处学习一下简单语法,而后可以跟着官方教程快速入门

一个 Hello World 示例

LUA

该脚本意思是按下 + + + W 时在屏幕上显示一句 Hello World!

Hammerspoon 对外暴露了大量 api,就像瑞士军刀一样,你可以在此处找到所有的 api 索引,至于能用它们实现什么就得看开发者了

Spoon

Hammerspoon 中有个 Spoon 概念,在此处学习更多, 它是为了便于用户间共享脚本而存在的,作者可以将自己的脚本封装成别人可调用的方式(类似插件),而后其他人便可将该 Spoon 集成进自己的脚本中, 你可以从此处访问到官方维护的所有 Spoons

为什么不是 Alfred 或 Raycast

AlfredRaycast 也是 macOS 上大名鼎鼎的软件,咋还需要一个 Hammerspoon 呢?

  1. Alfred 不能根据某个 App 活动触发某些任务,它更多使用场景是用热键触发某些任务
  2. Raycast 我感觉不好用,尽管它颜值高,但是它执行任务需要多一步这是最蛋疼的,况且我也不知道它是否可以执行自动化任务

它提升了我哪些效率

  • 自动根据 App 切换输入法 - 把 npm 打成 你配吗 可能每个前端人员都经历过吧
  • 输入法指示器 - 如果你像我一样偏爱全屏使用 App 并且还只使用系统输入法,那么你一定为不知道此时的输入法是中文还是英文而血压飙升过
  • 连上公司 wifi 后自动静音 - 你也不想前一晚看完片后忘关声音结果第二天到公司社死吧
  • 忽略粘贴限制 - 我只是想粘贴一下密码但是网站不让?它可以模拟系统输入事件绕过限制

目前我只用它实现了这些个功能,最为常见的窗口管理功能我却没用到,因为我平时都是全屏使用 App,每个程序单独占用一个虚拟桌面空间,所以说根本用不到

你可以在这里访问到我的所有脚本 👉 https://github.com/xiaojundebug/hammerspoon-config

结语

自从用了 Hammerspoon 后我已经将原本的 Input Source ProShowyEdge 给卸载了

最后更新于 Jun 20, 2023

Built with Next.js • Deployed on Vercel
©2023 Xiaojun Zhou