article_image

工具用久了,总会出现一些有心人,愿意学习快捷键以提升操作速度。但常用键位也有穷尽之日,于是就有一些软件极尽所能编排出各种奇葩键位,让人屡屡记岔、手指抽筋,遭罪之余,多少也感受到了开发商的一丝无奈。至于像 DEVONthink、BBEdit 这种利维坦级别的工具,其常用功能更是动辄几百个,点起菜单栏如同操控飞行驾驶舱,按起快捷键堪比演奏三角钢琴;“你不知道的几个 Excel 快捷键”这种文章之所以常写常青,也和 Office 套件功能庞杂、键位难记脱不了关系。

Alt text
Word 的工具栏

但是,多数用户最常用的功能也就那几项,免不了想要各取所需,把自己最需要的功能汇集于一处,例如,做一个窗口管理功能菜单,罗列常用窗口布局供君选用;或者,给 Word 配一个排版菜单,专门显示各种颜色的标注;再如,给写作软件制作一个导出选项菜单,一键输出 Markdown、HTML 或者富文本等常用格式……

Alt text
把常用功能放在 Keyboard Maestro Palette 中

想到这一步,就到了突破现有交互方式、打造自定义工具栏的时候;涉及这类需求的的工具本身就不多,能够满足高度定制化需求的,几乎只有 Keyboard Maestro(上图均来自 Keyboard Maestro)。

Palette:Keyboard Maestro 的自定义工具栏

Palette 中文直译为“调色板”1,呈现为悬浮工具栏的样式,容纳各项常用功能,确实与调色盘神似。以窗口管理为例,只需要记住一组快捷键,就把整组相关功能互换至此。

Alt text
把窗口管理功能放在 Keyboard Maestro Palatte 中

也许背诵一串古代魔法般的快捷键很“酷”,但是 Palette 更加直观省力,既不必像练钢琴那样练习快捷键,又不至于像默认菜单栏那般臃肿,不妨说,Palette 取得了快捷键和菜单栏之间的甜蜜点。

当然,支持自定义工具栏者无独有偶(例如 Paletro),如果不介意界面,懂 AppleScript 的魔术师们也可以自己动手——而 Keyboard Maestro 的精妙之处在于,其 Palette 中的功能并未写死,而是根据当前 App、所出窗口、按下的快捷键乃至几乎任何场景自动调整,只呈现和手头任务有关的功能,从而尽可能避免干扰。举个例子,同样是按下 ⌃Control-⌥Option-⌘Command-C,在 Finder 中可能需要拷贝为不同格式的路径,而在写作工具中可能是打算把 Markdown 拷贝为纯文本或富文本,借助 Keyboard Maestro 就只需要记忆一组快捷键,就能在不同应用中呈现各自的常用功能。

Alt text
同样的快捷键可在 Finder 中呼出专属动作(右)

根据 App 区分场景只是一个简单的用法,后续还会介绍其他细分场景。

Conflict Palette:最简单的 Palette

Keyboard Maestro 中的 Palette 类型多矣,不妨从设置最简单——简单到无需任何设置——的 Conflict Palette(冲突调色板)直入主题,执柯伐柯,其余的 Palette 类型也一点就通。

从快捷键到 Conflict Palette 可谓一脉相承,以窗口管理工具为例2,通常,占据左侧 1/2 屏幕是一个快捷键,占据 1/3 又是另一个,如果还需要自定义,则只能接着编新的键位,积重难返;而在 Keyboard Maestro 这里,相近的分屏功能可以绑定同一个快捷键,例如往左的各种分屏比例,可以全部设置为 ⌃Control-⌥Option-⌘Command-左箭头,按下这组捷键,就会看到相关分屏功能都出现在了 Conflict Palette 中。你可以下载 这个 Keyboard Maestro 动作组,试试这些动作在 Palette 中的交互效果。

Alt text
把常用窗口管理功能集中在 Palette 中

“Conflict”之意由此可知,即汇集键位冲突的功能。如果在原生 macOS 设置里绑定了一系列重复的快捷键,那么使用时只会听到“嘟嘟”声,不知所云;而 Keyboard Maestro 则会显示当前冲突的快捷键(前提是它们均由 Keyboard Maestro 设置,因此建议用 Keyboard Maestro 统筹电脑上的快捷键,避免用各种工具东一榔头西一棒地管理),以 Palette 样式呈现出来。

我提供的 Keyboard Maestro 动作使用了其自带模块,涉及 Keyboard Maestro 专用语法,虽然不难,但毕竟不是本文重点,所以再介绍一下绑定第三方 App 现成功能的方法,供君选择。Keyboard Maestro 有“Type a Keystroke”模块和“Select or Show a Menu Item”模块,分别用于模拟快捷键和点击菜单栏项目,可以打通 Keyboard Maestro 和其他 App。模拟快捷键非常直观,点击“Simulate keystroke”后方输入框,在此输入 App 原有键位;点击菜单栏也不难,Keyboard Maestro 会读取 App 的菜单栏,只需在“Show Menu ‘’ in the Front Application”中选定 App,再去“Menu”选项中按部就班地找到菜单栏项目。

