写了一份(貌似)不错的 Hammerspoon 的配置 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ashfinal
V2EX    Apple

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

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

    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 默认隐藏,这样弹出速度更快些。
    /table>
    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     Solana     1021 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 18:34 PVG 02:34 LAX 11:34 JFK 14:34
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86