MacOS 效率提升神器之 Hammerspoon

Jun 20, 20233 min read

This post was last modified 295 days ago, and some of the content may be outdated.

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

自用脚本

分享一些我自己的脚本

  • input-method-indicator - 给输入法设置一个指示器,这样应用全屏时也能一眼看到你此时的输入法是哪个了,可以取代 ShowyEdge
  • auto-switch-input-method - 根据 App 切换对应输入法,再也不用担心把「npm」打成「你配吗」
  • ring - 环形 app 启动器,快速访问常用 app,绝对能提升效率
  • caffeinated - 防止屏幕进入休眠
  • wifi-mute - 连接到公司 wifi 后自动静音扬声器
  • defeating-paste-blocking - 有些网站禁止粘贴,该脚本可以模拟系统输入事件绕过限制

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

结语

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

HITS

LAST UPDATED

Jun 20, 2023
Made withbyXiaojun