Nov 29, 2017
Hammerspoon Part 1: Window Manager / 窗口管理

Hammerspoon 一个 Mac OS 上的自动化工具。
这篇文章介绍使用 Hammerspoon 实现移动窗口和改变窗口大小的功能。市面上有挺多同类软件,比如付费的 Sizeup、Moom,免费开源的 Spectacle,Hammerspoon。最开始我用的是 Slate,但由于在新系统有内存泄漏等性能问题,最近换上了 Hammerspoon,同时发现有比其它软件优秀的地方。
创建 Hammerspoon 配置需要一点点 Lua 语言的知识,花几分钟阅读《X分钟速成Y》,了解一点基本的语法就可以动手了,当然也可以直接在前人的基础上改。
Part 1 是希望能复现我之前使用 Slate 的一些操作,并且把 Spectacle 的部分功能抄过来。
安装
去 Hammerspoon 网站下载 App 或者使用 brew 安装,先不启动软件。之后新建 ~/.hammerspoon 目录,并且在 .hammerspoon 下新建 init.lua 文件。
添加初始化内容:
1 | -- reload config |
上面的代码主要用于检测配置文件变更并且自动更新,或者手动 Ctrl + Alt + Command + R 可以手动载入配置。现在启动 Hammerspoon.app,会自动载入这个配置。
添加下面的内容在 init.lua 之后:
1 | hs.hotkey.bind({'ctrl', 'alt', 'cmd'}, 'Left', function() |
现在就可以在激活的窗口,按下 Ctrl + Alt + Command + Left 就可以让窗口靠左边收缩。
配置简单的窗口快捷键
接下来打算添加几个常用的快捷键:
Ctrl + Alt + Command + Left靠左,半边窗口Ctrl + Alt + Command + Right靠右, 半边窗口Ctrl + Alt + Command + Up靠上,半边窗口Ctrl + Alt + Command + Down靠下, 半边窗口
最大化、居中
Ctrl + Alt + Command + M最大化,铺满屏幕Ctrl + Alt + Command + C缩小,居中屏幕
三分之一、三分之二 (虽然看起来按键复杂,是一遍就觉得亲切了)
Ctrl + Command + Left靠左,三分之一窗口Ctrl + Command + Right靠右,三分之一窗口Alt + Command + Shift + left靠左,三分之二窗口Alt + Command + Shift + Right靠右,三分之二窗口
代码实现如下:
1 | function baseMove(x, y, w, h) |
保存并且重载配置后,就可以使用快捷键管理窗口啦。如果想自定义更加冷门的快捷键,可以参考官方提供的 按键映射表
最后
当然提供现成的代码,仓库地址: yantze/dotfiles/hammerspoon