如果说 ⌘Command - Q
是个让人又爱又恨的快捷键,可能大部分的 macOS 用户都会同意。
这个快捷键的作用是用来关闭当前程序,轻点一下,当前程序的所有页面都会直接关掉。但由于这个神奇的键位,在日常使用电脑时很容易直接碰触到。完全不像 Windows 下把关闭当前窗口的快捷键设为 alt-F4
,不会轻易碰到。于是,常常遇到的情况就是,想要用 ⌘Command - W
关闭一个 Safari 页面,却把整个 Safari 关掉了,只好重启 Safari 从历史记录中重新翻出刚才打开的页面。
以致于在 Google 上搜索 How to disable cm时,可以直接补全 How to disable cmd Q。足可见 ⌘Command-Q
完全是一个困扰世界人民的问题。
SlowQuitApps这款免费软件非常优雅地解决了这个问题,彻底杜绝了误触。
如上图所示,在启动 SlowQuitApps 之后,需按住 ⌘Command - Q
,直到显示的环形倒计时结束后,才会关闭程序。
其安装方法也很简单,可以直接通过 Homebrew 安装它。如果你还不了解 Homebrew 是什么,请参阅我派这篇文章:《像 Mac 高手一样管理应用,从 Homebrew 开始》。
在安装了 Homebrew 之后,直接在终端中依次运行如下两行命令:
brew tap dteoh/sqabrew cask install slowquitapps
安装完成后,直接启动它,此时会显示一个提示窗口,询问是否允许在登录时自动启动它:
依自己的需求选择即可。
这时你会发现这个软件没有任何窗口界面,甚至连菜单栏上的图标都没有,但在任意软件界面上按 ⌘Command-Q
都可以看到这个环形的倒计时了。
当要关闭它的时候,只需在终端中运行以下命令即可:
killall SlowQuitApps
也可以通过 LaunchBar 关闭它,方法是在 LaunchBar 中检索到 SlowQuitApps,按 Tab
键,再输入 QUIT
检索到 Quit Application并回车
:
如果觉得软件默认的倒计时时间有点长,想要调整这个时间,比如要把它设为 1.5 秒,只需在终端中运行如下命令:
defaults write com.dteoh.SlowQuitApps delay -int 1500
其中结尾的 1500
即代表要设置的倒计时时间,单位为毫秒,即 1.5 秒。每次设置完成后,需要关闭 SlowQuitApps 并重新启动。
这款软件还有一个白名单功能,SlowQuitApps 不会作用于所有列入白名单的程序,在按下 ⌘Command - Q
时会像平常那像直接关闭当前程序。
例如,如果想把备忘录程序列入白名单,只需在终端中输入如下命令:
defaults write com.dteoh.SlowQuitApps whitelist -array-add com.apple.Notes
其中,com.apple.Notes
是备忘录程序的 Bundle ID,可以在终端使用如下命令查看:
osascript -e 'id of app "Notes"'
或
mdls -name kMDItemCFBundleIdentifier /Applications/Notes.app
也可以使用 LaunchBar 查看应用程序的 Bundle ID:
在 LaunchBar 中检索到目标程序后,按 →
方向键,选择 Info.plist回车
,再输入 ID
检索得到 CFBundleIdentifier,回车即可查看。
通过如下命令可以在终端中查看列入白名单的程序的 Bundle ID 列表:
defaults read com.dteoh.SlowQuitApps whitelist
相反,如果想要让 SlowQuitApps 只作用于名单中的程序,名单以外的程序在按下 ⌘Command-Q
时直接关闭,则可用以下命令进行名单反转:
defaults write com.dteoh.SlowQuitApps invertList -bool YES
如果要取消上面进行的名单反转,则运行以下命令:
defaults delete com.dteoh.SlowQuitApps invertList
同理,在设置完成后,需要重新启动 SlowQuitApps 以使设置生效。
如果你也有偶尔误触 ⌘Command - Q
的困扰,不妨试一下 这款轻巧的软件。
> 开启 macOS 隐藏功能,就在专题 轻松玩转 Mac 命令💻
> 下载 少数派 iOS 客户端、关注 少数派公众号,让智能设备更好用 ⚡️