上述整个过程中,我们都没有设置过某个叫做“Palette”的东西,这就是 Conflict Palette 的妙处:只需一个快捷键,汇集相近功能于一处,不再需要特殊设置。沿着这一思路,还可以继续简化窗口管理操作,把往右的各种分屏比例绑定在 ``⌃Control-⌥Option-⌘Command-右箭头` 上。理解了这一逻辑,其他 App 中的相似功能都大可简化为一个快捷键。当然,Keyboard Maestro 呼出 Palette 的方式不止于快捷键,直接点击、鼠标手势、定时触发等方式也一应俱全,只要搞懂 Palette 的逻辑,触发方式全凭个人喜好。

键鼠通吃的 Palette

如果 Palette 只是将常用功能从系统菜单栏中取出来,那未免也太小瞧自动化玩家。能够想到自定义工具栏这一步的用户,自然不乐意在交互方式上妥协,所幸 Keyboard Maestro 同时为 Palette 提供了键盘和鼠标(包括触控板)两种操作方式。

和系统菜单栏类似,Palette 所展示的功能可以直接点击,真正厉害之处在于,这些功能还可以通过首字母或数字快速选用(如果几个功能首字母相同,则视下一个字母或数字,依次类推)。例如“Window Left 1/2”和“Window Left 1/3”的差异仅在“2”和“3”上,则在对应 Conflict Palette 中,只需要按下 2 就能触发“Window Left 1/2”——类似的,按下 3 则启用“Window Left 1/3”。Keyboard Maestro 还会将 23 高亮显示,作为提示。

Alt text
Palette 会将触发动作的按键突出显示

以上操作,与类 Vim 的全键盘交互——比如 Vimac——隔空呼应,均为当前屏幕上可点击的部分设置了相应按键,既延续快捷键的连贯,又不用背诵冗长的快捷键键位。而比起其他工具的全键盘操作,Keyboard Maestro 的键位又基于 Macro 名称,只要看到或大概知道功能的名称就能快速调用。如果说快捷键是晦涩难记的召唤咒语,那么 Palette 的全键盘交互就是直呼其名的大白话。

为不同 App 定制专用 Palette

前文提到过,Keyboard Maestro Palette 卓尔不同之处在于场景化。我们在各个 App 中常用的功能显然有别,如果在 Markdown 编辑器里显示一堆文件处理专用功能,就是不识抬举。

Keyboard Maestro 内置了一类 Application Palette,不过不能望文生义,这类 Palette 适合更加高度定制的场景,今后我们将会用它打造常驻工具栏,例如为 PDF Expert 制作自定义常用工具栏。眼下,只需要简单分组就能为不同 App 设置专用功能。例如,你可以下载 这个 Finder 路径格式工具包,导入 Keyboard Maestro 就会发现它们单独成组,并且只适用于 Finder。在 Finder 里按下 ⌃Control-⌥Option⌘Command-C 时可以看到对应的 Palette,而在其他 App 中则不会被这些动作打搅。

Alt text
让动作只在 Finder 中生效

一旦 Palette 可以分组、分场景,就能够进一步节省记忆快捷键的功夫,在不同 App 中使用同一个快捷键呼出各自专用的 Palette。比如,不同 App 中都有“拷贝”类操作,在 Finder 里可能是拷贝路径,在 Markdown 编辑器里也许要拷贝各式文本格式,而在 Sketch 或 Photoshop 里通常是拷贝成不同格式的图片,现在只需要记住一个快捷键 ⌃Control-⌥Option-⌘Command-C,就能通吃各个 App 的“拷贝”类 Palette。

也有一些动作适用于所有 App,例如前文展示过的窗口管理类功能,就可以置于 Keyboard Maestro 默认的 Global Macro Group 文件夹中。

小结

多,不一定就是好。在线表单工具 Airtable 相比 Excel 简直堪称简陋,但是前者观察到“90% 的表格只是拿来整理数据,不需要复杂公式”,于是这个团队将 Excel 的常用功能抽出来,成功做出了 Airtable。用他们的话说,Airtable 只是采取了更加轻柔(gently)的方式引导用户,让苦于 Excel 之重的用户更舒服地完成他们已经在做的事。贾尔斯·科尔伯恩在《简约至上》中指出,只有在网站没有提供有效导航的情况下,用户才会使用搜索,所以最好先对内容进行有效地组织。这让我想起使用那些重量级 App 的经历,通常我都需要在菜单栏的 Help 选项中搜索一番,才能找到所需功能。

Alt text
DEVONthink 令人窒息的菜单栏

App 自带菜单栏通常不忍卒睹,快捷键又难以记忆,此时我们还可以主动改进交互方式。《简约至上》的建议同样适用于 App 交互,引入 Palette 就是一剂良药,能够有效组织常用功能的呈现方式,只调出此情此景下最需要的功能。

这篇文章只是一个开始,引出 Palette 这一 Keyboard Maestro 的特色交互方式,日后还会有更多 Palette 在各种场景下的应用,例如自定义 PDF Expert 标注工具栏、创建 Anki 制卡工具箱以及日常文本格式清理工具合集,等等。

Alt text
为不同工具打造专属工具箱

固然,没有 Palette 也不至于寸步难行,但是没有 Palette 统领的功能就仿佛离群马匹,终难行将万里。


  1. 如果你觉得这个单词似曾相识,不奇怪,《文森特》中那句著名“Starry, starry night”,后一句就是“Paint your palette blue and grey”。
  2. Keyboard Maestro 本身就带有窗口管理功能,不需要编程就能使用,当然你也可以用它搭配第三方窗口管理工具。

author_avatar

Lawyer, macOS/iOS Automation Amateur