推荐 macOS 自动化工具 Hammerspoon 配置

当时几乎试用过所有的窗口管理工具,感觉 Moom 在功能性和易用性方面是最好的。

然而没有我特别期待的步进操作,而且我很不喜欢以按组合键的方式操作窗口。这是当时我入坑 Hammerspoon 的主要原因。

现在这份配置自己用的很顺手,功能一点不缺。建议楼上有空也尝试一下。

另外窗口管理不过是该配置其中一个模块(WinWin.spoon) 的功能,还有其它 10 几个模块实现桌面 widget、启动器、网速监视器、有道词典、bing/unsplash 壁纸、aria2 前端等等乱七八糟的功能。

1 个赞

我也试过用 Space 来当 Hyper,但打字太快时就会误触(本来想打空格,却与下个字母一起组成了功能键),不知道你怎么解决的。

虽然我没用过,但是通常都是延长判定为hyper键需要的时间

这个现象我遇到和尝试解决过。即使 0.2 秒钟的延时判断,给人的感觉依然是不顺畅。拖泥带水,特别不干脆,打字的时候其实很痛苦。

2 个赞

试了一下 hs.spotlight,如果用来做 app launcher 是可以的,但是用来搜索文件,体验就太差了,远达不到 alfred/spotlight/quicksilver 的效果。

输入一个很普遍的单词,alfred 候选列表只列出 20 条,响应速度很快。

spotlight 也是只列出几十个条目,比起 alfred 还是有点迟钝(可能因为它不仅匹配文件名,还搜索文件内容),不过正好可以看出列表是异步加载的。候选列表末尾有一项 Show all in Finder...,点击打开 Finder 慢慢转菊花列出 2k 多项匹配的文件。

hs.spotlight (我设置的搜索条件还不够宽,只列出了可执行文件) 的效果就像在命令行执行 mdfind,缺乏异步响应机制,必须等到查询任务结束,返回一个完整的结果,才能进行下一步操作,而这个完整的结果往往超出了人眼 parse 的极限。

我认为只列出少量结果才是合理的,因为想要在几百上千个条目中翻找,还不如再多输几个字符缩小范围。

我平时用的 spotlight,没用过 Alfred。Show all in Finder... 默认是全盘搜索,慢点是可以理解的。而且我看你截图中匹配项是 20k,不只 2k……再加上 spotlight 还搜索文件内容,个人觉得要是还控制在 10s 以内,就可以接受。

关于 Hammerspoon,我没用过 hs.spotlight 模块,有没有异步响应机制也不清楚。不过当时瞥过几眼,记得有个判断是否 working 状态的函数。working 指的是索引正在进行中,还是 query 进行中,我没细看。如果是 query 进行中,那在回调中判断下匹配项达到某值(如 20 个),那就停止 query 并在界面中绘制出来。如果指的是正在索引中,那就麻烦了。需要到 GitHub 提 issue 让作者支持下异步查询。

我晚上回来有空再看看 hs.spotlight 文档。

刚翻了一下 hs.spotlight 模块文档,可以肯定是支持异步查询的。Hammerspoon docs: hs.spotlight

流程是:开始一个查询,然后 setCallback 里观察 inProgress 消息,不停地检查 :count 返回的值,达到想要的匹配项数就停下,最后把结果显示到 hs.chooser 中。这是看文档得出的结论,还没有试验过。

hs.chooser 也有回调函数,这样就允许每按一个键查询结果不停地更新,方便输入多个字符缩小范围。官方 Spoons 源里有一个 Seal 搜索框架例子,应该可以作为参考。Spoons/Source/Seal.spoon at master · Hammerspoon/Spoons · GitHub

也有我的 HSearch 搜索框架 :sweat_smile: 不过只有 hs.chooser 的例子。Spoons/Source/HSearch.spoon at master · Hammerspoon/Spoons · GitHub

激活窗口的时候有办法可以只激活主窗口吗?发现同一应用程序的所有窗口都会激活,导致卡顿。。Manico是可以只激活一个的。。

不太清楚你说的只激活主窗口是什么意思……

你是按下哪个组合键,发现和预想的结果不一致?

就是我的Safari有20几个窗口,当焦点在iTerm上的时候按快捷键切换过去的时候,它把这20几个窗口全部前拿到最前了。实际上我只需要这20几个窗口的最前面的那一个。。需要其它的时候我可以再Cmd+`切换。。

Manico只把要切换过去的窗口的第一个放到最前。

那就奇怪了,我这边是好使的。无论按 opt + a 还是 opt + tab,都只是把应用的一个窗口提到最前,和手动操作并无二致。

我的 macOS 和 Hammerspoon 都是最新版。

有没有哪个朋友可以给一个hammerspoon的最新release版,上个版本我可以下载,这个版本不知到怎么回事,挂代理还是怎样都不太有效,8m的弄的好像一辈子都下不完。

试试这个http://gxy.sdf.org/Hammerspoon-0.9.60.zip

变成hyper之后要等你松开space才知道你是要单独space还是space-*组合,而以前是按下space就响应的,肯定会感觉慢了一点

2 个赞

说白了还是缺乏模式。快捷键复杂到一定程度,模式化是必然的。

鼠标操作也可以看成一种「模式」。增加操作维度。

我用Sizeup和Alfred,前者简单窗口管理,后者么,恩,配合applescript,很好很强大!

只要手默认位置够不到的,一律不用,懒癌晚期飘过~

CLFSWM,这个是运行在gnome/kde 等这类desktop environment之上的软件,还是和他们同等级的(或者,当然也可运行于gnome等下),比如像i3wm?

我用i3wm,因为我的linux本子只有12.5寸,屏幕太小了,用gnome真心很低效;反而i3用的很方便,反正最多俩窗口或者只有一个。

和 i3wm 類似,可以和 DE 用也可以单着用。

1 个赞