背景 链接到标题 最近把公司电脑从 Windows 换到了 MacOS, 在重新配置 OS 阶段,发现在 MacOS 上进行窗口管理比较痛苦,自己之前的个人 MaCOS 一直使用的是Moom 来进行管理,但是使用功能很有限,加上现在 MacOS 自身的窗口提示会与 Moom 冲突,所以决定更换一个。我个人对于窗口管理的需求就是方便的在不同显示器切换,焦点窗口全屏、半屏、1/3 屏转换快速。对于平铺式窗口管理觉得学习成本和适应成本可能有些高,不打算折腾,之前看到 disksing 使用 Hammerspoon 进行窗口管理的文章: 适合程序员的桌面窗口管理方案 ,打算尝试一下。
Hammerspoon 链接到标题 Hammerspoon 是一个开源的自动化工具,可以实现很多功能,包含不限于:窗口管理、桌面管理、Wifi 触发器、时钟管理等等,所有功能都是通过 Lua 语言来实现的。用户可以自己编写 Lua,或者使用 Spoons 中提供的一些 Lua 模块来简化配置。
官网包含了一个简单的 Window resize 示例,还是比较好理解的,先找到当前focuse 窗口,然后找到当前窗口大小,调整大小为目标值,重新设置窗口:
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "Left", function() local win = hs.window.focusedWindow() local f = win:frame() local screen = win:screen() local max = screen:frame() f.x = max.x f.y = max.y f.