之前发过帖子: 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。
1
avalon 2017-05-02 16:27:18 +08:00
网络监控太赞了,可以关了 istat menu 了。
|
3
mildhurt 2017-05-05 21:46:57 +08:00
试用了一下,功能很赞。
想加入几个快捷键怎么修改呢? alt + h j k l 对应上下左右方向键。alt + , .对应光标到句首句尾。 |
4
ashfinal OP sendup = hs.hotkey.bind({"alt"},"k",nil,function() hs.eventtap.keyStroke({},"up") end)
@mildhurt 类似于这种的。一共才几行,直接放到 private/awesomeconfig.lua 里面就行。 |
5
mildhurt 2017-05-06 22:47:17 +08:00
@ashfinal
加了上下左右,句首句尾的关键字是?(不知道文档从哪查) alt + hjkl 长按会不好用。这个有办法改成长按一直有效? 并且感觉这个有点卡。直接按上下左右不会卡的,这个大概有 0.5 秒的延时。 |
6
ashfinal OP @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 |
7
mildhurt 2017-05-07 19:34:41 +08:00
|
9
mildhurt 2017-05-07 20:38:18 +08:00
@ashfinal 移动到别的屏幕的快捷键好用。移动到副屏后再 resize 就会回主屏幕。比如说在副屏按 k 应该在副屏在上半屏显示才合理。现在是会回到主屏幕。
|
10
ashfinal OP @mildhurt 副屏上按 K 把窗口 resize 到上半屏了嘛? resize 后回到主屏幕?
正常应该是针对当前“激活”窗口的,如果没有按预想的工作,可以去 GitHub 提个 issue。 目前我没有多监视器的硬件条件,所以涉及到这块的 issue,没法测试。希望有人提 PR 吧。 |
11
mildhurt 2017-05-07 21:25:09 +08:00
@ashfinal resize 后回主屏幕。
我原来试用这个配置时在副屏移动是好用的。https://github.com/S1ngS1ng/HammerSpoon/blob/master/README-cn.md 看看有时间再折腾…… |
12
ashfinal OP @mildhurt 看了下那份配置调用了另一个模块,但是结果应该是一样的呀……
可能是个 bug,不过我这没法重现。只能再等等看了…… |
13
zander 2017-05-12 11:24:40 +08:00
有一段时间没用,再用的时候 setlocation 开始报错了,不知道怎么了。
|
14
ashfinal OP |
16
ashfinal OP @mildhurt 好的 👌 多显示器相关的问题终于可以告一段落了。
另外,顺手给 hsearch 加了个图标。这份配置有空继续慢慢搞 ʕ•ᴥ•ʔ |
18
clotong 2017-12-03 20:25:18 +08:00
@ashfinal
想问下,在-- resizeM modal environment 的配置里,如果我想调用里面几个常用的屏幕方式弄个全局快捷键,而不用先进入 resizeM,再按字母,要如何写,谢谢 |
19
ashfinal OP @clotong 可以用 http://www.hammerspoon.org/docs/hs.hotkey.html#bind 绑定。
所有加载的 Spoon 都可以通过全局命名 spoon 访问到,比如 spoon.WinWin。 至于 WinWin 有哪些可调用的方法,可以看它的线上手册: http://www.hammerspoon.org/Spoons/WinWin.html |