闲话macOS二:窗口管理之Hammerspoon

December 10, 2017 / macOS, customization, tool, alfred

在使用Mac时,不知你是否有过这样的想法?

加入前东家猿辅导后,平时开发主要使用macOS,在这之前,工作和个人使用主要是用Arch Linux,使用的窗口管理器是i3,它是一个平铺式窗口管理器。使用过iTerm的读者可能知道一个iTerm窗口可以开多个Tab,每个Tab可以水平或垂直切分成多个面板。类似地,i3使用Workspace(如同Desktop)来聚合窗口,每个Workspace可以通过水平或垂直切分成多个窗口。

将多个窗口平铺在一个屏幕上可以减少应用切换和增强多任务工作体验,我个人比较喜欢这种方式,将macOS作为主要操作系统之后,习惯性地去搜罗窗口管理应用。目前macOS上的窗口管理应用不少,参考iCHAIT/awesome-macOSjaywcjlove/awesome-mac推荐一些:

我曾经尝试过上面的列表的差不多一半应用,最后选择了Hammerspoon:一是因为我个人偏好高度可配置的应用,Hammerspoon配置是用Lua语言编写,有编程经验的读者学习Lua相信会很快,可参考Learn X in Y minutes ;二是 Hammerspoon背后是Lua脚本引擎,可以做的事情远不止窗口管理。没有编程经验或不想折腾的读者也可以从上述列表找一个无需配置开箱即用的应用。

安装与配置

https://github.com/Hammerspoon/hammerspoon/releases/latest 下载Hammerspoon-x.x.x.zip,解压缩后将Hammerspoon移动到Applications,安装就完成了。

因为Hammerspoon配置使用Lua语言来写,需要先安装Luz:

brew install lua

我目前使用的配置可见jeoygin/awesome-hammerspoon,在ashfinal/awesome-hammerspoon的基础上做了如下修改:

执行以下命令下载配置:

git clone --depth 1 https://github.com/jeoygin/awesome-hammerspoon.git ~/.hammerspoon

重新加载配置之后,在桌面上可以看到Hammerspoon显示的日历。

快捷键

目前已支持以下的快捷键:

模式切换

除了以上快捷键,还可以按 ⌘ + space 唤出如下图所示的Main Mode来进行其它操作。

按A进入Application Mode:

按I进入Timer Mode:

按R进入Resize Mode:

按S进入Cheatsheet Mode:

按Tab显示窗口提示:

P.S.

工欲善其事,必先利其器,工具是为解决问题服务,勿为了工具而使用工具。