起因
有这么一些应用,我们日常并不太使用,但在一段特殊时期内格外倚重,例如我会在准备考试时高频使用 MarginNote ,在准备旅行计划时高频使用地图软件。而高频使用意味着频繁的切换,于是自然想到为这些应用分配特定的启动快捷键,省去在「command + tab」切换菜单中来回寻索之苦,但这同时带来几点不便,一则每次分配快捷键都要进入诸如 Keyboard Maestro / BTT 的自动化应用进行配置,不免麻烦;二则这些并不日常使用的应用占据了宝贵的快捷键资源,不免浪费,长此以往也难以记忆。对此比较优雅的解决方案是:选择某个固定的快捷键,专门用于启动此类短期高频使用软件,在工作伊始,自动化地将此快捷键分配到当前应用上,下一次需要使用其他短期高频应用时,重新自动化地分配即可。
解决方案
核心是两个操作:「将快捷键绑定至当前应用」和「按下快捷键启动应用」,两者的逻辑都可以使用 apple script 完成,快捷键的参与则可以借助自动化软件。整体方案如下:先编写第一段脚本取出当前应用的应用名称,存入 Keyboard Maestro 中作为变量 frontApp 的值,再在 KM 中创建 Macro,以固定的快捷键作为 trigger,运行第二段脚本,脚本内编写从 KM 取回 frontApp 的值并启动相应应用的逻辑。
同时想要提及的是,之所以选择「快捷指令」来承载绑定的逻辑,是因为把指令 pin 到程序坞后可以便捷地从诸如「alfred」的启动器中调用,使用 KM 来完成当然也没问题。