macOS 系统最令人难以割舍的特性之一就是丰富的自动化工具支撑:内置的 AppleScript 与 Automator,还有第三方软件 Keyboard Maestro、Hazel、Alfred、LaunchBar 等。这些工具不仅仅为我们免除了许多无聊的重复工作,节省了精力和时间,也让我们时不时可以体会一些解决问题与创造工具的乐趣。今天,我们来看一款更加强大、好玩的开源软件

  Hammerspoon

  。

  通过桥接操作系统与 Lua 脚本引擎,这款软件让我们能够用 Lua 脚本快速方便地与系统 API 沟通,获取各种信息或者进行控制,包括但不仅限于这些方面:窗口、键鼠、文件系统、音频、电池、屏幕、剪贴板、地理位置、Wi-Fi 等,基本上涵盖了系统中的各个方面。除此之外,创建菜单栏图标与菜单、绘制图形界面等自然也不在话下。如果这样的说明让你有些不太明白,那我们其实可将它大致看作macOS 平台上的 JSBox 或 Pythonista。

  阅读本文需要使用终端与 Git。少数派网站中有丰富的相关入门教程,可搜索访问。

  使用方法

  Homebrew 用户可以使用 cask 进行安装:,或者也可以在GitHub 项目页面手动下载安装。

  偏好设置推荐配置

  在动手编写代码之前,我们先来看看其他人是怎么使用 Hammerspoon 的,也可以直接使用他们公布的成熟配置。

  awesome-hammerspoon configuration

  这份配置实现了这些功能:

  快捷键窗口管理

  桌面挂件,包含时钟、日历

  快捷键列表 Cheatsheet

  Aria2 前端,可以快速添加下载任务,查看当前下载情况

  快捷搜索,类似于 Alfred,可搜索浏览器标签页、进程、词典、Emoji 等

  图片来自该配置作者介绍

  其中窗口管理与常见的快捷键操作类型不同,比较有意思:按下快捷键 后进入管理模式

  使用 移动为上下左右的半屏

  使用(即 hjkl 上方按键)移动为左上/左下/右上/右下的四分之一窗口

  使用 居中,按下 进行窗口大小缩放

  使用 向上下左右移动窗口

  使用 向左/下增减窗口大小

  使用方向键 移动到相应方向上的显示器

  使用 撤销、重做上一次操作

  使用 或 退出管理

  配置使用方法:在终端中运行 ,然后在 Hammerspoon 中重载配置就可以了。

  Hammerspoon config

  这份配置实现了这些功能:

  菜单栏显示近日天气,包含未来一周的天气、气温与风向等

  Wi-Fi 自动脚本,通过 Wi-Fi 判断所在位置并做出相应的操作

  窗口管理,快速切换为二分屏、三分屏

  蓝牙耳机自动连接等

  图片来自该配置作者介绍

  配置使用方法:在终端中运行 ,然后重载配置。

  HammerSpoon config file - by S1ngS1ng

  这份配置实现了三方面的功能,包括快捷键窗口管理、播放器 VOX 控制以及 Vim 式的光标移动快捷键。其中的窗口管理,除了常规的全屏、居中与分屏,还能够做到这些:

  用快捷键将当前窗口移动至其它显示器,并全屏(可选)

  用快捷键任意调整当前窗口的大小

  图片来自该配置作者介绍

  作者还写了一篇相关的文章,除了使用说明外,也介绍了原理与所使用的 API,对于想要自己编写的读者会有些帮助。

  配置使用方法:在终端中运行 ,然后重载配置。

  其他配置

  此外,这里也收集了一些其他配置,并列出其中的亮点功能,看看有没有你感兴趣或需要的。

相关文章