Matrix 精选

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。

文章代表作者个人观点,少数派仅对标题和排版略作修改。


macOS 是个优秀的桌面操作系统,但作为生产力工具而言,却依然有着这样那样的短板。这里的「短板」倒不是说 macOS 系统有缺陷,而是它简洁的面貌下,反而提供了一个广阔的「可能性」—— 我们可以通过工具来对系统功能进行增强,从而定制出完全属于自己的一整套操作习惯。就像是劳动人民掌握了工具一样,生产效率自然也会大大提高。

而在这之中,能称得上「神器」的系统增强工具不多,但 Keyboard Maestro 绝对是顶得上这个名号的。为什么这么说呢?

关联阅读:Keyboard Maestro 入门指南

第一点是它真的强大到让你难以想象。你所想要的许多扩展性功能,都可以通过它来自定义;其次就是它很轻量化,只有 24.4MB 的初始体积,完美诠释了什么叫「浓缩就是精华」;第三点,也是最重要的一点:它还能给你省不少钱。

没错,一个售价高达 36 美元(人民币付款为 267.89 元)的软件,还能给你省钱。因为一个 Keyboard Maestro 能做的可不是简单地改改键位,或者做一些复杂的流程的自动化,它更可以替代多款收费的效率 / 工具软件,一个顶几个。

改键工具(如 Karabiner)

Karabiner 是一款在 macOS 上进行键盘映射的工具。而有了 Keyboard Maestro 之后,我们就可以通过 Macro 来对键盘进行映射和更改,实现和 Magic Keyboard 完全一样甚至是超越原生键盘的第三方键盘体验。

关联阅读:让键盘变成你想要的样子:改键利器 Karabiner-Elements

例如,我目前就将自己的 IKBC DC108 机械键盘的键位改成了下面这样:

修改方法也很简单。创建一个「hot key」为触发项的 Marco,然后在 Actions 中找到「Simulate Hardware Key」拖到右侧的「No Action」中,并在下面选择你想要映射的按键即可。

窗口管理工具(如 Mosaic / Magnet / Moom)

众所周知,macOS 的窗口管理功能一直都不尽如人意,因而诞生了大量的窗口排列软件,如 Mosaic / Magnet / Moom 这些。但实际上,Keyboard Maestro 同样提供了一套窗口管理的 Action,而且还可以精确到屏幕像素的级别。

关联阅读:为什么 Mosaic 是窗口管理的理想选择

在 Keyboard Maestro 中,你可以通过一个简单的 Marcos 来实现窗口管理。它默认提供了左右分屏、上下分屏、最大化、全屏和四角分屏,基本能涵盖绝大部分的需求。

如果你觉得这些还不能够满足,你也可以通过「SCREEN / SCREENVISIBLE」函数来对窗口进行精确的缩放和移动控制。

具体的教程可以戳这里:用 Keyboard Maestro 实现窗口排列管理

音频切换工具(如 AudioSwitcher)

如果你像我一样,有多个音频播放设备,那么如何进行音频切换就是一个麻烦事。好在现在 macOS 已经可以实现点击右上角的音量按钮来选择音频输出设备,不像以前一样还要按住 option 键。但不管怎样,这些操作都显得不够「优雅」。试想,只要你在键盘上按下一个按键,音频播放设备就会自动切换,原本在扬声器播放的音乐立刻就变成了从耳机输出,是不是很爽?

App Store 中,有一款叫售价 6 元的 AudioSwitcher app 虽然可以实现这个功能,但它的操作方式并不友好,还偶尔有失灵的问题。而且它还有一个最大的问题,就是它还会创建一个难以删除的音频输出选项,令强迫症无法忍受……

而 Keyboard Maestro 的实现方式则要有效且优雅许多。借助 Keyboard Maestro 中的「Execute an AppleScript」,它便可以让你在触发某项条件时快速运行一个 AppleScript 脚本,从而达到目的。

首先,我们需要设置一个以快捷键为触发选项的 Macro,并在 Action 中拖入「Execute an AppleScript」,然后复制以下的音频输出切换脚本(记得删除代码里的「-- XXXX」注释文字):

tell application "System Events" to tell process "SystemUIServer"

    tell (menu bar item 1 of menu bar 1 whose description contains "volume")

        click

        set target to "LG HDR 4K" -- 修改为要切换设备的名称

        set alternative to "MacBook Pro 扬声器" -- 修改为要切换设备的名称

        set retry to 1 -- 重试次数,可为 0

        set interval to 1 -- 重试间隔(秒),可为小数

        if exists (menu item 1 of menu 1 whose title is target and value of attribute "AXMenuItemMarkChar" is "✓") then

            set target to alternative

        end if

        repeat with counter from 0 to retry

            try

                click (menu item target of menu 1)

                exit repeat

            end try

            if counter < retry then

                delay (interval)

            else

                key code 53

            end if

        end repeat

    end tell

end tell

设置完成后,当你按下对应的按键,就可以立刻切换到另一个音频输出设备上进行播放了。

