V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ashfinal
V2EX  ›  Apple

写了一份(貌似)不错的 Hammerspoon 的配置

  •  2
     
  •   ashfinal · 2016-11-30 11:40:08 +08:00 · 11276 次点击
    这是一个创建于 2939 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 等等。看图说话:

    modes

    overview

    cheatsheet

    感觉一下子将 Hammerspoon 的潜力挖掘了不少呢。发上来给大家看看,望轻拍~

    还有别的脚本也请大家多多分享出来喽 ¯_(ツ)_/¯

    传送门: https://github.com/ashfinal/awesome-hammerspoon

    第 1 条附言  ·  2016-12-01 22:58:22 +08:00
    修复了两个主要问题:
    1. ❌日历 today 显示错误。应该向上取整(而不是向下);
    2. ❕`resize` 模式改进。少写了个参数,现在应该能按住 HJKL 不放调整窗口了。
    3. ➕ `view` 模式增加鼠标移动和点击。
    第 2 条附言  ·  2016-12-03 16:30:25 +08:00
    Add new widget `hcalendar`
    第 3 条附言  ·  2016-12-06 13:30:09 +08:00
    hcal 截图(默认不启用):



    新添加了 `hsearch` 模块,默认快捷键 opt + G

    支持 Safari tabs 搜索及在线中英文翻译,支持英文同义词。

    支持 word auto suggestion (强行在搜索界面上画了个框来放这个东东 额~)

    53 条回复    2018-06-25 17:55:32 +08:00
    gongziheng1995
        1
    gongziheng1995  
       2016-11-30 11:43:18 +08:00
    非常棒…
    laxapple
        2
    laxapple  
       2016-11-30 11:56:25 +08:00 via iPhone
    感谢,希望能干掉 cheatsheet 应用
    ashfinal
        3
    ashfinal  
    OP
       2016-11-30 12:09:40 +08:00
    @laxapple 感觉差不离~ ●__●
    还可以让 cheatsheet 默认隐藏,这样弹出速度更快些。
    sinker
        4
    sinker  
       2016-11-30 13:22:07 +08:00 via iPhone
    ynyounuo
        5
    ynyounuo  
       2016-11-30 13:33:26 +08:00
    @ashfinal
    挺好的,可以卸载 KeyCue 等一大票东西
    SoloCompany
        6
    SoloCompany  
       2016-11-30 13:54:40 +08:00
    brew cask install hammerspoon
    laxapple
        7
    laxapple  
       2016-11-30 14:08:27 +08:00
    r#3 @ashfinal Cheatsheet 和 Alfred 冲突,也没法自定义触发方式
    默认隐藏什么意思?怎么弄?
    SoloCompany
        8
    SoloCompany  
       2016-11-30 14:47:05 +08:00
    速度有点慢啊
    我主要是说,比如 OPT+V 切换到 VIEW MODE ,用 HJKL 导航的时候停滞缓冲很明显
    ynyounuo
        9
    ynyounuo  
       2016-11-30 15:05:26 +08:00
    @SoloCompany 我在 View Mode 下一次跳两下
    ynyounuo
        10
    ynyounuo  
       2016-11-30 15:09:42 +08:00
    感觉有点儿太重了,而且太多冲突键位了
    只留下了 ⌥⇥ 改成了 ⌘⇧⌥⌃⇥
    ynyounuo
        11
    ynyounuo  
       2016-11-30 15:37:40 +08:00   ❤️ 1
    @laxapple 你的 Alfred 是 ⌥S 触发的?到 modalmgr 里改成别的就好了,如果是 ⌥Space 那么改「 hs.hotkey.modal.new 」
    SoloCompany
        12
    SoloCompany  
       2016-11-30 16:04:30 +08:00
    @sinker 谢谢,有空看看(后面划掉(这 15cm 的 github 用户名不得不让人有些联想啊
    ashfinal
        13
    ashfinal  
    OP
       2016-11-30 22:11:38 +08:00
    @ynyounuo
    @SoloCompany View 模式基本没怎么管,因为平时压根儿不用。😓 这两天我再优化下。
    快捷键可以自己去改,实际上非常简单。
    所有模式的入口(以 OPT 开头的快捷键)在 modemgr 文件里, resize 、 view 、 app 模式在 basemode 文件里。
    ashfinal
        14
    ashfinal  
    OP
       2016-11-30 22:21:35 +08:00
    @laxapple Cheatsheet 我直接用的别人的代码。
    我大概看了下,显示的时候开了个 webview 。我的意思是如果隐藏 webview 而不是直接关闭重开,应该速度会快很多。
    甚至不用 webview 而是直接在屏幕上画出来,这样资源占用和反应时间都得到了解决。

    说到底还是 cheatsheet 自己平时用的少,懒得深入优化 ʅ(。◔‸◔。)ʃ
    ashfinal
        15
    ashfinal  
    OP
       2016-11-30 22:25:25 +08:00
    @ynyounuo 要说内存占用,还是相当可以的。而且可以把自己不用的模块给关掉。
    冲突键位那么多嘛?可以告知下都与哪些软件冲突呀?
    当时就是希望 awesome-hammerspoon 能够替代一大票效率软件的。●__●
    laxapple
        16
    laxapple  
       2016-11-30 23:28:04 +08:00
    r#11 @ynyounuo No ,我指的 Mac 上一款快捷键提示应用也叫 Cheatsheet 的,冲突和 Alfred 启动键无关,而是经常在执行一个 Alfred Action 之后 Cheatsheet 被自动触发。
    ashfinal
        17
    ashfinal  
    OP
       2016-11-30 23:44:34 +08:00
    @ynyounuo
    @SoloCompany 晕死,刚发现 resize 和 view 模式下少写了一个参数,导致 repeat 没有被调用。
    已经修复,也就是说现在你可以按住 H 、 J 、 K 、 L 键不放调整窗口大小了。

    另外, view 模式下用滚轮代替击键,现在应该没什么卡顿感了。 Cheers !
    ashfinal
        18
    ashfinal  
    OP
       2016-11-30 23:54:30 +08:00
    @laxapple 执行 Alfred Action 后 Cheatsheet 被自动触发?可以检查下 OPT+S 以及 CMD+CTRL+OPT+S 这两组快捷键占用
    zander
        19
    zander  
       2016-12-05 15:23:22 +08:00
    有个 menubar_indicator 里中文日文什么的写什么? Pinyin - Simplified 不识别。
    ashfinal
        20
    ashfinal  
    OP
       2016-12-05 15:36:06 +08:00
    @zander 什么意思?没明白 是程序中文名嘛?一般写可执行文件名
    zander
        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.
    zander
        22
    zander  
       2016-12-05 15:46:16 +08:00
    @ashfinal debug 了一下发现它并不能识别中文输入法。
    ashfinal
        23
    ashfinal  
    OP
       2016-12-05 15:51:05 +08:00
    @zander 刚大概看了下 应该是自己找下中文 /日文的 keyboard layout 名称,然后在文件开头 color table 里定义一下颜色。
    ashfinal
        24
    ashfinal  
    OP
       2016-12-05 15:54:06 +08:00
    @zander 应该可以吧 虽然没仔细看。。。 原理都一样的
    brq417059
        25
    brq417059  
       2016-12-05 15:57:25 +08:00
    @ashfinal 看到楼主的 vim 截图,非常喜欢配色。请问是什么?
    ashfinal
        26
    ashfinal  
    OP
       2016-12-05 16:05:48 +08:00
    @brq417059 额 自己改的 paper 主题,其实还有些不太完善。 https://github.com/ashfinal/vim-colors-paper

    vimrc 配置在这里 : https://github.com/ashfinal/vimrc-config
    Lattez
        27
    Lattez  
       2016-12-05 18:29:06 +08:00 via Android
    前几天刚有一朋友分享了自己的配置,看来可以准备开始重新捡起来用了
    ashfinal
        28
    ashfinal  
    OP
       2016-12-05 18:52:59 +08:00
    @Lattez 有好用的脚本可以分享出来 大家都嗨皮呀 ●__●
    ashfinal
        29
    ashfinal  
    OP
       2016-12-06 13:34:02 +08:00
    添加了新的模块 具体见附言

    自个顶下 (˶‾᷄ ⁻̫ ‾᷅˵) 嗯
    lonenol
        30
    lonenol  
       2016-12-07 09:02:49 +08:00
    计时器不生效....那个网速 时钟和日历要是默认隐藏的就好了..
    ashfinal
        31
    ashfinal  
    OP
       2016-12-07 09:59:51 +08:00
    都可以设置的。配置文件在 `~/.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 ~
    ashfinal
        32
    ashfinal  
    OP
       2016-12-07 10:08:51 +08:00
    @lonenol 咦?没 at 上。
    计时器不生效这问题有点大。。。
    总之多看文档,有问题提 issue
    ming9083
        33
    ming9083  
       2016-12-07 10:17:12 +08:00
    mark
    ashfinal
        34
    ashfinal  
    OP
       2016-12-07 10:27:57 +08:00   ❤️ 1
    @ming9083
    别光 mark ,记得加星。ԅ(¯ㅂ¯ԅ)
    ossphil
        35
    ossphil  
       2016-12-07 21:11:19 +08:00
    建议在默认的配置里避开常用的一些组合键
    ashfinal
        36
    ashfinal  
    OP
       2016-12-08 00:24:26 +08:00
    @ossphil 可以具体举些例子吗?
    现在基本上都是 opt 键 + key 。
    opt 键在我这里都是用作输入“∆¬˚Ω≈åœ∑µ” 这类特殊符号的,除了 opt + space ,冲突几率应该很小?
    ossphil
        37
    ossphil  
       2016-12-08 15:49:08 +08:00
    @ashfinal 我的就是 option+space ,用来切换输入法的。好像也是 macOS 默认的输入法切换键吧?其他的还没有,不知楼上各位说冲突多的还有什么键。
    ashfinal
        38
    ashfinal  
    OP
       2016-12-08 16:44:22 +08:00
    @ossphil 正在改这个呢 下次 commit 提供更多自定义选项~
    MartinWu
        39
    MartinWu  
       2017-02-23 16:18:54 +08:00
    作者还镇守这里吗? 我想问下 cheatsheet 模式,是要安装 cheatsheet 这个应用吗? 我没有装,然后我用快捷键激活 cs 模式后,除了右下角显示 cs mode 外,并没有什么变化~~
    ashfinal
        40
    ashfinal  
    OP
       2017-02-24 08:16:16 +08:00
    @MartinWu 不需要安装 cheatsheet 应用。

    之前这个模块是好使的,但是最近确实报错没法用了。因为这模块代码当时是从别人那直接拿的,不太熟悉,需要深入读一遍找出问题出在哪。

    个人基本不用这个模块,所以还是希望有人提 pull request 好一些。(偷点懒~
    MartinWu
        41
    MartinWu  
       2017-02-24 08:23:32 +08:00 via iPhone
    @ashfinal 噢噢,懂了。
    MartinWu
        42
    MartinWu  
       2017-02-27 20:17:50 +08:00
    @ashfinal 我找到问题所在了,让我 commit 一下?
    ech0x
        43
    ech0x  
       2017-08-29 16:55:55 +08:00
    哇,最近在看 awesome-hammerspoon 居然发现了原作者,配置写的很好啊
    ashfinal
        44
    ashfinal  
    OP
       2017-08-29 18:34:47 +08:00
    @ech0x 感谢支持 : )

    最近刚把配置重写了一遍,全改成了 Spoon 分发包格式。欢迎提建议,一同改进哦。
    ech0x
        45
    ech0x  
       2017-09-10 06:30:40 +08:00 via iPhone
    @ashfinal 自己写的一直没你的快,我还纠结了好久。后来仔细看了文档才发现可以关闭动画😂。说起来,现在能不能实现自动的窗口布局啊,就像窗口管理器一样。。官方说 windowslayout 还不稳定。
    ashfinal
        46
    ashfinal  
    OP
       2017-09-10 11:18:56 +08:00
    @ech0x 可以尝试一下。与此相关的两个模块大概是 hs.application.watcher 和 hs.window.layout。

    不过,macOS 上已经有类似的平铺窗口管理器: https://github.com/koekeishiya/kwm。个人觉得就没有必要继续折腾了。
    ech0x
        47
    ech0x  
       2017-09-12 06:01:55 +08:00 via iPhone
    @ashfinal 看我发的帖子 /t/370682,kwm 还不够成熟。。
    ech0x
        48
    ech0x  
       2017-09-12 06:10:57 +08:00 via iPhone
    @ashfinal 我觉得 tilling windows manage 就是一般人不知道有什么用,但用过一次就回不去的东西。最近少数派介绍窗口管理器的文章越来越多了,大概窗口管理器会是个新潮流吧。。
    ashfinal
        49
    ashfinal  
    OP
       2017-09-12 07:48:20 +08:00
    @ech0x Linux 上平铺管理器还是挺好使的,估计 macOS 上体验就一般了。

    但对平铺管理器也不必看的那么重。现有的层叠式具有自身的优点,而平铺式复古和简化的痕迹比较明显。
    ech0x
        50
    ech0x  
       2017-09-12 13:38:14 +08:00 via iPhone
    @ashfinal 我觉得现在的趋向是多屏了,对于多数人都不太追求效率,这时层叠式的明显更符合直觉。但是就效率而言,无疑是平铺式的更好。
    ashfinal
        51
    ashfinal  
    OP
       2017-09-12 17:34:44 +08:00
    @ech0x “更符合直觉”这一点就够了。平铺式这个概念并不新,geek 间自己用用就好。
    zeefeng
        52
    zeefeng  
       2018-06-25 16:28:26 +08:00
    终于发现一款满意的平铺式桌面了。自从 Arch 转到 macos 后就一直在寻找类似于 awesome 的软件了,谢谢分享。
    zeefeng
        53
    zeefeng  
       2018-06-25 17:55:32 +08:00
    刚在学习 lua,发现这篇文章的模块化设计思路挺不错的,个人感觉会便于后期的维护。
    http://seanxp.com/2016/05/mac-hammerspoon/
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5774 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 01:43 · PVG 09:43 · LAX 17:43 · JFK 20:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.