article_image

注:如本文提供的动作失效,请尝试重启 Finder,这是一个非常常见的 macOS 系统问题。

任何第一次用 macOS 的人,都会被 QuickLook 俘获:轻轻按一下空格,就可以快速查看文件内容,看完再按一下空格就能收回查看窗口,继续做别的事。

不过,QuickLook 本身能够查看的文件类型和信息都有限,于是一大批第三方插件应运而生,我以前必装的就有一款 qlImageSize——可惜,这些山野果枣都被 macOS 10.15 砍伐殆尽,无法继续使用。

Alt text
QuickLook 插件已经无法生存

虽然这类插件已经作古,没用过读者恐怕也无法直接体验其妙处,且还是容我描述一下。以 qlImageSize 这类快速查看元数据(metadata)的插件,可以直接在 QuickLook 窗口中显示图片体积、分辨率等信息,免得打开信息检查器——而原生信息检查窗口不仅是不方便那么单纯,简直就是反人类,你看完之后按下 ⌘Command-W 试图关闭,却发现准星早就不知道飘到哪里去了,附近的窗口——甚至一些没保存的文件——被枪毙了个干净,但文件信息窗口仍然顽强地站在你眼前,仿佛要冲破屏幕、对你说一声“呸”。

本文目标,就是利用 LaunchBar 和 Keyboard Maestro,重现类似 QuickLook 的文件信息检查体验,醒目干脆,看完就走,并且还不干扰其他日常操作。

动作使用

本方案的核心是用 LaunchBar 浏览文件信息,而 Keyboard Maestro 则用于简化操作。

>>动作下载<<

在 LaunchBar 中,只要事先开启 Instant Send(默认启动方式是连按两次 ⌘Command),就可以把文件发送(Send)到 LaunchBar,以待下一步处理——这是 LaunchBar 自动化的重要入口。如果发送到 LaunchBar 的是文件,则可以按一下方向右键,进而浏览文件信息,包括创建日期、体积和文件类型等等,如果是图片,还会显示分辨率,主要信息都在其中。

接下来就是 Keyboard Maestro 发力之时:连按三次,而非两次 ⌘Command,LaunchBar 就会直接进入文件信息浏览页面,不必再手动按一下方向键。这固然是一小步,但贯彻了“手不离开键盘主要区域”的全键盘操作规则,追求效率的人士或许能会心一笑。你甚至可以在 LaunchBar 中找到一个文件厚,一时兴起、连按 ⌘Command 以检查信息,而不需要喷右下角的蹩脚按键——前提是先在 Macro 所处 Group 中解除限制,不再将 Macro 生效范围限于 Finder(我提供的示例动作默认仅用于 Finder)。

Alt text
按两次 ⌘Command 发送,按三次查看信息,互不干扰

查看结束后,再像关闭普通窗口一样按一次 ⌘Command-W 即可关掉 LaunchBar 界面,回到之前的工作流程中。当然也可以按 ⎋Esc 键退出 LaunchBar,不过这就涉及了要不要把 ⎋Esc 映射到大小写锁定键上等武学讨论,其中功夫细节实在细碎,还请绕过作者。

至于为何用 LaunchBar 查看文件信息1,背后的想法则是统一交互方式,尤其是大量信息的显示方式。在 LaunchBar 中,一切皆列表,尽管朴素,贵在通用:浏览文件可用列表,展示 Safari 书签可用列表,调用 Shortcuts 动作也可以列表……而文件信息同样适合显示成列表,一目了然。

Alt text
LaunchBar 的文件信息显示界面更大方

原理简析

姑且认为读到这里的读者,至少认可用 LaunchBar 瞥一眼文件信息这种做法,并且也了解 LaunchBar 本身的操作方式,剩下的问题就是,如何只用一颗 ⌘Command 就兼顾 Instant Send 和文件浏览?尤其是,绝对不要干扰 Instant Send 这一 LaunchBar 的核心操作?

答案就是 Keyboard Maestro 的特殊 Trigger 和键鼠模拟。本质上,Keyboard Maestro 是一个几乎可以接收任何软硬件信号,并模拟几乎任何操作的影子管家。而想要对 ⌘Command 键下手,就要用到 USB Device Key Trigger,监测何时 ⌘Command 被按了三次。

注意:USB Device Key Trigger 认设备,我这边设置好的,在你那边就会失效,请照着下图重新设置一次 Trigger,点击一下“Apple Internal……”这部分并按一下你的 ⌘Command 键。如果你有外接键盘,则需要为每块键盘都手动添加一个 USB Device Key Trigger。
Alt text
用 Keyboard Maestro 触发 LaunchBar 的步骤

——接下来就是 LaunchBar 的神奇特性令 Keyboard Maestro 歪打正着的时候。一般来说,Keyboard Maestro 会覆盖系统或软件原本的按键行为2,然而 LaunchBar 的 Instant Send 似乎优先级非常高(而且它仅有修饰键而没有字母、数字或标点键,根本不算快捷键),Keyboard Maestro 只能检测到 ⌘Command 键被按下而无法阻止 LaunchBar 做任何事情。但无妨,我本来就想把文件发送到 LaunchBar 中!等到 Keyboard Maestro 收到三次 ⌘Command 的信号并准备干活时,文件已经发送到 LaunchBar 中,此时 Keyboard Maestro 只需要接着模拟一次方向键右键,就完成了文件预览。

由于根本不能阻止 Instant Send,Keyboard Maestro Macro 对其也无法产生任何影响。这样,LaunchBar 中最重要的键位就和自定义的 Keyboard Maestro Macro 共存,互不干扰。

小结

本文的背后,其实是一套更加广阔的设想:将 LaunchBar 作为文件管理的重要、甚至是主要入口。在 UNTAG 会员栏目第二十三期第二十五期第三十二期,Hum 和我分别触及了这一话题的几个侧面。

任何文件浏览器都只是一个浏览器(browser),就像同一座雕塑,你可以站在不同的角度看,文件也是如此。系统自带的 Finder 固然是中庸之选,DEVONthink 等第三方工具也提供了更周全的视图,而 LaunchBar 则是另一种视角,一次只看一小簇文件,却呼之即来、用完即走,让人根本感觉不到自己在浏览文件、更看不到 Finder 窗口,却已经处理好了文件。

🛍 我撰写的付费栏目《Keyboard Maestro 进阶指引》正在 UNTAG 售卖,详解 Keyboard Maestro Macro 高级设计思路,欢迎选购:付费内容链接

Keyboard Maestro 进阶指引
Keyboard Maestro 进阶指引

  1. 虽说打开这篇文章的读者大半估计都是 LaunchBar 用户,可能不需要我再费口舌,但我还是愿意把理由说透。
  2. 甚至可以把点击单击鼠标左键的信号覆盖掉,如果有必要的话。我在 Keyboard Maestro 的付费栏目中写过一个“在其他浏览器中打开链接”的动作,就取代了单击光标,将直接打开链接替换为选择一个浏览器再打开。

author_avatar

Lawyer, macOS/iOS Automation Amateur