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
Alfred 和 Raycast 也是 macOS 上大名鼎鼎的软件,咋还需要一个 Hammerspoon
呢?
Alfred
不能根据某个 App 活动触发某些任务,它更多使用场景是用热键触发某些任务Raycast
我感觉不好用,尽管它颜值高,但是它执行任务需要多一步这是最蛋疼的,况且我也不知道它是否可以执行自动化任务
自用脚本
分享一些我自己的脚本
input-method-indicator
- 给输入法设置一个指示器,这样应用全屏时也能一眼看到你此时的输入法是哪个了,可以取代 ShowyEdgeauto-switch-input-method
- 根据 App 切换对应输入法,再也不用担心把「npm」打成「你配吗」ring
- 环形 app 启动器,快速访问常用 app,绝对能提升效率caffeinated
- 防止屏幕进入休眠wifi-mute
- 连接到公司 wifi 后自动静音扬声器defeating-paste-blocking
- 有些网站禁止粘贴,该脚本可以模拟系统输入事件绕过限制
查看脚本源码 👉 https://github.com/xiaojundebug/hammerspoon-config
结语
自从用了 Hammerspoon
后我已经将原本的 Input Source Pro
、ShowyEdge
给卸载了