Hammerspoon 0.9.51 发布好几天了,竟然没人提嘛?

2016-12-30 22:09:34 +08:00
 ashfinal

难道是使用人数太少的缘故?😖 个人感觉挺好的软件啊…… 既然没人写我就随便写点什么吧,虽然本人也很菜……

因为前一段时间搞了awesome hammerspoon,对 Hammerspoon 自然多了一些关注。此次发布的 0.9.51 (从 0.9.50 ⇡) 版本还是比较给力的,很值得关注。 Bug 修复和 API 改动就不说了,只说下增加的新特性:

  1. 增加 hs.spotlight 模块。能读取 spotlight 数据了,配合 hs.chooser 模块就能实现类似 spotlight 的功能;不过个人对系统自带的 spotlight 挺满意,所以这块文档没细看;
  2. 增加 hs.network.ping 模块。用于确定网络状况、延迟等。
  3. 增加 hs.deezer 模块。一个音乐播放器的自动控制,和咱无关。
  4. 增加 hs.watchable 模块。实现对文件变动或者变量的监控,很容易在此基础上做基于事件的自动化。
  5. 增加 hs.canvas 模块。 hs.drawing 模块的升级版,增加了众多吸引人的特性。比如组合操作,把多个绘图元素组合统一操作,也方便在不同分辨率屏幕上自动伸缩;支持 sourceIn/sourceOut 等集合操作,方便解决图层层叠处理的问题;支持多级渐变和径向渐变,之前 hs.drawing 只支持两级和方向渐变(之前想创建个色盘来着,发现这个限制悻悻作罢);可以创建图像给其它模块使用,比如绘制完直接作为 menubar 的状态栏;支持鼠标进入/退出/点击等事件的识别,可以有更多交互类的玩法了,一堆 Geektool 、 Ubersicht 、 Anybar 等去一边歇着吧;一定程度上支持了动画,比如直接把例子里的几行代码复制到终端,就能看到转动的电风扇和波峰图了,没事绘制绘制 CPU 负载、网络流量等也是挺好的事儿;对了,这模块对 hs.drawing 完全向下兼容,老代码不需任何修改,最终是要完全取代 hs.drawing 模块的。
  6. 增加 hs.caffeinate.sessionProperties API 。 hs.caffeinate 可以代替 caffeinate 、 Vatamin 等 app ,新增加的好像是让 Hammerspoon 重载配置也能读取之前状态?
  7. hs.chooser 模块读取被选行内容还有右键鼠标事件,更好看了一点。其实我对 hs.chooser 模块有更大的期待。作为 Hammerspoon 几乎唯一一处支持用户输入的宝贝疙瘩(当然直接调 hs.applescript 模块也能有输入框),只要不局限于单行输入,配合 hs.markdown 模块就能实现 md 文档的实时预览,配合 hs.styledText 模块就能实现 snippet 片段预览和管理。。。当然维护者也在逐渐增强这个模块的功能,目前只能慢慢等。

以上,就是本次小版本更新我粗看文档后了解到的内容。 不知不觉写的还挺多……也算给自己的一个备忘吧。🐶

写以上内容的时候,打开官方的 release notes 对照来看。发现又发布了 0.9.52 版本,瞅了一眼,说修复了 hs.chooser 的一处死循环 bug 。 这么说,我昨天费劲半天修复 awesome hammerspoon 的 hsearch 模块,原来是你们的锅?!(๑ó﹏ò๑) 每次按键都潮水般向服务器发送至少 200 次请求,害得我有道词典的 API key 都被封了!

不管咋样,昨天我最终在 0.9.51 版本下成功让每次按键只发送一次请求。 0.9.52 版本应该也没啥问题(吧?),写完这帖子就去下载。

最后说下 awesome hammerspoon,当时也是一边看 lua + hammerspoon 文档一边写的。代码可能不规整,但用到现在好像也没啥大 bug (?)。

目前提供了桌面 widgets 、窗口管理、应用启动、词典/ Safari 搜索、计时器、快捷键 Cheatsheet 、剪贴板读取等功能。反正个人用的还是蛮爽的,针对上次有人提出的自定义快捷键等的问题,也改进了很多。写个小功能模块门槛还是很低的( 100 行左右),期待有人写出更好用的脚本来。

嗯,先这样。

6163 次点击
所在节点    macOS
45 条回复
ashfinal
2017-01-02 13:20:28 +08:00
@xcv58 还行还行,有两个小问题其实我是想解决来着,只是懒癌犯了而已。😓
毕竟自己也在用这份配置,迟早要动手改的。
iCyMind
2017-01-03 23:57:41 +08:00
楼主, 不知道能不能实现这个需求:
选取鼠标下的单词?

之所以有这个需求是因为想提高查单词的效率.现在用的欧陆字典, 开鼠标查词的话很烦, 很多时候并不需要查词.
开划词搜索嘛, 有时候只想复制点东西, 又 tm 弹出翻译窗口来.

如果能取到光标下的单词就好了: 按某个按键, 取得单词, 然后调用翻译软件的查词快捷键, OK
thekoc
2017-01-04 15:24:23 +08:00
@xcv58
@ashfinal
普通的按键映射是可以实现的,不知道你具体要什么,不想看 xml 。。。
以下是精简版 Emacs 模式
https://gist.github.com/thekoc/10f64dfb18f3c466ae79befab9432ec3

并且可以设置在一些软件中不启动此模式(比如 MacVim 或者 iTerm )。我觉得这个应用还是不错的。
ashfinal
2017-01-04 16:24:20 +08:00
@iCyMind 这个目前貌似没有稳定可靠的方法,只能通过模拟双击鼠标实现。

感谢 @thekoc 回复。经测试 Hammerspoon 确实是可以把某单键映射为另一个单键的,比如你按下 “ J ”,实际上输入的却是 “ K ”。对看似系统级的按键也可以 override ,比如按下 “ J ”,实际发送 “ cmd + c ” 来完成复制,发送 “ cmd + tab ” 来启动应用切换等 …… 这样貌似 Hammerspoon 就只剩下无法识别单按 “ cmd/ctrl/alt ” 等辅助键事件的缺陷了。

可以在一些软件中不启动该模式,这我是知道的,免去手动切 modal 的麻烦了。比如 Finder 窗口在最前时自动启动 `Finder` 组情景按键,失去焦点则自动退出该组按键。

有兴趣的童鞋可以把 Finder 改成你们钟爱的 `vim` 或 `totalcommander` 风格按键。
@xcv58
iCyMind
2017-01-13 20:24:45 +08:00
@ashfinal 楼主, 能帮我看看为什么这段代码没有实现预期的效果吗?

https://gist.github.com/icymind/064e322b561fd37f58cbb0f42044e400

我想让当前窗口退出全屏后, 再挪动到左边 /右边

但是按下快捷键后, 仅仅退出了全屏, 没有挪动窗口

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

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

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

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

© 2021 V2EX