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 项目页面 手动下载安装。

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

推荐配置

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

awesome-hammerspoon configuration

这份配置实现了这些功能:快捷键窗口管理

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

快捷键列表 Cheatsheet

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

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

其中窗口管理与常见的快捷键操作类型不同,比较有意思:按下快捷键 ⌥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

这份配置实现了这些功能:菜单栏显示近日天气,包含未来一周的天气、气温与风向等

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

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

蓝牙耳机自动连接等

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

HammerSpoon config file - by S1ngS1ng

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

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

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

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

其他配置

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

配置方案

功能

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

番茄计时器

Gmail 新邮件提醒

菜单栏显示 GitHub PR

桌面 / Space 管理

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

Spacemacs 式的快捷键风格

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

自己动手写脚本

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

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

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

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

python mac自动打电话软件_有了这款免费又强大的 macOS 自动化工具,让你少买很多 App...相关推荐

  1. python mac自动打电话软件_打电话周围太吵?这款软件为你过滤烦人的噪音

    原标题:打电话周围太吵?这款软件为你过滤烦人的噪音 在没有空调的拥挤车站感受人间炼狱的时候,朋友来了一通电话.每次碰到类似情形,对面都会问候一句:「你那边怎么这么吵?」 令人无奈的是,通话中的其他声音 ...

  2. python mac自动打电话软件_Python实现Mac版QQ半自动发送情话(用了这个,我追到了自己的女神)...

    来源:http://suo.im/68JhxB 前言之前追女神时候用的情话发送脚本,每次工作日上班开启电脑,就会唤醒QQ,然后发送一条情话给女神,自动唤醒QQ复制情话,不用担心遗忘,现在整理分享一下, ...

  3. python实现自动打电话软件_全自动手势联系软件 让你轻轻松松打电话

    电话号码超级多的童鞋们,由于手机里存储的电话太多,每次要找某个人的电话很难找,有木有同感的?小编今天像大家推荐一款新潮的帮助你轻松找到想要的电话的模式,有没有很想知道呢?其实小编本来是想卖个关子的,既 ...

  4. python实现自动打电话软件_用Python拨打电话

    用python拨打电话,先看小视频 跟selenium操作浏览器原理类似,这是用appium操作移动设备的一个自动化功能,自娱自乐,主要是通过小案例引出相关技术 一.环境配置: 1.安装 jdk 1. ...

  5. python好用的软件_【分享|10款超好用的辅助Python的软件,初学者请查收!】- 环球网校...

    [摘要]在这个科学技术高速发展的时代,越来越多的人都开始选择学习编程软件,那么首先被大家选择的编程软件就是python,也用在各行各业之中,并被大家所熟知,所以也有越来越多的python学习者关注Py ...

  6. mac 文字识别软件ocr_Mac平台上一款免费的OCR文字识别功能的屏幕截图软件Screen OCR...

    今天小编为大家带来Mac平台上一款免费的OCR文字识别功能的屏幕截图软件Screen OCR for Mac(屏幕截图OCR工具)​www.macdown.com .使用这款截图ocr识别工具可以帮助 ...

  7. sketch 流程图_眼前一亮!2款免费手绘风流程图绘制工具

    我在另外一篇文章:[一款让Python开发效率提升50%的工具包]画了几张手绘风格的流程图,文章发表之后有读者私信我: "这种风格的流程图好漂亮啊,请问是用什么工具画的啊?" 的确 ...

  8. python怎么自动抢红包软件_【一点资讯】超强大!教你用Python自动抢红包,再也不会错过任何一分钱...

    目录: 0 引言 1 环境 2 需求分析 3 前置准备 4 抢红包流程回顾 5 代码梳理 6 后记 0 引言 提到抢红包,就不得不提Xposed框架,它简直是个抢红包的神器,但使用Xposed框架有一 ...

  9. python自动写作软件_开发了一款写作软件(OSX,Windows),附带Electron开发指南

    断断续续写了个把月,终于在昨天完成了第一版- 笔落写作 一款帮助网络写手更方便地进行小说创作的PC软件,目前支持 OSX/Windows 名字灵感来自于杜甫的一首诗,前两句是: <寄李十二白二十 ...

最新文章

  1. 数据结构与算法之美day 6: 如何实现LRU缓存淘汰算法?
  2. 数据结构与算法基础-试题
  3. 推荐系统笔记:基于潜在因子模型的协同过滤(latent factor model)
  4. 北斗导航 | 卫星导航基础知识(伪随机噪声码)
  5. BeanFactory 和ApplicationContext 有什么区别?
  6. C语言常用头文件总结
  7. 工作80:块级元素的间隙问题
  8. (转)API SOCKET基础(一) TCP建立连接并通信
  9. Shell中字符串反转的六大方法
  10. 《How to Write and Publish a Scientifc Paper》个人笔记
  11. Bean被IoC容器销毁后还能使用吗?
  12. 多重网格、自适应网格和无网格
  13. 速达启动时显示“对象名ACCSET无效“
  14. 思潮涌动、静心前行----2020年度博客之星活动经历感悟
  15. linux的intel显卡驱动下载地址,英特尔®嵌入式媒体和显卡驱动程序(英特尔® EMGD)...
  16. 2020胡润80后白手起家富豪榜公布,掌门教育张翼强势登榜
  17. 如何把一个文件夹的文件分配到多个文件夹
  18. Java微信公众平台开发之群发接口(高级群发)
  19. 单商户商城系统功能拆解38—分销应用—分销订单
  20. ⭐算法入门⭐《动态规划 - 串匹配》困难02 —— LeetCode 72. 编辑距离

热门文章

  1. 世界是平的,都是骗人的
  2. 小众但意外觉得蛮好用的剪辑软件!纯良心分享
  3. GIBXChange上线MT5交易平台:MT5 LP MAM+5A对冲模式强势来袭
  4. 【数论】第1章 整数的可除性(1) 整除概念与带余除法(2) 素数
  5. 怎么开启搜狗高速浏览器的手动升级
  6. 一次教你超人气好喝咖啡的做法秘诀 | 埃德珈咖啡培训
  7. android 开发 移动网络优化,基于Android手机的移动通信网络优化数据采集与处理...
  8. 用什么工具上架ios app
  9. 黑客发现Valve Source引擎存在漏洞 影响千万游戏玩家
  10. python获取sheet名称_从Python获取活动Excel工作簿的名称