macOS 用 Hammerspoon 做自动化提效:安装、常用脚本与窗口管理

工具简介与适用场景

Hammerspoon 是一款面向 macOS 的自动化工具:你可以用 Lua 脚本把“窗口摆放、切换 App、快速输入、批量操作”等动作组合成快捷键或菜单项。它更像一套可编程的效率积木,适合愿意花 30 分钟做一次配置、之后长期受益的人。

工具地址:https://www.hammerspoon.org/(参考:https://github.com/Hammerspoon/hammerspoon

安装与首次启动(两种方式)

方式 A:官网下载 DMG,拖拽到 Applications 后启动。

方式 B:Homebrew 安装(已安装 brew 的情况下):

brew install --cask hammerspoon

首次启动后,菜单栏会出现一个小锤子图标。建议在 macOS 的“系统设置 - 隐私与安全性”里按提示授予必要权限(例如辅助功能/自动化),否则部分窗口控制能力可能不可用。

创建配置文件:把动作写进 init.lua

Hammerspoon 默认读取配置目录:~/.hammerspoon/。你只需要创建一个入口文件:

mkdir -p ~/.hammerspoon

touch ~/.hammerspoon/init.lua

然后在菜单栏图标里选择“Open Config”,编辑 init.lua,保存后点击“Reload Config”(或给它绑定一个快捷键)。

示例 1:一键 Reload 配置 + 弹出提示

把下面代码复制到 init.lua(注意:代码片段都用 <code> 包裹,便于发布页识别):

hs.hotkey.bind({"cmd", "alt", "ctrl"}, "R", function() hs.reload() hs.alert.show("Hammerspoon reloaded") end)

这样你每次改完脚本,按 cmd+alt+ctrl+R 就能立即生效。

示例 2:窗口管理(把当前窗口移动到左/右半屏)

最常见的提效就是“窗口摆放自动化”。下面示例把当前窗口移动到屏幕左半/右半:

local mash = {"alt", "cmd"} hs.hotkey.bind(mash, "Left", function() local win = hs.window.focusedWindow() if not win then return end win:moveToUnit(hs.geometry.rect(0, 0, 0.5, 1)) end) hs.hotkey.bind(mash, "Right", function() local win = hs.window.focusedWindow() if not win then return end win:moveToUnit(hs.geometry.rect(0.5, 0, 0.5, 1)) end)

你可以把 mash 里的组合键换成自己顺手的。习惯后,“窗口不乱、注意力不散”的收益非常直观。

示例 3:快速切换/启动常用 App

如果你经常在浏览器、笔记、终端之间切换,可以给常用 App 绑定热键:

hs.hotkey.bind({"alt"}, "1", function() hs.application.launchOrFocus("Google Chrome") end) hs.hotkey.bind({"alt"}, "2", function() hs.application.launchOrFocus("Visual Studio Code") end) hs.hotkey.bind({"alt"}, "3", function() hs.application.launchOrFocus("Terminal") end)

把应用名改成你的实际应用(可在 macOS “应用程序”里看名称)。

常见问题与排查思路

1)快捷键不生效:先确认 Hammerspoon 正在运行;再检查脚本是否报错(菜单栏 - Console)。

2)窗口移动失败:通常是权限问题,去“系统设置 - 隐私与安全性”里给 Hammerspoon 开启“辅助功能”。

3)多显示器布局不一致:建议先把最常用的规则做简单(左右半屏/最大化),稳定后再逐步扩展到网格布局。

延伸阅读与脚本资源

官方文档与 API 列表:https://www.hammerspoon.org/docs/

当你把 3-5 个高频操作固化成热键后,就能明显感受到“同样的电脑,用起来更像自己”。

用户评论 (0)

登录后参与讨论

立即登录 注册账号

暂无评论,快来抢沙发吧~

操作成功