(自我)感觉良好的 Hammerspoon 配置,有原生 aria2 前端和类似 Alfred 的搜索了

2017-05-01 22:39:41 +08:00
 ashfinal

之前发过帖子: https://www.v2ex.com/t/324303

awesome-hammerspoon 是一份针对 macOS 上自动化软件 Hammerspoon 的配置。

GitHub 地址在这: https://github.com/ashfinal/awesome-hammerspoon

不过相比上一次,变化还是挺大的。觉得有必要另开一贴说一下。

改成“关键词+tab ”的方式来触发数据源了,更方便灵活更容易扩展。如图:

按 tab 后,继续输入,搜索-选中某项,然后复制选中项,或者在浏览器打开,或者点击相应菜单,或者杀掉进程 …… 基本使用流程就是这样。

目前有 6 个源:Safari tabs、有道词典、英语同义词、杀进程、菜单项搜索,还有 V2EX 新帖。

重写了 hsearch.lua 整个文件,现在添加新源很简单了。基本上就是本地或者远程获取数据,喂给选择器,有必要的话加个 callback,然后设置下输出类型就可以了。大同小异。目前 6 个源+空格注释大约 400 行。

这个组件官方最近添加了 darkmode 支持,并且可以 Ctrl+P/N/V 翻行翻页了。个人使用频率大大提高,感觉用来作为 spotlight 的补充,还是不错的。以后有需求再慢慢加源。

”原生“加引号是因为:管理界面实际上是通过 hs.canvas “画”出来的。但从使用体验上来说,几乎与原生客户端无异。之前用的是 web 网页端管理,觉得还行。但有几点一直略感遗憾。

于是最近就查了下 Hammerspoon 的文档,看能不能倒腾点什么东西出来。就算解决不了所有问题,用 canvas 画个下载进度条悬浮窗口,免去切来切去的麻烦也是好的。

最后的结果是超出我预期的。如图:

截图没太截好,显得有点大。实际上,它只是悬浮在桌面右下角落,宽度大致与 Today Widget 相当。

通过“ toolbar ”添加普通 /BT/Metafile 任务;支持批量添加任务(一行一 URL );在下载项上单击可 pause / resume 当前任务,如果已下载完成它会直接打开该文件;按住“ cmd “键并单击则会 stop 或者 remove 下载项;支持下载完成/错误等系统通知,即使 aria2 窗口当前已隐藏;如果当前没有活跃任务,它会慢慢减少服务器请求,而不是固定间隔一直发。

另外,lua 脚本竟然能够调用 AppleScript,拉起文件选择框等交互界面。当时还是给了我很大惊喜。

不再使用 mode block 显示当前状态了。有些状态显示根本没有必要,而且很难看。

现在只用个类似 iOS 小圆点的东东(右下角),不同颜色来区分场景。而且只在非常有必要的时候才出现,以减少对使用者的干扰。

cheatsheet 正常工作了。之前直接拿别人的代码,现在完全通读一遍,并修复了其中的 bug。记得有个哥们抱怨说包含上下左右键的快捷键没有显示出来,现在应该所有的都 OK 了。

netspeed 监视器给挪到菜单栏了,因为我实在找不到别的好地方来放它 …… 而我又非常关注网速。如果你知道别的什么好地方,可以告诉我 :)

最后的最后,欢迎 star,欢迎 contribute。

https://github.com/ashfinal/awesome-hammerspoon

4058 次点击
所在节点    分享发现
19 条回复
avalon
2017-05-02 16:27:18 +08:00
网络监控太赞了,可以关了 istat menu 了。
ashfinal
2017-05-02 19:40:43 +08:00
@avalon 嗯 当时也是发现:

我真正想关注的只有网速而已。
mildhurt
2017-05-05 21:46:57 +08:00
试用了一下,功能很赞。
想加入几个快捷键怎么修改呢? alt + h j k l 对应上下左右方向键。alt + , .对应光标到句首句尾。
ashfinal
2017-05-06 16:48:57 +08:00
sendup = hs.hotkey.bind({"alt"},"k",nil,function() hs.eventtap.keyStroke({},"up") end)

