Keyboard Maestro 一键即达的效率神器

Keyboard Maestro

Keyboard Maestro 是一款 macOS 平台类似 Alfred 的效率神器,其核心思想也是以一个触发器(Trigger)操作触发一连串组合动作(Action)来高效便捷的完成复杂任务,同时也十分符合『一个程序只实现一个功能,组合小程序完成复杂任务』的 Linux 哲学。

关于 Keyboard Maestro(以下简称 KM) 本身的介绍和基本使用可以先行拜读少数派的这篇长文,很详细覆盖也很全面,本篇主要记录分享下我个人使用中的一些用例和场景。

使用场景

只要我们的任务可以被分解为多个目的单一的小步骤,步骤与步骤之间可以通过标准输入输出传递数据串起来,这个任务就很可能可以使用 KM 来简化操作。

image.png

在 KM 里作为触发器的就是一组快捷键,为了解决 macOS 上可用的快捷键总是捉襟见肘的情况,可以参考上一篇《Karabiner Elements 键位定制神器》先配置一下 Hyper Key,可以尽可能的避免快捷键冲突问题。

快捷键启动(切换)任意应用

快捷键直接启动指定应用程序,这应该是最简单直接的应用场景,系统默认的 Cmd + Tab 显然总是无法 Get 到我到底想要切换哪个 App...最直接的方式就是给要切换的 App 钦定一个快捷键,无论在什么窗口下直接按下指定的快捷键就能马上脉动回来。

以 Sublime 为例,我设置的快捷键为 Ctrl + Alt + Shift + Cmd + s,其中 Ctrl + Alt + Shift + CmdHyper Key,实际操作只需要按下 CapsLock + s

image.png

与此类似,我给一些工作里切换频率最高的 App 如 Sublime、iTerm2、微信、QQ、Sequel Pro、AirMail、Chrome 和 Firefox 等都设置了一键直达,切换起来酣畅淋漓。

快捷键映射组合键

在浏览器里切换标签页,主流浏览器的快捷键基本都是:

  • Alt + Shift + t,恢复最近关闭的标签。
  • Ctrl + Shift + Tab,切换上一个标签。
  • Ctrl + Tab,切换下一个标签。
  • Cmd + w,关闭当前标签。

记忆和单手操作起来都没有那么方便,而且的我的浏览习惯是同时开多个标签放着,然后一个个去看,有时候查资料会频繁来回切换多个页面的内容做参考,所以对我来说这几个快捷键的使用频率很高。

在 KM 里我给这些快捷键做了映射:

  • F1 -> 恢复最近关闭的标签。
  • F2 -> 切换上一个标签。
  • F3 -> 切换下一个标签。
  • F4 -> 关闭当前标签。

浏览多个标签时,左手放在键盘最上面那一行,操作距离极短且记忆成本很低,效率高到飞起。

快捷键执行脚本

最强大的莫过于执行脚本了,允许执行脚本基本就意味着 you can do whatever you want,随便举几个例子:

清空回车站

虽然忘掉手动清空回收站并设置一段时间自动清空回收站是更优雅的做法,但相信太多的强迫症患者看到 Dock 上塞满的回收站图标都忍不住手动将它清空。

这里不讨论为什么 Apple 直到最近的版本才给 macOS 加上了直接删除(不经过回收站)快捷键(Option + Alt + Del),只以清空回收站作为例子来说明 KM 的用法。

image.png

图中的配置,按下 Ctrl + Shift + Cmd + E 会执行一段 AppleScript,代码如下:

tell application "Finder"
    empty trash with security
end tell

脚本的功能就是执行清空回收站的操作,一秒解救强迫症。

更强大的是不止能执行 AppleScript,还能执行 Swift 和 Shell 等,能执行 Shell 也就意味着什么不该做的事你都可以做 😂。

image.png

开关 Wifi 网络

因为公司工位的有线网比无线网要稳定很多,所以只要在工位上我就会插上网线断开 Wifi,在会议室或者回家后则会打开 Wifi,所以对我来说开关 Wifi 也是一个平均每天都会用的操作。

常规的操作当然是鼠标点击任务栏中的网络图标然后关闭,一来需要精确定位,二来需要两次操作,每天都需要操作的话也是很烦。所以我在 KM 里配了一个快捷键专门来实现开关 Wifi:

image.png

这个配置中首先定义了一个快捷键 Hyper Key + n,当快捷键被按下时:

  1. 执行一段 Shell 脚本,来实现检查 Wifi 状态并切换状态(Execute text script)。
  2. 开关操作完成后,弹出一个通知信息,显示目前的 Wifi 状态(Notification)。

Shell 代码为:

#!/usr/bin/env bash

device=$(networksetup -listallhardwareports | grep -E '(Wi-Fi|AirPort)' -A 1 | grep -o en.)
[[ "$(networksetup -getairportpower $device)" == *On ]] && v=off || v=on
networksetup -setairportpower $device $v
echo $v

注意图中有一个配置项 Save to variable,意思是把 Shell 脚本的输出内容存放到一个变量中,这个例子里变量名为 Status

通知部分:

  1. Title 填写 %ExecutingMacro% 表示标题会显示当前执行的配置名称,也就是图中的『Wifi Toggle』。
  2. Message 中填写 Wifi is %Variable%Status%.%Variable%Status% 部分表示会取用上一步 Action 所保存的变量 Status 的内容。

最终按下快捷键时的效果:

image.png

快捷键执行工作流

以上列举的几个场景为了尽量简单都只涉及到通过快捷键触发一个 Action 的情况,单个 Action 已经可以实现很多简单的高效操作,但更复杂的操作还是得靠多个 Action 串联起来形成工作流才能实现,这也正是 KM 和 Alfred 类似的工作流概念强大的地方。

查有道词典

虽然 Mac 上或者浏览器里有一万种取词查词的方法,但我还是会有一些场景下想要打开有道词典看看更详细的释义和例句,然后添加到单词本方便后续记忆。

手动操作:

  1. 选中文本。
  2. Cmd + c 复制选中文本。
  3. 双击有道图标或者 Alfred 打开。
  4. Cmd + v 粘贴复制的文本。

KM 工作流:

  1. 按下快捷键,一步搞定。
image.png

这个配置的核心是通过一个快捷键触发 复制文本、打开应用、粘贴文本 等一系列的操作,来最终完成一个相对复杂一些的任务。

可惜的是有道词典一直到目前的版本都还没有提供添加单词本的快捷键,不然添加单词本的操作也可以一气呵成在这一个工作流里。

类似的场景其实工作中还有很多,将任务分解然后结合 KM 提供的各种 Action 组合完成,效率陡增,事半功倍。

小结

虽然 Windows 上的 AHK 更为灵活,配合上 Spy++ 获取窗体控件 ID 更是能把上述例子里的单词本快捷键都加上去,但过于灵活和强大的同时,通常也意味着更高的复杂性和上手难度。

个人觉得 Keyboard Maestro 在功能强大和易用性之间找到了一个良好的平衡点,在上手难度不那么大的前提下可以变换出众多带来极大效率提升的组合,和 Alfred 并称 macOS 效率神器并不为过。

本篇只是粗浅的记录一些自己实际使用的例子,要解决更多实际的痛点还得仔细分析拆解自己的使用场景,结合 KM 种类繁多的 Action,或多或少一定能带来效率的提升,日积月累,节省出来的时间,多赚点钱或多陪陪心爱的人,随便干点什么都好 :D

参考

原文地址

关注 NewtonIO - 创造者们的技术与工具

Wechat

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容