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

Keyboard Maestro 的替代品 Karabiner Elements, Hammerspoon

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

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

    昨天做公司的破培训,用 keyboard maestro 识别并自动点击屏幕上的下一页的箭头什么的,就这个,我不觉得 karabiner 和 hammerspoon 做起来会容易。
    Contextualist
        6
    Contextualist  
       273 天前
    核心要义是利用这些软件调用脚本( 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 配置文件自己改。脚本命令的话,把自己的需求上网搜一下基本都能找到。
    linxinyue
        7
    linxinyue  
    OP
       273 天前 via iPhone
    @ruidoBlanco 谢谢,我也是感觉 KM 更好用,不太理解为什么推荐另外两个也蛮多的。觉得可能在价格因素之外还有其他什么原因,就是那种 KM 无法实现,而其他可以轻易实现的场景。所以才发帖咨询一下,毕竟多了解一种工具特性也没什么坏处😂
    sohunjug
        8
    sohunjug  
       273 天前
    hm 可以实现 linux i3wm 窗口自动平铺
    sohunjug
        9
    sohunjug  
       273 天前
    各种自动化 有空自己写的话
    linxinyue
        10
    linxinyue  
    OP
       273 天前 via iPhone
    @Contextualist 谢谢大佬👍,我研究研究高级设置,自己配置试试
    linxinyue
        11
    linxinyue  
    OP
       273 天前 via iPhone
    @sohunjug 我使用 KM 自己写了一些简单的自动化,非常方便,然后看了一下 HM 的例子,感觉写起来好复杂样子,还要编程(虽然我是程序员,但是感觉还是 KM 那种拖拽组合的更友好)所以在想为什么舍弃简单的而使用复杂的🤔
    Tink
        12
    Tink  
       273 天前 via Android
    kaeabiner 是映射键盘的,hm 能做的太多了,本质是一个脚本语言
    sohunjug
        13
    sohunjug  
       273 天前
    @linxinyue #11 自定义添加 menubar 自定义移动窗口位置 自定义浏览器打开链接 等等。。。
    linxinyue
        14
    linxinyue  
    OP
       273 天前 via iPhone
    @Tink 谢谢,说起是脚本语言,我觉得类比我以前熟悉的 windows 平台的软件,HM 类似于 AHK ,而 KM 类似于 Quicker 。虽然我看过 AHK 但是感觉麻烦没有怎么使用,反而 Quicker 这种搭积木式的软件让我当时如获至宝,这样看来也是 KM 更适合我的需求,没必要使用更复杂的 HM 。觉得百分之八十的需求,使用 KM 可以快速方便的完成。
    linxinyue
        15
    linxinyue  
    OP
       273 天前 via iPhone
    @sohunjug 除了第一个我不清楚之外,其他好像都能通过 KM 很方便实现,所以看起来没有什么特殊的需求必须要使用 HM 😂
    sohunjug
        16
    sohunjug  
       273 天前
    @linxinyue #15 自定义移动窗口位置 非按键触发 打开全自动的
    sohunjug
        17
    sohunjug  
       273 天前
    @linxinyue #15 在公司 自动用 chrome 在家 自动用 safari baidu 自动用 chrome 其他用 safari 等等 。。。。
    linxinyue
        18
    linxinyue  
    OP
       273 天前 via iPhone
    @sohunjug 好的吧,大佬需求有点复杂😂 我目前没有这样的需求😅 看来确实部分场景下使用 HM 更方便一些~
    sidkang
        19
    sidkang  
       273 天前
    karabiner 要高级使用的话,json 配置高级操作真的难,请参考这个: https://github.com/yqrashawn/GokuRakuJoudo

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

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

    因为我想把 KE 去掉,只用 KM 。但是又需要一个超级键,KM 实现不了
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1132 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 19:50 · PVG 03:50 · LAX 12:50 · JFK 15:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.