# 以脑筋正常的方式关闭 Finder 显示方式窗口

> 本文公开全文。

原文：https://utgd.net/article/21287

我不介意 macOS 拥有一套异于 Windows 的窗口交互逻辑，但我不乐意看到 macOS 和 iOS 近亲繁殖（并且诞下智力残障）；设计师还要往火上泼油，宁可忙着给它俩人工授粉，也不抽出时间修复 macOS 本身的交互不一致（实际上，不断从 iOS 中引入新的不一致）。

老用户，尤其是习于快捷键的熟练用户，应当对 Finder 的显示方式窗口感到深恶痛绝：你可以像在任何一个软件中一样，正常地用快捷键打开它（⌘Command\-J），但是当你调试之后，居然不能用通用的窗口关闭快捷键 ⌘Command\-W 干掉它，相反，被干掉的是当前 Finder 窗口。

诚然，你可以继续用 ⌘Command\-J 隐去显示方式窗口，但这并不符合一贯的交互逻辑，至少我比较愚钝，耗费了十七八年也没掌握。

在技术上，这种交互设计之所以令人难以忍受，是因为显示方式窗口默认不激活——即便它浮在最上方！——无法全键盘控制，必须施以鼠标或触控板，此时多数人只好腾出右手，而左手则自然置于 ⌘Command\-W 所在的区域。引入一枚 ⌘Command\-J，既不统一，也不符合逻辑。于是我写了一个 Keyboard Maestro 动作，在涉及 Finder 显示方式窗口的开关时，恢复通用的 ⌘Command\-W 键。

Keyboard Maestro 动作下载（GitHub）

惟需指出，制作这个动作的难点，恰恰在于 Finder 显示窗口诡异的交互逻辑：它默认不激活，在勾选几个选框或拖动图标尺寸条之后依然不激活，必须手动点击窗口顶部栏或空白处方能激活，而即便如此，也依旧不能使用正常的 ⌘Command\-W 键位，因为聪明的设计师希望你继续使用他发明的开关二合一 ⌘Command\-J。

碰巧，这种糟糕透顶的交互逻辑——如果有任何逻辑可言的话——恰恰踩到了交互自动化的一个三不管地带：传统快捷键失效，窗口管理逻辑混乱，菜单栏项目变动而不固定。这是好主意的炼金术坩埚，尤其可以挖掘冷僻的 Keyboard Maestro 模块。

我转而加入第二个动作，形成一种主动作加 Helper 动作的组合机制，详言之：

主动作以 ⌘Command\-J 为触发机关，监测 Finder 显示方式窗口是否开始开启，触发后，先正常打开窗口——因为 ⌘Command\-J 作为触发线索已经被消耗了，还需借用 Keyboard Maestro 打开一次——随即启用 Helper 动作，同时主动作进入待命状态，等待关闭显示方式窗口。

Helper 动作以 ⌘Command\-W 为触发机关，不做任何操作，相当于临时覆盖了 Finder 自带的键位，以便给主动作腾出操作空间。当你沿着肌肉记忆用 ⌘Command\-W 关闭窗口时，主动作也会监测到这一按键信号，关闭显示方式窗口，并禁用 Helper 程序，以免影响日常操作。

从功能上看，这种 Hepler 机制似乎过于复杂，但根据特斯勒复杂守恒定律，如果想要使用简单（在这里主要是能耗低），设计就要承担更多的复杂度。确实，我可以用 Keyboard Maestro 取代系统的 ⌘Command\-W 键位，每次按下时都判断目前是否有显示方式窗口，再分而处之，但这样的动作就会频频运行，连续关闭多个窗口时还可能打架。相较之下，展示显示方式窗口的 ⌘Command\-J 少见得多，更适合作为第一道触发机关，之后再临时用 Helper 动作监测 ⌘Command\-W，功耗更低。

不仅单个动作功能齐备，动作之间还能并行配合，产生解剖学视角完全无法预料的新自动化模式，这也是 Keyboard Maestro 卓尔不群之处。

---

[前往标准阅读页](https://utgd.net/article/21287?audience=web)
