MacOS 效率提升神器之 Hammerspoon

Jun 20, 20234 min read

此文最后修改于 856 天前,可能包含很多不再适用的废话,阅读需谨慎~

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 我感觉不好用,尽管它颜值高,但是它执行任务需要多一步这是最蛋疼的,况且我也不知道它是否可以执行自动化任务

自用脚本

分享一些我自己的脚本

  • auto_switch_input_method.lua - 根据 App 自动切换输入法,再也不用担心把「npm」打成「你配吗」
  • input_method_indicator.lua - 给输入法设置一个指示器,这样应用全屏时也能一眼看到你此时的输入法是哪个了,可以一定程度上代替 ShowyEdge
  • caffeine.lua - 防止屏幕进入睡眠
  • wifi_mute.lua - 连接到公司 Wi-Fi 后自动静音
  • defeating_paste_blocking.lua - 有些网站禁止粘贴,该脚本可以模拟系统输入事件绕过限制
  • ring.lua - 环形 App 启动器
  • magspeed_smooth_scrolling_fix.lua - 罗技无极滚轮鼠标回滚问题优化
  • arrow_keys_remapping.lua - 将 W / A / S / D 映射为方向键,右手无需频繁移动到右下角按方向键

查看脚本源码 👉 https://github.com/xiaojundebug/hammerspoon-config

结语

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

浏览量

最后修改于

Jun 20, 2023
Made withbyXiaojun Zhou