难道是使用人数太少的缘故?😖 个人感觉挺好的软件啊…… 既然没人写我就随便写点什么吧,虽然本人也很菜……
因为前一段时间搞了awesome hammerspoon,对 Hammerspoon 自然多了一些关注。此次发布的 0.9.51 (从 0.9.50 ⇡) 版本还是比较给力的,很值得关注。 Bug 修复和 API 改动就不说了,只说下增加的新特性:
以上,就是本次小版本更新我粗看文档后了解到的内容。 不知不觉写的还挺多……也算给自己的一个备忘吧。🐶
写以上内容的时候,打开官方的 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 行左右),期待有人写出更好用的脚本来。
嗯,先这样。
1
xjbeta 2016-12-30 22:39:33 +08:00
怎么说呢 高级 == 复杂 == 烦 == 死
所以说自带的够用了就好 |
2
HuangLibo 2016-12-30 22:48:55 +08:00
lua 到 cocoa 的桥接工具? 有什么方便之处, 比原生的代码好吗
|
4
ashfinal OP @xjbeta 我配置都给你写好了,就是 awesome hammerspoon ,重启 Hammerspoon 就能用了啊。
这个帖子是我边看 hs 文档边写的,只是我自己的一个参考。 是我的错,不该放这里。帖子写完长的我也吓了一跳,然而你也不用管这些。 |
6
ashfinal OP @kfll 矮油 真不知道你们撸 Alfred 怎么撸那么欢, powerpack 难道不折腾?
感觉 Hammerspoon 就是缺个分享社区。 |
7
Lonely 2016-12-30 23:08:28 +08:00 via iPhone
用的人肯定知道,不用的人不关心,有必要发个帖刷存在感?
|
8
wc0517 2016-12-30 23:16:12 +08:00
@ashfinal LZ 我用你这个会报错,虽然看上去没什么问题,但是不太爽。话说能不能精简一个只显示左下角网络状态的?本人非程序员研究了一下搞不赢
|
9
ashfinal OP @wc0517 其它所有功能都不要嘛?额,可以
在 `~/.hammerspoon/private/awesomeconfig.lua` 路径下新建这个文件。加入以下几行,重启 Hammerspoon 就可以了。 module_list = { "widgets/netspeed", } |
13
Lattez 2016-12-30 23:56:29 +08:00
有个问题就是控制窗口问题的操作,最好检测下 dock 栏,现在的是直接扩展到 dock 后面去了。
|
14
xcv58 2016-12-30 23:57:15 +08:00 via iPhone
我两个都是重度用户, Alfred 真比 Hammerspoon is 好折腾多了。不同的事情看哪个方便用哪个实现。拿着锤子看什么都是钉子真不好。
|
15
ashfinal OP |
16
SoloCompany 2016-12-31 00:24:37 +08:00
我只关心架构上能不能做到 Karabiner 在 10.11 上那样灵活,我用的最多的主要是组合按键的映射
如果不行的话,对我来说就没啥大用处 |
17
Tink 2016-12-31 03:47:21 +08:00 via iPhone
这是干啥用的
|
18
jedihy 2016-12-31 04:31:53 +08:00
Hammerspoon 重度用户
@Tink 可以取代你电脑上诸如 moom , keyboard maestro 之类的软件,自己写脚本实现功能。 |
19
xcv58 2016-12-31 07:10:52 +08:00 via iPhone
@SoloCompany 并不行,目前我是用 BetterTouchTool 暂时顶着。
|
20
bao3 2016-12-31 07:17:41 +08:00 via Android 1
一个软件,不能普及客制基本只能沦为小众,看完楼主这长帖虽然心疼楼主这辛苦汗水,但是只想说普通用户谁关心这个呢。
|
21
xream 2016-12-31 08:54:36 +08:00
|
22
shuxiao9058 2016-12-31 10:39:40 +08:00
Programmer Dvorak 键盘布局下使用完全乱了,没法用。。。
|
23
yangg 2016-12-31 11:23:36 +08:00
不错,很屌
|
24
ashfinal OP |
25
ashfinal OP @SoloCompany
@xcv58 @xream Karabiner 没咋用过。实际上是:当时花了两三分钟还没搞明白咋用,转念一想觉得直接修改按键映射也许真的不是个好主意,于是就删了…… Hammerspoon 引入了场景按键的概念,比如在 Finder 中按 D 键是删除当前文件,按 T 打开终端,在 Safari 中按 D 键是关闭当前 Tab ,按 T 新建 Tab 等等。都是可以实现的。 但是以上所说的例子在我的配置里并没实现,因为我暂时没有这方面的需求。不过,下图很好的说明了场景按键的潜力: 能注意到窗口的 resize 和移动都是靠单键完成的。 |
26
ashfinal OP @shuxiao9058 完全没接触过 Dvorak 键盘,不清楚这个。可以去官方提 issue 。
|
27
Tink 2016-12-31 14:16:27 +08:00
看起来很强大
|
28
xcv58 2016-12-31 14:20:30 +08:00 via iPhone
|
29
ashfinal OP @Lattez 刚打开 dock 和 menubar 栏,没能重现你说的问题……
建议更新到最新的 0.9.52 ,并终端里执行一次 `cd ~/.hammerspoon && git pull` 再试试看。 还有问题的话,最好能详细描述下应用程序、详细的操作等细节。 |
31
ashfinal OP @xcv58 Karabiner 这么多人用,应该是个好软件。有空我再看看,尝试下理解。
你也可以再多说两句,省得我再去下载安装配置神马的 ●__● |
32
ashfinal OP |
33
xcv58 2016-12-31 20:18:33 +08:00 via iPhone
@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 。 |
34
adoyle 2016-12-31 21:35:05 +08:00
感谢推荐!很不错。感觉和 Alfred 可以互补。
|
35
Shared 2016-12-31 23:17:08 +08:00
我现在是 Amethyst + Karabiner-Elements 解决了键位和窗口管理,不过看起来 hammerspoon 还有更多有趣的玩法。感谢 @ashfinal 推介,这两天研究一下。
|
36
ashfinal OP @xcv58 Karibiner 在按键定制方面确实强,譬如 Hammerspoon 目前仍无法识别单按 `Cmd` `Shift` 等辅助键事件,也无法将一个按键映射为另一个按键, KeyDown Up 事件倒是可以识别。
窗口管理方面我感觉要比收费的 Moom 等软件要强,至少我用的挺顺手。 桌面 widgets 应该要比 Geektool 、 Ubersicht 等要强一些, Menubar 方面应该要比 Anybar 强一点。 Hammerspoon 提供的 API 范围还是比较广泛的。 我这里只是希望有人有空可以尝试下,毕竟多个选择也是挺好的事儿。 |
39
ashfinal OP 今天被同一个老外提了好几个 issue 。
有几个小问题我是知道的,但是懒,一直没管。 现在全被指出来了 …… 😭 |
41
ashfinal OP @xcv58 还行还行,有两个小问题其实我是想解决来着,只是懒癌犯了而已。😓
毕竟自己也在用这份配置,迟早要动手改的。 |
42
iCyMind 2017-01-03 23:57:41 +08:00
楼主, 不知道能不能实现这个需求:
选取鼠标下的单词? 之所以有这个需求是因为想提高查单词的效率.现在用的欧陆字典, 开鼠标查词的话很烦, 很多时候并不需要查词. 开划词搜索嘛, 有时候只想复制点东西, 又 tm 弹出翻译窗口来. 如果能取到光标下的单词就好了: 按某个按键, 取得单词, 然后调用翻译软件的查词快捷键, OK |
43
thekoc 2017-01-04 15:24:23 +08:00
@xcv58
@ashfinal 普通的按键映射是可以实现的,不知道你具体要什么,不想看 xml 。。。 以下是精简版 Emacs 模式 https://gist.github.com/thekoc/10f64dfb18f3c466ae79befab9432ec3 并且可以设置在一些软件中不启动此模式(比如 MacVim 或者 iTerm )。我觉得这个应用还是不错的。 |
44
ashfinal OP @iCyMind 这个目前貌似没有稳定可靠的方法,只能通过模拟双击鼠标实现。
感谢 @thekoc 回复。经测试 Hammerspoon 确实是可以把某单键映射为另一个单键的,比如你按下 “ J ”,实际上输入的却是 “ K ”。对看似系统级的按键也可以 override ,比如按下 “ J ”,实际发送 “ cmd + c ” 来完成复制,发送 “ cmd + tab ” 来启动应用切换等 …… 这样貌似 Hammerspoon 就只剩下无法识别单按 “ cmd/ctrl/alt ” 等辅助键事件的缺陷了。 可以在一些软件中不启动该模式,这我是知道的,免去手动切 modal 的麻烦了。比如 Finder 窗口在最前时自动启动 `Finder` 组情景按键,失去焦点则自动退出该组按键。 有兴趣的童鞋可以把 Finder 改成你们钟爱的 `vim` 或 `totalcommander` 风格按键。 @xcv58 |
45
iCyMind 2017-01-13 20:24:45 +08:00
@ashfinal 楼主, 能帮我看看为什么这段代码没有实现预期的效果吗?
https://gist.github.com/icymind/064e322b561fd37f58cbb0f42044e400 我想让当前窗口退出全屏后, 再挪动到左边 /右边 但是按下快捷键后, 仅仅退出了全屏, 没有挪动窗口 |