无论自动化工具提供了多少现成模块,都不可能——即便是刚好——覆盖你的所有需求。传统的兜底方法是写脚本,毕竟早些年那会儿,常见的软件多是原生的,很可能支持 AppleScript——包括 Evernote 和 Microsoft 系列产品。^1
然而,姑且不谈如今各种无法脚本化的网页套壳软件,绝大多数人恐怕也没有阅读 AppleScript 等上古魔法手稿的能力。^2一款工具如果本身没有活跃的社区氛围,又撂下一句“反正我支持脚本啊”,那就是流氓。
Keyboard Maestro 开辟了疯狂造轮子和向脚本逃离之外的第三条路径:交互自动化,模拟键盘和鼠标操作。
笨办法,还是大智若愚?
模拟鼠标和键盘操作,给人的第一印象是“笨办法”,而且有人可能抛出 Windows 上的按键精灵,进一步批评 Keyboard Maestro 折腾了半天还不是回归土办法。^3
事情并非那么简单。Keyboard Maestro 模拟键盘和鼠标操作,并非只是按部就班按下某颗按键或者点击屏幕的某个角落,而是通过多种方式追踪屏幕上的元素,这意味着屏幕布局在一定范围内变化时,相应的动作也不至于失效。如果说传统模拟交互是狙击,那么 Keyboard Maestro 就是带热感因的自动制导。
举一个极端例子。原生预览软件自带几款高亮工具,但需要点开按钮、展开二级工具栏才能切换颜色,很不方便。相关按钮躲在工具栏中,没有对应的菜单栏项目,很难用脚本或快捷键操作,对此,Keyboard Maestro 有特殊应对方法:鉴于目标按钮总是位于窗口右上角,可以先确定窗口边角的坐标,再向下、向左移动一定的像素,接着模拟鼠标点击和键盘操作,最终完成一键切换高亮颜色。
无论怎样改变预览窗口的大小,或者外接一台尺寸迥异的显示器,由于目标按钮和窗口之间的相对关系基本不变,相应的 Macro 也就不容易失效。
三种常见的交互自动化
为避免混淆,此处所指的交互限于 Action 部分,而不包括 Trigger。其实正因为 Keyboard Maestro 功能过于丰富,在 Trigger 和具体模块中都涉及菜单栏和快捷键,不幸也导致许多人误把 Trigger 当成了 Keyboard Maestro 最后要执行的操作。
模拟点击菜单栏
最常用最使用也最容易设置的交互,自动化就是模拟点击菜单栏项目。当然,目标软件本身这一类交互自动化生效的前提,在 macOS 中,多数软件都会把大部分功能列入菜单栏,包括一些设计比较简约的笔记或者任务管理工具,看上去没有几颗按钮,但是翻开顶部的菜单栏仍然可以看见大量功能。这些菜单栏项目提供了重要的自动化入口。
Move or Click 模块可以点击任意菜单栏的项目^4,其主要用途有三:其一,为没有快捷键的项目绑定快捷键;其二,将不合适的键位改到顺手为止;其三,作为大型 Macro 中的组件。
……
本文选自拙作《Keyboard Maestro 进阶指引》,限时试读已结束,欢迎选购完整栏目。