插个故事:一键切换音频的这个想法是在看到了王自如的 Office Tour 之后诞生的,大概是 2016 年初。当时用了 Automator(俗称「扛炮机器人」)+ Karabiner 来实现,还在 Zealer+ 论坛写了一篇很长的文章,但是后来 Zealer+ 关闭了,文章也找不回来了。现在的这个脚本是我派作者 JayQi 所写,实现的方式和数量都比我初改的要好,因此要特别感谢一下他。

在这里我也放上 JayQi 这篇文章的「传送门」:Mac 连了多个音箱耳机想快速切换?这里有个 Geek 一点的方法

防误退出工具(如 SlowQuitApps)

误触 Command + Q,确实是一件让人头大的事情。比如当你想要用 Command + W 关闭一个 Safari 窗口时,一不小心手抖按到了旁边的 Q,就把所有窗口都给关掉了,这种体验真的是很难受……

而且,「手抖党」似乎也不是只有我一个人,看来大家都对 Command + Q 这个按键感到了无奈,不然就不会有这么多防止误按 Command + Q 的 app 出现了吧……

关联阅读:告别误触,防止「手抖」退出 macOS 应用:SlowQuitApps

不过有了 Keyboard Maestro,这些 app 你统统都不需要了。不仅如此,你还可以根据自己的需求,设置哪个 app 需要退出确认,哪一些则可以直接退出。

这里需要使用的就是 Keyboard Maestro 里的「IF」条件判断。创建一个叫「防手抖」的 Macro,在上面的「New Trigger」中选择「Hot Key Trigger」,并将快捷键设为 Command + Q。

然后,拖一个「If Then Else」的 Action 到右边,在下面的「New Condition」中选择「Application Condition」。接着,选择需要退出提醒的 app,并按照下图所示,在下方加入一个 Alert 给予提示,然后再在下面用「Type a Keystroke」Action 来模拟按下 Command + Q。

这样一来,在你按下 Command + Q 之后,Keyboard Maestro 就会运行一次「防手抖」,如果是你选中的 app,就会提醒你确认之后再退出,而不需要确认的则会正常立刻退出。

应用切换工具(如 Manico)

macOS 也提供了一种类似 Windows 的 app 切换快捷键:Command + Tab。但是一旦 app 开启的数量较多,切换起来就变得异常麻烦,需要不停地按 Tab,不仅繁琐,效率也大打折扣。而 Manico 这类软件就是为了解决这个问题诞生的。它不仅可以快速地在打开的 app 间进行切换,如果你没有打开对应的应用,Manico 还可以帮你打开。

关联阅读:简洁、高效、易用,Mac App 快速启动及切换工具:Manico 2.0

不过,有了 Keyboard Maestro 之后,Manico 大概率就要失业了……除了有个好看的界面之外,前者在功能上基本可以替代后者。

创建一个 Marco,选择触发行为为「Hot Key Trigger」,然后输入你想要启动对应 app 的快捷键,接着在左边找到「Activate a Specific Application」并拖到右边进行设置,在「Activate」旁选择你需要切换到前台的 app,并勾选下面的两个选项,就可以通过指定的快捷键快速切换窗口。

剪贴板工具(如 Paste)

Paste 是一款 macOS 上颜值相当高的剪贴板软件,但它对空间的占用却「令人发指」。其实和上面一样,Keyboard Maestro 也有一套剪贴板记录工具,除了没 Paste 好看之外,其他啥都不差。

关联阅读:你其实需要一款 Mac 剪贴板工具,而且就是这个:Paste

这里的设置相当简单,只需要创建一个 Marco 并设定快捷键,然后在 Action 中选择「Activate Clipboard History Switcher」即可。用法和 Paste 类似,复制时自动记录,双击即可粘贴。

OCR 工具(如 iText)

是的……你没看错,Keyboard Maestro 甚至还能替代 iText 进行 OCR 文字识别。当然了,识别的工作它干不了,但通过调用百度的 OCR API,便可以让 Keyboard Maestro 获得此等「神功」。

关联阅读:有了 iText:你截图,腾讯 OCR 帮你识别文字

而且对比与 iText 免费版只有每月 20 次的限制,Keyboard Maestro + 百度 OCR API 每天可以免费调用 5 万次……🤣

具体的操作方式和过程这里就不多在复述,大家可以按照 这篇文章,相信也能理解。不过要运行这个 Marco,需要两个前提条件:一是需要安装 Python 3,二是要注册百度云的 API。好在这两个并不麻烦,而且教程也写得很详细。

结语

其实,借助 AppleScript 和 Shell Script,Keyboard Maestro 可以替代的可不仅仅只是上面这些 app。例如使用 exiftool 或 mogrify 就可以做成一个一件清除照片 exif 的工具,干掉 Photo Zapper 这一类的 app。但限于篇幅长度,这里就不再举例,可以爬一爬 Keyboard Maestro Wiki 和对应的命令 Wiki 自己鼓捣。

总之,270 元的 Keyboard Maestro,给你换来的是无尽的想象力,毕竟「Maestro」这个名字可不是白叫的。

> 下载少数派 客户端、关注 少数派公众号,让你的工作更有效率 ⏱

> 特惠、好用的硬件产品,尽在 少数派sspai官方店铺 🛒