81

免费又强大的 macOS 自动化工具,Hammerspoon 可以让你少买很多 App

 5 years ago
source link: https://sspai.com/post/53992?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

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

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

推荐阅读:

使用方法

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

mYv2YfU.png!web 偏好设置

首次打开 Hammerspoon 后,偏好设置窗口自动打开,点击上图中 Enable Accessibility 授予辅助功能权限。此时的 Hammerspoon 并不具备任何功能,就如同 iOS 上尚未加入任何捷径的捷径 App 一样。我们需要在  ~/.hammerspoon/init.lua 中加入自己编写的配置脚本,并且点击 Hammerspoon 菜单栏图标并选择 Reload Config (重载配置),使配置生效。

推荐配置

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

awesome-hammerspoon configuration

下载地址: ashfinal/awesome-hammerspoon

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

  • 快捷键窗口管理
  • 桌面挂件,包含时钟、日历
  • 快捷键列表 Cheatsheet
  • Aria2 前端,可以快速添加下载任务,查看当前下载情况
  • 快捷搜索,类似于 Alfred,可搜索浏览器标签页、进程、词典、Emoji 等
UjueYbN.gif 图片来自该配置作者介绍

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

  • 使用  h/j/k/l  移动为上下左右的半屏
  • 使用 y/u/i/o (即 hjkl 上方按键)移动为左上/左下/右上/右下的四分之一窗口
  • 使用  c  居中,按下  =/-  进行窗口大小缩放
  • 使用  w/s/a/d  向上下左右移动窗口
  • 使用  H/J/K/L  向左/下增减窗口大小
  • 使用方向键  上下左右  移动到相应方向上的显示器
  • 使用  /  撤销、重做上一次操作
  • 使用  q  或  Esc  退出管理

配置使用方法:在终端中运行 git clone https://github.com/ashfinal/awesome-hammerspoon.git ~/.hammerspoon ,然后 在 Hammerspoon 中重载配置 就可以了。

点击查看中文说明及讨论:

Hammerspoon config

下载地址: wangshub/hammerspoon-config

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

  • 菜单栏显示近日天气,包含未来一周的天气、气温与风向等
  • Wi-Fi 自动脚本,通过 Wi-Fi 判断所在位置并做出相应的操作
  • 窗口管理,快速切换为二分屏、三分屏
  • 蓝牙耳机自动连接等
a22mIzQ.gif 图片来自该配置作者介绍

配置使用方法:在终端中运行 git clone https://github.com/wangshub/hammerspoon-config.git ~/.hammerspoon ,然后重载配置。

点击查看中文说明及谈论: https://www.v2ex.com/t/553241

HammerSpoon config file - by S1ngS1ng

下载地址: S1ngS1ng/HammerSpoon

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

  • 用快捷键将当前窗口移动至其它显示器,并全屏(可选)
  • 用快捷键任意调整当前窗口的大小
aIJreae.gif 图片来自该配置作者介绍

详细介绍(中文): https://github.com/S1ngS1ng/HammerSpoon/blob/master/README-cn.md

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

配置使用方法:在终端中运行 git clone https://github.com/S1ngS1ng/HammerSpoon.git ~/.hammerspoon ,然后重载配置。

其他配置

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

配置方案

功能

Braden1996/BradensPoon

划定区域打开终端、Spotify 提醒

ztomer/.hammerspoon

番茄计时器

andrewhampton/dotfiles

Gmail 新邮件提醒

tdlm/hammerspoon

菜单栏显示 GitHub PR

TwoLeaves/hammerspoon

桌面 / Space 管理

scottcs/dot_hammerspoon

电池状态提醒、系统休眠阻止、Hazel 代替等

agzam/spacehammer

Spacemacs 式的快捷键风格

你也可以访问 Hammerspoon 官网 Wiki 页面 查看更多配置方案,也可以在搜索引擎中进行搜寻。

自己动手写脚本

直接用别人的配置,难以非常妥帖地符合自己的需求。那么不如参考各种配置,规划编写我们自己的配置脚本。

如果对 Lua 语言不了解,可以看看 X分钟速成Y   网站上的中文教程 快速入门。此外,Hammerspoon 官方提供了一份 快速入门指南 ,围绕多个实际应用场景介绍了相关的 API 使用,并且给出了示例代码,也可以点击查看 完整的 API 文档

除了 Hammerspoon 自身提供的接口外,还有不少其它开发者贡献的 扩展 和  插件 (点击查看相应列表)。扩展为 Hammerspoon 加入了额外的 API,有些还被其最终合并进去,如 Spotify 控制利用私有 API 操作桌面(Desktop/Space)的扩展 。在 Hammerspoon 中插件被称为 Spoon,是使用 API 编写的较为完整的功能模块,基本上开箱即用,比如 Bingdaily 自动每天使用 bing 图片做壁纸,HSaria2 控制 Aria2 并提供一个面板可以添加任务,显示当前下载情况。

「我想玩这个,但是不会编程怎么办?」,别急,现在开始学习编程也不晚 :) 

> 下载少数派 客户端 、关注 少数派公众号 ,让你的工作更有效率 ⏱

> 特惠、好用的硬件产品,尽在 少数派sspai官方店铺


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK