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 行左右),期待有人写出更好用的脚本来。

嗯,先这样。

6195 次点击
所在节点    macOS
45 条回复
xream
2016-12-31 08:54:36 +08:00
shuxiao9058
2016-12-31 10:39:40 +08:00
Programmer Dvorak 键盘布局下使用完全乱了,没法用。。。
yangg
2016-12-31 11:23:36 +08:00
不错,很屌
ashfinal
2016-12-31 13:40:43 +08:00
@jedihy
@Tink
窗口管理替代 moom 等软件应该是 Hammerspoon 最常见的做法,但其实功能更多。
比如到达咖啡馆了自动发个信息给基友, 10 点还没回家自动发信息给老婆,在办公室拔出耳机自动静音,做个在线词典翻译, V2EX 自动签到 /新帖查看,帮你自动点程序菜单,绘制漂亮的桌面 widgets 等等。具体取决于你的需求。
ashfinal
2016-12-31 14:03:15 +08:00
@SoloCompany
@xcv58
@xream
Karabiner 没咋用过。实际上是:当时花了两三分钟还没搞明白咋用,转念一想觉得直接修改按键映射也许真的不是个好主意,于是就删了……
Hammerspoon 引入了场景按键的概念,比如在 Finder 中按 D 键是删除当前文件,按 T 打开终端,在 Safari 中按 D 键是关闭当前 Tab ,按 T 新建 Tab 等等。都是可以实现的。
但是以上所说的例子在我的配置里并没实现,因为我暂时没有这方面的需求。不过,下图很好的说明了场景按键的潜力:

能注意到窗口的 resize 和移动都是靠单键完成的。
ashfinal
2016-12-31 14:10:43 +08:00
@shuxiao9058 完全没接触过 Dvorak 键盘,不清楚这个。可以去官方提 issue 。
Tink
2016-12-31 14:16:27 +08:00
看起来很强大
xcv58
2016-12-31 14:20:30 +08:00
@ashfinal 你没理解 Karabiner 用户的需求。只好说辛苦了。

但说实话 你说的这些功能我要不就不 care 要不有好得多的方案。
ashfinal
2016-12-31 14:37:23 +08:00
@Lattez 刚打开 dock 和 menubar 栏,没能重现你说的问题……
建议更新到最新的 0.9.52 ,并终端里执行一次 `cd ~/.hammerspoon && git pull` 再试试看。
还有问题的话,最好能详细描述下应用程序、详细的操作等细节。
Lattez
2016-12-31 14:39:12 +08:00
@ashfinal 不知道。就是扩展到全屏的会这样,不过也没怎么用了
ashfinal
2016-12-31 14:41:40 +08:00
@xcv58 Karabiner 这么多人用,应该是个好软件。有空我再看看,尝试下理解。
你也可以再多说两句,省得我再去下载安装配置神马的 ●__●
ashfinal
2016-12-31 14:58:05 +08:00
@Lattez 全屏照我的理解,应该是新建了一个 space 。这时候窗口 resize 、 move 等操作应该是不起作用的。
不排除一些软件使用了非标准的全屏方式,这样窗口操作可能会发生些“意外”。

@xcv58 可以分享下 Karabiner 配置嘛?
xcv58
2016-12-31 20:18:33 +08:00
@ashfinal https://github.com/tekezo/Karabiner/issues/660 短期内是用不了的。 https://github.com/tekezo/Karabiner-Elements 是一个还在开发的重新实现。

这个是我的配置,但基本上没什么意义了 https://github.com/xcv58/Karabiner 而且我只是对 HHKB 做了一点优化。

不是说 Hammerspoon 不好 但我看来很多功能要不是不如别的工具。要不是用别的实现更优雅。譬如 Karabiner 可以精准地控制 /接受 KeyDown Up Release ,内置的各种 Vi Mode 。 Alfred 的 Workflow HotKey 触发方式也有好几种, Toggle App 更加智能,调用脚本可以很方便地指定解释器。浏览器内快捷键也是类似 基于浏览器的第三方 Vim 模式扩展 无疑更强大好用,我以前用 Windows 时用 AHK 写了一个跨浏览器的 Vim Mode 的实现 但要用快捷键点击链接时就懵逼了,最终还是直接调用浏览器 API 的扩展直接解决问题。

Hammerspoon 用来做窗口管理 高级的程序切换(一个快捷键对应一组 App ,每次按下会在这组 App 中切换或 Toggle )。但用来做剪切板增强实在有些太复杂 而且我相信很难做得比 Alfred 或 别的专门的剪切板增强工具更好。计时器我更觉得没必要,简单的 Timer Stopwatch 直接 Google 更方便。复杂的有各种番茄工作法的 App 或者直接 Google Calendar 。
adoyle
2016-12-31 21:35:05 +08:00
感谢推荐!很不错。感觉和 Alfred 可以互补。
Shared
2016-12-31 23:17:08 +08:00
我现在是 Amethyst + Karabiner-Elements 解决了键位和窗口管理,不过看起来 hammerspoon 还有更多有趣的玩法。感谢 @ashfinal 推介,这两天研究一下。
ashfinal
2017-01-01 15:03:33 +08:00
@xcv58 Karibiner 在按键定制方面确实强,譬如 Hammerspoon 目前仍无法识别单按 `Cmd` `Shift` 等辅助键事件,也无法将一个按键映射为另一个按键, KeyDown Up 事件倒是可以识别。

窗口管理方面我感觉要比收费的 Moom 等软件要强,至少我用的挺顺手。
桌面 widgets 应该要比 Geektool 、 Ubersicht 等要强一些, Menubar 方面应该要比 Anybar 强一点。
Hammerspoon 提供的 API 范围还是比较广泛的。

我这里只是希望有人有空可以尝试下,毕竟多个选择也是挺好的事儿。
ashfinal
2017-01-01 15:04:38 +08:00
@Shared 有什么好的想法或者脚本可以分享一下 ₍⁽⁽(ી( ・◡・ )ʃ)₎₎⁾⁾
xcv58
2017-01-01 21:39:41 +08:00
@ashfinal 👍
ashfinal
2017-01-01 22:25:45 +08:00
今天被同一个老外提了好几个 issue 。

有几个小问题我是知道的,但是懒,一直没管。

现在全被指出来了 …… 😭
xcv58
2017-01-01 23:29:27 +08:00
@ashfinal 这也是我很多时候不想分享自己用的配置的原因。用得人一多就很麻烦 😄

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

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

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

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

© 2021 V2EX