Hammerspoon is a tool for powerful automation of OS X. You can write Lua code that interacts with OS X APIs for applications, windows, mouse pointers, filesystem objects, audio devices, batteries, screens, low-level keyboard/mouse events, clipboards, location services, wifi, and more.
Hammerspoon 是 macOS 上功能强大的自动化操作软件,可以通过 Lua 脚本语言方便地进行扩展。之前主要用它来对窗口实现快捷操作。近几天重新搜索整理了下,发现功能真是异常强大,哈哈~
目前已经有了以下模块:桌面 widget 、窗口操作、应用启动器、计时器、快捷键 cheatsheet 等等。看图说话:
感觉一下子将 Hammerspoon 的潜力挖掘了不少呢。发上来给大家看看,望轻拍~
还有别的脚本也请大家多多分享出来喽 _(ツ)_/
![]() | 1 gongziheng1995 2016-11-30 11:43:18 +08:00 非常棒… |
2 laxapple 2016-11-30 11:56:25 +08:00 via iPhone 感谢,希望能干掉 cheatsheet 应用 |
![]() | 4 sinker 2016-11-30 13:22:07 +08:00 via iPhone |
![]() | 6 SoloCompany 2016-11-30 13:54:40 +08:00 brew cask install hammerspoon |
![]() | 8 SoloCompany 2016-11-30 14:47:05 +08:00 速度有点慢啊 我主要是说,比如 OPT+V 切换到 VIEW MODE ,用 HJKL 导航的时候停滞缓冲很明显 |
![]() | 9 ynyounuo 2016-11-30 15:05:26 +08:00 @SoloCompany 我在 View Mode 下一次跳两下 |
![]() | 10 ynyounuo 2016-11-30 15:09:42 +08:00 感觉有点儿太重了,而且太多冲突键位了 只留下了 改成了 |
![]() | 11 ynyounuo 2016-11-30 15:37:40 +08:00 ![]() @laxapple 你的 Alfred 是 S 触发的?到 modalmgr 里改成别的就好了,如果是 Space 那么改「 hs.hotkey.modal.new 」 |
![]() | 12 SoloCompany 2016-11-30 16:04:30 +08:00 @sinker 谢谢,有空看看(后面划掉(这 15cm 的 github 用户名不得不让人有些联想啊 |
13 ashfinal OP @ynyounuo @SoloCompany View 模式基本没怎么管,因为平时压根儿不用。 这两天我再优化下。 快捷键可以自己去改,实际上非常简单。 所有模式的入口(以 OPT 开头的快捷键)在 modemgr 文件里, resize 、 view 、 app 模式在 basemode 文件里。 |
14 ashfinal OP @laxapple Cheatsheet 我直接用的别人的代码。 我大概看了下,显示的时候开了个 webview 。我的意思是如果隐藏 webview 而不是直接关闭重开,应该速度会快很多。 甚至不用 webview 而是直接在屏幕上画出来,这样资源占用和反应时间都得到了解决。 说到底还是 cheatsheet 自己平时用的少,懒得深入优化 () |
15 ashfinal OP @ynyounuo 要说内存占用,还是相当可以的。而且可以把自己不用的模块给关掉。 冲突键位那么多嘛?可以告知下都与哪些软件冲突呀? 当时就是希望 awesome-hammerspoon 能够替代一大票效率软件的。●__● |
16 laxapple 2016-11-30 23:28:04 +08:00 r#11 @ynyounuo No ,我指的 Mac 上一款快捷键提示应用也叫 Cheatsheet 的,冲突和 Alfred 启动键无关,而是经常在执行一个 Alfred Action 之后 Cheatsheet 被自动触发。 |
17 ashfinal OP @ynyounuo @SoloCompany 晕死,刚发现 resize 和 view 模式下少写了一个参数,导致 repeat 没有被调用。 已经修复,也就是说现在你可以按住 H 、 J 、 K 、 L 键不放调整窗口大小了。 另外, view 模式下用滚轮代替击键,现在应该没什么卡顿感了。 Cheers ! |
18 ashfinal OP @laxapple 执行 Alfred Action 后 Cheatsheet 被自动触发?可以检查下 OPT+S 以及 CMD+CTRL+OPT+S 这两组快捷键占用 |
![]() | 19 zander 2016-12-05 15:23:22 +08:00 有个 menubar_indicator 里中文日文什么的写什么? Pinyin - Simplified 不识别。 |
![]() | 21 zander 2016-12-05 15:44:44 +08:00 @ashfinal 哦不是这个配置里的,是 oh-my-hs 里的。 https://github.com/zzamboni/oh-my-hammerspoon ShowyEdge - menu bar coloring to indicate the currently selected keyboard layout (again, only the indicators I use are implemented, but others are very easy to add). See menubar_indicator.lua. |
23 ashfinal OP @zander 刚大概看了下 应该是自己找下中文 /日文的 keyboard layout 名称,然后在文件开头 color table 里定义一下颜色。 |
26 ashfinal OP @brq417059 额 自己改的 paper 主题,其实还有些不太完善。 https://github.com/ashfinal/vim-colors-paper vimrc 配置在这里 : https://github.com/ashfinal/vimrc-config |
![]() | 27 Lattez 2016-12-05 18:29:06 +08:00 via Android 前几天刚有一朋友分享了自己的配置,看来可以准备开始重新捡起来用了 |
29 ashfinal OP 添加了新的模块 具体见附言 自个顶下 ( ) 嗯 |
![]() | 30 lonenol 2016-12-07 09:02:49 +08:00 计时器不生效....那个网速 时钟和日历要是默认隐藏的就好了.. |
31 ashfinal OP 都可以设置的。配置文件在 `~/.hammerspoon/private/awesomeconfig.lua` 网速: idle_to_which = "never/netspeed/hide ” 分别是只显示`DOCK MODE`字样、显示网速、**自动隐藏**; 时钟和日历: ``` module_list = { "basicmode", "widgets/netspeed ”, "widgets/calendar ”, 删掉这行 "widgets/analogclock ”, 还有这行 "modes/indicator", "modes/clipshow", "modes/aria2", "modes/cheatsheet", } ``` 删掉上面的标记行后,同样也放到上面提到的配置文件里。 Reload, done. 可以具体看下文档后面的 Customation 部分。 计时器不生效什么意思? 最后,欢迎有问题提 issue ~ |
33 ming9083 2016-12-07 10:17:12 +08:00 mark |
![]() | 35 ossphil 2016-12-07 21:11:19 +08:00 建议在默认的配置里避开常用的一些组合键 |
36 ashfinal OP |
![]() | 37 ossphil 2016-12-08 15:49:08 +08:00 @ashfinal 我的就是 option+space ,用来切换输入法的。好像也是 macOS 默认的输入法切换键吧?其他的还没有,不知楼上各位说冲突多的还有什么键。 |
![]() | 39 MartinWu 2017-02-23 16:18:54 +08:00 作者还镇守这里吗? 我想问下 cheatsheet 模式,是要安装 cheatsheet 这个应用吗? 我没有装,然后我用快捷键激活 cs 模式后,除了右下角显示 cs mode 外,并没有什么变化~~ |
40 ashfinal OP @MartinWu 不需要安装 cheatsheet 应用。 之前这个模块是好使的,但是最近确实报错没法用了。因为这模块代码当时是从别人那直接拿的,不太熟悉,需要深入读一遍找出问题出在哪。 个人基本不用这个模块,所以还是希望有人提 pull request 好一些。(偷点懒~ |
![]() | 43 ech0x 2017-08-29 16:55:55 +08:00 哇,最近在看 awesome-hammerspoon 居然发现了原作者,配置写的很好啊 |
![]() | 45 ech0x 2017-09-10 06:30:40 +08:00 via iPhone @ashfinal 自己写的一直没你的快,我还纠结了好久。后来仔细看了文档才发现可以关闭动画。说起来,现在能不能实现自动的窗口布局啊,就像窗口管理器一样。。官方说 windowslayout 还不稳定。 |
46 ashfinal OP @ech0x 可以尝试一下。与此相关的两个模块大概是 hs.application.watcher 和 hs.window.layout。 不过,macOS 上已经有类似的平铺窗口管理器: https://github.com/koekeishiya/kwm。个人觉得就没有必要继续折腾了。 |
![]() | 48 ech0x 2017-09-12 06:10:57 +08:00 via iPhone @ashfinal 我觉得 tilling windows manage 就是一般人不知道有什么用,但用过一次就回不去的东西。最近少数派介绍窗口管理器的文章越来越多了,大概窗口管理器会是个新潮流吧。。 |
49 ashfinal OP |
![]() | 50 ech0x 2017-09-12 13:38:14 +08:00 via iPhone @ashfinal 我觉得现在的趋向是多屏了,对于多数人都不太追求效率,这时层叠式的明显更符合直觉。但是就效率而言,无疑是平铺式的更好。 |
52 zeefeng 2018-06-25 16:28:26 +08:00 终于发现一款满意的平铺式桌面了。自从 Arch 转到 macos 后就一直在寻找类似于 awesome 的软件了,谢谢分享。 |
53 zeefeng 2018-06-25 17:55:32 +08:00 刚在学习 lua,发现这篇文章的模块化设计思路挺不错的,个人感觉会便于后期的维护。 http://seanxp.com/2016/05/mac-hammerspoon/ |