引言
虽然 macOS 自带窗口管理这个功能, 但是实际上是用下来发现还是很难受的. 功能不足以满足自己的需求. 所以我常常发现自己在用鼠标拖动窗口和重新调整窗口大小. 长此以往, 我觉得这样效率实在太低, 恰好前阵子在看 MIT-Missing-Semester 的课, 里面提到了 hammerspoon 这个工具. 我去稍微了解了一下发现这工具真的不错.
什么是 hammerspoon ?
根据官方文档介绍, hammerspoon 是 macOS 上一个用于自动化的工具, 充当了 Lua 语言和操作系统的系统调用之间的桥梁. 也就是说我们可以使用 Lua 语言和 hammerspoon 提供的 API 来来完成很多自动化操作. 目前我还只看了窗口管理相关的.
因为要用到 Lua 语言, 但是我又根本没有接触过这个语言, 所以我大概跟着 Learn Lua in Y minutes 稍微学习了一下.
怎么管理窗口?
我主要想要有下面的几个功能
- 可以把窗口移动到屏幕的左边或者是右边(1 / 2 屏幕)
- 可以把窗口弄成全屏的
- 可以把窗口移动到左上角/右上角/左下角/右下角(1 / 4 屏幕)
- 把当前的窗口移动到屏幕*
我的方案主要是写了三个 *.lua
file(我放在了我的 github 仓库 dotfiles 里)