Keyboard Maestro 的替代品 Karabiner Elements, Hammerspoon - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
M1234
V2EX    macOS

Keyboard Maestro 的替代品 Karabiner Elements, Hammerspoon

  •  1
     
  •   M1234 2021-11-10 12:18:45 +08:00 via iPhone 4874 次点击
    这是一个创建于 1435 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我一直在使用 KM 做按键映射和自动化操作,最近偶然发现 Karabiner Elements 和 Hammerspoon 前者是按键映射,后者是自动化工具。看了 v 站和知乎上的很多介绍,但是感觉这两个软件所做的 KM 都能做的样子。所以知道使用这两款软件的高手都是在什么场景下使用的,有什么特殊的技巧和功能吗?希望有熟悉这三款软件的好心人帮忙解惑,万分感谢
    30 条回复    2022-05-08 10:26:08 +08:00
    muntoya
        1
    muntoya  
       2021-11-10 12:32:51 +08:00
    我也用了几年 KM ,一直付费升级,最近感觉没有用太多功能,准备用其它的来取代了。
    我是 dock 隐藏,切软件全用快捷键。方向键映射成 emacs 的,浏览器可以全用快捷键浏览和切 tab 。
    某些软件的菜单栏设了快捷键,比如 markdown 的各种格式化,其实这个也可以用系统自带配置来设置。
    另外就是一些工具功能,比如界面全屏、时间戳转时间等等。
    还有些触发功能,比如某些软件挂了自动拉起或者屏幕点亮运行软件之类的。

    其实 alfred 也可以做快捷键工具。
    6i3BMhWCpKaXhqQi
        2
    6i3BMhWCpKaXhqQi  
       2021-11-10 12:49:02 +08:00
    抛开价格因素,Karabiner 比较低层,应该是 keyboard driver 的东西,所以不会出现 App 或者全局的 shortcut 冲突的问题。而且也支持分 app 配置不同的 shortcut ,所以比直接在 keyboard 上刷 firmware 能做的事情更多。
    所以,我之前也买了 KM ,但后来不用了,改用了 Karabiner
    M1234
        3
    M1234  
    OP
       2021-11-10 13:15:14 +08:00 via iPhone
    @muntoya 谢谢回复,我现在用 KM 还是蛮多的,但是看到后面两个替代品,觉得好像不如 KM 好用,所以我在想除了价格优势,更想要问的是后面两个是有什么特殊的功能和使用场景吗
    M1234
        4
    M1234  
    OP
       2021-11-10 13:17:17 +08:00 via iPhone
    @changhai 目前 KM 键盘映射感觉还够用,还没有遇到必须需要 KE 这种更底层替换的场景
    ruidoBlanco
        5
    ruidoBlanco  
       2021-11-10 13:24:34 +08:00
    几天前刚刚付费升级了 10 。Keyboard Maestro 是我在 Mac 下唯一的一个掏钱的非游戏软件。以前曾买过 Alfred ,现在已经删除不用了。

    昨天做公司的破培训,用 keyboard maestro 识别并自动点击屏幕上的下一页的箭头什么的,就这个,我不觉得 karabiner 和 hammerspoon 做起来会容易。
    Contextualist
        6
    Contextualist  
       2021-11-10 13:32:37 +08:00
    核心要义是利用这些软件调用脚本( bash 或 Automator ,macOS 其实开放了很多方便的命令),比如说 Karabiner Elements ,就是用它 Complex modifications 里的 `shell_command`(需要修改它的 JSON 配置文件,我会放在最后说)

    我自己用了好几年的配置主要是用 Karabiner Elements 做键盘映射,ControlPlane 做情景感知,然后触发的都是脚本指令( Hammerspoon 几年前试过一下,弃用了,感觉 CPU 占用太高了,而且除了窗口排列相关的命令都可以用 Karabiner Elements + 脚本代替,不知道现在更新得怎么样了)

    举几个代表性的例子:

    Karabiner Elements:
    右 + d: 打开下载文件夹
    右 + delete:熄屏
    + F2(亮度+):禁止休眠并弹出一个常驻通知(点击通知以取消)
    F3(任务控制) 和 F4(launchpad) 分别被映射为蓝牙和 WI-FI 的开关了

    ControlPlane:
    系统休眠前(合盖后)关 WI-FI ,系统唤醒后(开盖后)开 WI-FI
    ( ControlPlane 的作用相当于 iOS 快捷指令里的自动化场景非常广,甚至有诸如当连接到特定显示器、摄像头光线传感器之类。可惜作者不主动维护了,Big Sur 还能用,就是不知道未来哪个 macOS 大版本就用不了了)

    Karabiner Elements 的高级设置可以参看 https://karabiner-elements.pqrs.org/docs/manual/configuration/configure-complex-modifications/ 。先下载它的一些现成的配置,然后再找到它的 JSON 配置文件自己改。脚本命令的话,把自己的需求上网搜一下基本都能找到。
    M1234
        7
    M1234  
    OP
       2021-11-10 13:39:28 +08:00 via iPhone
    @ruidoBlanco 谢谢,我也是感觉 KM 更好用,不太理解为什么推荐另外两个也蛮多的。觉得可能在价格因素之外还有其他什么原因,就是那种 KM 无法实现,而其他可以轻易实现的场景。所以才发帖咨询一下,毕竟多了解一种工具特性也没什么坏处
    sohunjug
        8
    sohunjug  
       2021-11-10 13:40:36 +08:00
    hm 可以实现 linux i3wm 窗口自动平铺
    sohunjug
        9
    sohunjug  
       2021-11-10 13:41:01 +08:00
    各种自动化 有空自己写的话
    M1234
        10
    M1234  
    OP
       2021-11-10 13:41:01 +08:00 via iPhone
    @Contextualist 谢谢大佬,我研究研究高级设置,自己配置试试
    M1234
        11
    M1234  
    OP
       2021-11-10 13:55:52 +08:00 via iPhone
    @sohunjug 我使用 KM 自己写了一些简单的自动化,非常方便,然后看了一下 HM 的例子,感觉写起来好复杂样子,还要编程(虽然我是程序员,但是感觉还是 KM 那种拖拽组合的更友好)所以在想为什么舍弃简单的而使用复杂的
    Tink
        12
    Tink  
    PRO
       2021-11-10 13:57:54 +08:00 via Android
    kaeabiner 是映射键盘的,hm 能做的太多了,本质是一个脚本语言
    sohunjug
        13
    sohunjug  
       2021-11-10 13:59:09 +08:00
    @linxinyue #11 自定义添加 menubar 自定义移动窗口位置 自定义浏览器打开链接 等等。。。
    M1234
        14
    M1234  
    OP
       2021-11-10 15:33:53 +08:00 via iPhone
    @Tink 谢谢,说起是脚本语言,我觉得类比我以前熟悉的 windows 平台的软件,HM 类似于 AHK ,而 KM 类似于 Quicker 。虽然我看过 AHK 但是感觉麻烦没有怎么使用,反而 Quicker 这种搭积木式的软件让我当时如获至宝,这样看来也是 KM 更适合我的需求,没必要使用更复杂的 HM 。觉得百分之八十的需求,使用 KM 可以快速方便的完成。
    M1234
        15
    M1234  
    OP
       2021-11-10 15:49:09 +08:00 via iPhone
    @sohunjug 除了第一个我不清楚之外,其他好像都能通过 KM 很方便实现,所以看起来没有什么特殊的需求必须要使用 HM
    sohunjug
        16
    sohunjug  
       2021-11-10 15:50:33 +08:00
    @linxinyue #15 自定义移动窗口位置 非按键触发 打开全自动的
    sohunjug
        17
    sohunjug  
       2021-11-10 15:51:32 +08:00
    @linxinyue #15 在公司 自动用 chrome 在家 自动用 safari baidu 自动用 chrome 其他用 safari 等等 。。。。
    M1234
        18
    M1234  
    OP
       2021-11-10 15:58:15 +08:00 via iPhone
    @sohunjug 好的吧,大佬需求有点复杂 我目前没有这样的需求 看来确实部分场景下使用 HM 更方便一些~
    sidkang
        19
    sidkang  
       2021-11-10 16:09:44 +08:00
    karabiner 要高级使用的话,json 配置高级操作真的难,请参考这个: https://github.com/yqrashawn/GokuRakuJoudo

    km 、karabiner 、hammerspoon 目前都有在用,打算减少 km 的使用,hm 负责具体的各种 trigger ,km 负责快捷键的分配,具体通过 url 触发
    M1234
        20
    M1234  
    OP
       2021-11-10 16:30:39 +08:00 via iPhone
    @sidkang 谢谢大佬,这两天研究一下,不过感觉还是先用 KM 然后看一下 karabiner 。hammerspoon 暂时先不看了,感觉这个做一个东西比较复杂,付出回报比不高,主要是目前 KM 也能比较好满足我的需求了
    M1234
        21
    M1234  
    OP
       2021-11-10 16:35:31 +08:00 via iPhone
    @sidkang 另外问一下大佬,很好奇是什么原因让您选择减少 KM 的使用而转向另外两个软件呢?
    sidkang
        22
    sidkang  
       2021-11-10 16:48:21 +08:00   1
    客气,不是大佬,可以 tg 交流~,ID 同 V2ex

    主要还是 km 的一些优点我确实用的少(比方说文字处理,各种 gui 的结合,自制 plug-in ,软件 GUI 的显示),而且我也逐渐把一些常用 macro 给移植到 hammerspoon 上了,karabiner 严重推荐,即便是用 km ,因为 km 的按键可以很方便地区分左右 cmd 等等修饰键,并且可以使用 fn 作为触发的基础,快捷键的组合可能性多的是几何倍数= =
    sidkang
        23
    sidkang  
       2021-11-10 16:49:02 +08:00
    上面 km 的按键改成 karabiner ,打错了~
    winddweb
        24
    winddweb  
       2021-11-10 16:59:04 +08:00
    @sidkang 因缺斯汀,一直想配置 karabiner 但是没空研究那个格式,这个看起来不错
    M1234
        25
    M1234  
    OP
       2021-11-10 17:13:32 +08:00 via iPhone
    @sidkang 目前感觉确实 karabiner 还是蛮有意思的。不过相比于 hm 的代码编程,我觉得 km 的 gui 的积木式编程更和我心意,包含上面说的文字处理用的都蛮多的。现在我想现在我明白三个的区别优势了,再次感谢
    QinXiao1990
        26
    QinXiao1990  
       2021-11-11 01:10:17 +08:00
    Karabiner+Hammerspoon 的设置可以参考这个: https://github.com/jasonrudolph/keyboard
    对我来说是打开了新世界的大门
    M1234
        27
    M1234  
    OP
       2021-11-11 10:02:46 +08:00 via iPhone
    @QinXiao1990 看了一下感觉确实蛮有趣的,谢谢推荐
    9
        28
    9  
       2022-05-04 11:41:47 +08:00
    请教楼主,使用 KM 的话,一般需要搭配 Karabiner Elements 使用,设置 hyper 键吧。
    楼主是在没有使用 Karabiner Elements 的情况下使用 KM 的吗?按键映射是怎么设置的呢?
    M1234
        29
    M1234  
    OP
       2022-05-07 13:10:54 +08:00
    @9 #28 啊,主要还是通过 KM 实现的,主要是一些特殊无法映射的按键才使用 KE ,例如 Right Command + hjkl 实现上下左右按键,Caps + 字母 实现快速定位软件等。。几个比较简单的功能。。其他多数功能都是直接使用 KM 的 Hotkey Trigger 来做的(另外了解了一下 Hammerspoon ,感觉有点难就没有继续看)
    9
        30
    9  
       2022-05-08 10:26:08 +08:00
    @linxinyue KE 我目前也是用了 Caps 做超级键,我原先以为你有不需要用 KE 的方案

    因为我想把 KE 去掉,只用 KM 。但是又需要一个超级键,KM 实现不了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5836 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 06:26 PVG 14:26 LAX 23:26 JFK 02:26
    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