什么是 Hammerspoon?
这是一款功能强大的 macOS 自动化工具。Hammerspoon 的核心是操作系统与 Lua 脚本引擎之间的桥梁。赋予 Hammerspoon 强大功能的是一组扩展,可向用户公开特定的系统功能。
它能为我做什么?
您可以编写 Lua 代码,与 macOS API 进行交互,包括应用程序、窗口、鼠标指针、文件系统对象、音频设备、电池、屏幕、底层键盘/鼠标事件、剪贴板、位置服务、wifi 等。 如果您想探索 Hammerspoon 提供的选项,请查看入门指南和完整的 API 文档,以及已经预制好的名为 Spoons 的插件。通常情况下,您需要用 Lua 编写一个配置文件,将事件与操作连接起来。您可能想将键盘快捷键绑定到一系列窗口操作或 applescript 上。您可能想在 wifi 接口连接到家庭网络时运行一系列命令。你可能想在电池电量低于某一百分比时显示提示。你可能想做一些疯狂的事情,比如当 Mac 检测到你在巴黎时,让 iTunes 自动开始播放。
如何安装?
下载最新版本,然后将应用程序拖到 /Applications/ 。如果你使用的是旧版 Mac,且运行的不是最新版本的 macOS,请查阅我们的发行说明,了解与你的系统兼容的版本。
如何使用?
开箱后,Hammerspoon 什么也不做。您需要使用我们的 API 和标准 Lua API 在 ~/.hammerspoon/init.lua 中创建一个 Lua 脚本。如果您是 Hammerspoon 的新用户,请阅读入门指南,并参考完整的 API 文档。您可以在 lua.org 上了解更多关于 Lua 脚本语言的信息。
建议使用一段时间后自己写代码满足个性化需求。
配置一:awesome-hammerspoon configuration
GitHub:ashfinal/awesome-hammerspoon
这份配置实现了这些功能:
- 快捷键窗口管理
- 桌面挂件,包含时钟、日历
- 快捷键列表 Cheatsheet
- Aria2 前端,可以快速添加下载任务,查看当前下载情况
- 快捷搜索,类似于 Alfred,可搜索浏览器标签页、进程、词典、Emoji 等
桌面小部件
窗口操纵 Option + R
搜索 Option + G
aria2 前端 Option+ D
配置使用方法:在终端中运行 git clone https://github.com/ashfinal/awesome-hammerspoon.git ~/.hammerspoon,然后在 Hammerspoon 中重载配置就可以了。
配置二:Hammerspoon configGitHub:wangshub/hammerspoon-config这份配置实现了这些功能:
- 菜单栏显示近日天气,包含未来一周的天气、气温与风向等
- Wi-Fi 自动脚本,通过 Wi-Fi 判断所在位置并做出相应的操作
- 窗口管理,快速切换为二分屏、三分屏
- 蓝牙耳机自动连接等
天气菜单栏
剪贴板历史
音量快捷键
窗口管理
配置使用方法:在终端中运行 git clone https://github.com/wangshub/hammerspoon-config.git ~/.hammerspoon,然后重载配置。
配置三:HammerSpoon config file - by S1ngS1ngGitHub:S1ngS1ng/HammerSpoon这份配置实现了三方面的功能,包括快捷键窗口管理、播放器 VOX 控制以及 Vim 式的光标移动快捷键。其中的窗口管理,除了常规的全屏、居中与分屏,还能够做到这些:
- 用快捷键将当前窗口移动至其它显示器,并全屏(可选)
- 用快捷键任意调整当前窗口的大小
居中和最大化
快速布局到 1/2 屏幕
调整大小(以左边和上边为基准,调整右边和下边)
调整大小(以右边和下边为基准,调整左边和上边)
详细介绍(中文):https://github.com/S1ngS1ng/HammerSpoon/blob/master/README-cn.md作者还写了一篇相关的文章,除了使用说明外,也介绍了原理与所使用的 API,对于想要自己编写的读者会有些帮助。配置使用方法:在终端中运行 git clone https://github.com/S1ngS1ng/HammerSpoon.git ~/.hammerspoon,然后重载配置。
其他配置
此外,这里也收集了一些其他配置,并列出其中的亮点功能,看看有没有你感兴趣或需要的。