@mildhurt 类似于这种的。一共才几行,直接放到 private/awesomeconfig.lua 里面就行。
mildhurt
2017-05-06 22:47:17 +08:00
@ashfinal
加了上下左右,句首句尾的关键字是?(不知道文档从哪查)
alt + hjkl 长按会不好用。这个有办法改成长按一直有效?
并且感觉这个有点卡。直接按上下左右不会卡的,这个大概有 0.5 秒的延时。
ashfinal
2017-05-07 16:34:12 +08:00
@mildhurt 句首句尾可以用 cmd+left/right 或者 ctrl+a/e 来模拟。
想让长按有效,应该再补一个参数,让按下和长按调用的函数一样即可。

可以去查下 Hammerspoon 的文档,都很简短容易理解,用到哪个查哪个。
http://www.hammerspoon.org/docs/hs.hotkey.html#bind
http://www.hammerspoon.org/docs/hs.eventtap.html#keyStroke
mildhurt
2017-05-07 19:34:41 +08:00
@ashfinal 收到,我再看看文档。
移动到副屏可以加全局快捷键吗?
另外,在副屏中 resize 模块的很多快捷键都会重回主屏幕。并不能在副屏用 h j k l。
ashfinal
2017-05-07 19:43:31 +08:00
@mildhurt 把 window 移动到别的屏幕?
可以使用 上下左右还有空格键。
mildhurt
2017-05-07 20:38:18 +08:00
@ashfinal 移动到别的屏幕的快捷键好用。移动到副屏后再 resize 就会回主屏幕。比如说在副屏按 k 应该在副屏在上半屏显示才合理。现在是会回到主屏幕。
ashfinal
2017-05-07 20:57:21 +08:00
@mildhurt 副屏上按 K 把窗口 resize 到上半屏了嘛? resize 后回到主屏幕?
正常应该是针对当前“激活”窗口的,如果没有按预想的工作,可以去 GitHub 提个 issue。

目前我没有多监视器的硬件条件,所以涉及到这块的 issue,没法测试。希望有人提 PR 吧。
mildhurt
2017-05-07 21:25:09 +08:00
@ashfinal resize 后回主屏幕。
我原来试用这个配置时在副屏移动是好用的。https://github.com/S1ngS1ng/HammerSpoon/blob/master/README-cn.md
看看有时间再折腾……
ashfinal
2017-05-07 23:08:43 +08:00
@mildhurt 看了下那份配置调用了另一个模块,但是结果应该是一样的呀……
可能是个 bug,不过我这没法重现。只能再等等看了……
zander
2017-05-12 11:24:40 +08:00
有一段时间没用,再用的时候 setlocation 开始报错了,不知道怎么了。
ashfinal
2017-05-12 21:33:42 +08:00
@zander setlocation? 具体什么错误,可以到 GitHub 提 issue。

@mildhurt 今天刚好对多监视器环境做了支持,这些问题应该都解决了。欢迎测试 :)
mildhurt
2017-05-13 21:19:29 +08:00
@ashfinal 更新了,副屏上的问题解决了,我再测试测试:)
ashfinal
2017-05-13 21:47:42 +08:00
@mildhurt 好的 👌 多显示器相关的问题终于可以告一段落了。
另外,顺手给 hsearch 加了个图标。这份配置有空继续慢慢搞 ʕ•ᴥ•ʔ
mildhurt
2017-05-14 06:57:46 +08:00
@ashfinal 不错不错,等于整合了几个软件,方便了不少。
clotong
2017-12-03 20:25:18 +08:00
@ashfinal
想问下,在-- resizeM modal environment 的配置里,如果我想调用里面几个常用的屏幕方式弄个全局快捷键,而不用先进入 resizeM,再按字母,要如何写,谢谢
ashfinal
2017-12-04 12:30:55 +08:00
@clotong 可以用 http://www.hammerspoon.org/docs/hs.hotkey.html#bind 绑定。

所有加载的 Spoon 都可以通过全局命名 spoon 访问到,比如 spoon.WinWin。

至于 WinWin 有哪些可调用的方法,可以看它的线上手册: http://www.hammerspoon.org/Spoons/WinWin.html

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/358426

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX