Keyboard Maestro
Keyboard Maestro:键盘大师
Keyboard Maestro(键盘大师,后面我们简称KM)应该是我用过的功能最为丰富的Mac键盘增强工具,她能将你的keyboard的作用发挥到极致,她能提供的服务不只是基础的Hot Keys,像应用程序快速操作菜单(Palette),程序切换窗口,宏命令同步,脚本执行,剪切板切换窗口这些功能才是人家的看家本领。
KM的所有功能都由Marco实现,你可以将不同类型的Marcos归为到一组Group,而Marco本身只是个组织形式,真正的高手还是背后的Trigger,Script和Action。Trigger的种类除了Hot Key,还有Typed String(输入字符)、Application(应用程序)、Login、System Wake等15种;除了使用Trigger,我们还能使用Apple Script,Python Script等5种脚本来触发Action;Action的可选方案就更多了,大约有近百种这个级别,下面我们分享一些非常具代表性的Marco。
基础功能
启动引用程序
使用KM来设置调用应用程序的Macro是我的首要需求,这里首先在Macros列表里新建一个Macro,然后点击“New Trigger”按钮,在Trigger列表里选择“Hot Key Trigger”,设置好热键后(例:⌘+c),点击“New Action”按钮,在Actions列表里找到“Open-Open a File,Folder or Application”,双击,将此Action添加进去,选择好“Chrome.app”,完成创建,这样在全局下使用⌘+c就能启动Chrome了。
操纵鼠标
KM能快速操纵你的鼠标位置,可以实施移动,单击,双击,三连击四种动作,鼠标位置可以设定为当前窗口的5个位置(四角和中心点),电脑全屏的5个位置以及选定图片的5个位置,同时还可以设置负责点击动作的鼠标button(左、中、右或者更多),是否加入功能键,定位目标位置的偏离点,是否进行窗口拖拽。
快速插入文本
这部分功能和大家熟知的Text Expander差不多,你可以利用Trigger触发设定好的任意类型文本内容,文本类型参考官方文档【传送门】
操控窗口
Keyboard Maestro的野心很大,支持的功能好像在业内都能找到钻营者,下面要说的窗口操纵功能的对手也很多,包括窗口缩放(百分比、像素),窗口移动,窗口居中,关闭,最小化等十余种动作都可以在这里找到。
调用程序菜单或代理按钮
使用KM可以为网页或软件里的任意按钮定义Macro,只需将按钮的名字写好就行,比如最常见的“OK”按钮:
还可以快速调用程序中要使用的菜单项,首先要在“Select menu in”里选好目标应用程序,然后填对Title和Item即可。
剪切板菜单
KM提供了许多Cut,Copy,Paste,History四种菜单(Switcher),可供用户随时查看,重新打开自己拷贝,剪切,粘贴过的项目:
高级功能
控制iTunes
iTunes可谓是效率工具们最为偏爱的一个原生程序,KM也不例外,使用KM可以轻松应对播放过程中的各种需求,比如
播放指定歌曲、歌单
随机播放
播放、暂停、停止、快进、重播、切歌
增减音量、设定音量
评分(自带半颗星)
录制Macro
各位在KM Editor的底部可能会发现一个“Record”按钮,使用她我们可以快速录制一个Macro,录制支持的Action包括:
- 移动窗口
- 缩放窗口
- 最小化窗口
- 单击鼠标
- 输入字符
- 滑动鼠标滚轮
- 在菜单里选择项目
- 激活程序
- 退出程序
Palettes
对于那些不经常使用或容易忘记热键的Macros,你可以将他们放在一个叫Palette的全时悬浮菜单里,当你需要调用时可以随时从Palette里启用,使用 “01)My Macro” 这种格式来命名Macro名称还可以调整Macro的显示次序,但在Palette里并不会显示这种格式的前缀。
脚本执行
在KM中,触发Action的工具不仅有Trigger,还有Script,你可以使用Apple Script,Shell Script,Perl Script,Python Script,Ruby Script这5种脚本语言来作为触发工具。
Action(File/Image)
KM Action里对文件(File)和Image(图片)的处理也很全面,对于图片,你可以做出像截屏、查找屏幕上的图片、读取图片信息、写图片信息、新建图片(尺寸,背景色均可定义)、翻图片、反转图片、重定义画布尺寸、裁剪图片、在图片上画图形,获取图片尺寸。
对于文件,我们可以进行移动、重命名、拷贝、重复文件探测、删除、读取、写入、新建文件夹等操作。
新版6.0特点
- 新版KM添加了Macro共享功能,通过Dropbox或其他文件分享服务,你可以将所有的Macro归档为一个kmsync格式的文件保存在上面,这样你在其他Mac上就能无缝导入所有自用Macros了;点击KM菜单“File-Start Syncing Macros…”看到下图里的弹出框后,选择“Create New”即可创建kmsync文件。
- 如果由官方独自开发Action,毕竟精力是有限的,新版开放了Action接口,用户也可以加入自己开发的Action了,官方已经提供了几则融合第三方服务的Actions供我们学习,如果你对此很感兴趣的话,可以看这里的教程来做Action
新版里开始支持对格式化文本的粘贴,你可以在“Actions-Text-Insert Text”里找到“Insert Styled Text by Pasting”一项
- 现在,当你插入USB设备或接入无线网络时,也可将他们作为触发条件,在设置中可以定义插入的设备名称,无线网络的BSSID,或是接入/拔出状态等过滤条件:
加入了Debugger功能
新版加入了对Safari和Chrome浏览器的Action支持,比如打开新窗口/标签页、自动填写表单、点击超链接,执行JavaScript脚本等功能。
用户可以自定义 Status Icon
应用实例(Omnifocus Palette)
下面我们就来以Omnifocus为例,简单介绍一下如何为她打造一个专属的KM Palette菜单,以供我们更快捷的操控Omnifocus:
这就是一个最普通的Palette的样子,里面包含了我常用的几个Omnifocus动作,每一个动作都由一个独立的Macro来搞定,而整个Palette的组织形式是由Macro Group来完成的,以下菜单里的动作全部来自于Omnifocus 状态栏 “文件” 下的项目:
首先我们要新建一个Macro Group,这个Group就是我们要做的Pallete,但必须添加一个触发热键,并把类型选为“Show a paleete for one action when”才行:
设置好后我们就能为Palette添加Macro了,一个Macro代表一个动作,在编写前最好用 “00)-05)这种前缀+菜单项” 的命名方式给Macro定义标题,这样可以清晰的列出动作的次序 ,同时你还可以在标题里写出触发Macro的热键或input string,以防自己忘掉。
在编写Macro时,你不得不考虑一个问题,就是Omnifocus是否已启动,如果软件没有启动,Palette上的动作也是无法完成的,所以我们必须使用Action里的“Control Flow-If then else”条件判断一下Omnifocus的启动状态,如果还没有打开,就先启动软件,如果没有处于操作状态,尽在后台运行,我们就要activate她;
注意看下图,在添加判断后,首先要选择 Omnifocus这个application,然后把判断选为”is not running”,到最后一个关键Action(选择Omnifocus菜单项)时,同学们千万别手动添啊,那样太费时间了,在输入框的右上角有一个Menu下拉菜单,在里面选择好Omnifocus里的多级菜单,找到“文件-菜单项”选择即可快速完成添加Title和Item的工作。
全部填写好后,就能使用热键对Palette进行调用了,这里小编只是来个抛砖引玉,相信各位同学还能设计出更强大的Macro,如果有这方面兴趣,欢迎大家随时联系我们,分享你自己对Keyboard Maestro的使用心得和使用技巧,我们的投稿邮箱是: waefa # gmail.com,谢谢大家!