对于熬夜党和夜猫子来说,「手机或电脑屏幕能不能再黑一点、暗一点」可能是心中想得最多的事情之一。黑暗环境中,屏幕亮度已经最低却依旧亮瞎双眼,则是时常感受到的痛苦。macOS Mojave 带来了全新的全局暗色模式,毫无疑问是众多新特性中最吸引人的方面之一,也是很多人翘首以盼的功能。想要切换外观模式,「只需」:

  1. 打开「系统偏好设置」。
  2. 选择「通用」面板。
  3. 点击切换至需要的外观模式。

不得不说,有些麻烦,更何况可能要每天切换。不过,我们有了新的选择。

菜单栏中的「猫头鹰」

近日,有开发者编写了一款免费的菜单栏小应用 NightOwl,可以快捷切换外观模式。

官网下载 并打开后,菜单栏中就会出现一个有些呆萌的猫头鹰图标。首次打开会出现授权对话框:「NightOwl 想要控制应用程序 System Events」,选择「好」即可。这是由于 macOS Mojave 引入了更加全面、严格的系统权限管理,以后在使用 macOS 系统过程中会经常遇到的。如果你想要对此类授权进行管理,打开「系统偏好设置 - 安全性与隐私」的「隐私」面板,选择左侧的「自动化」,就可以看到。

null

点击菜单栏图标,弹出的面板中能够快捷切换「亮色(Light)/暗色(Dark)」模式,比起在系统偏好中切换要方便得多。切换下试试,音效也很有趣。还有一个更加方便的小窍门:右键点击猫头鹰图标就可以切换。而且,还有「日出/日落(Sunrise/Sunset)」自动切换功能。不过这需要开启地理位置服务并授权给应用,在勾选「Sunrise/Sunset」时按照提示进行即可。

应用界面
应用界面

在上图的界面中,点击左下角的齿轮图标,可打开其偏好设置。这里可以选择是否「开机启动(Run on Boot)」、「播放音效(Play Sound)」与「发送统计数据(Send Statistics)」。

偏好设置
偏好设置

需要说明的是:为了改进应用,NightOwl 使用 Google Analytics 收集一些匿名数据,当然这在国内是行不通的🤣。可在偏好设置中不勾选「Send Statistics」,以禁用数据收集。

如果你很喜欢这款应用,也可以到 官网 中给作者打赏一杯咖啡(需 PayPal)以鼓励这些创作者。

遗憾的是,该应用只适用于 macOS 10.14 Mojave 版本及以上的系统。但是,我们还有下面的方法。

异曲同工:核心脚本+自动化工具

这段 AppleScript 代码同样可以实现切换外观模式的功能。该代码则适用于各系统版本,对于 macOS 10.14 版本以下的简略版暗色模式(仅作用于菜单栏与程序坞)也有效。相比上面的应用,更加方便各路高手根据自己的需要进行配置。要注意的是,手动开关黑暗模式时会关闭 Mojave 的动态桌面。

tell application "System Events"
    tell appearance preferences
        set dark mode to not dark mode
    end tell
end tell

我们来简单地分析下:

  1. 嵌套的 tell application "System Events"tell appearance preferences 含义显而易见,就是告诉「System Events」中的「appearance preferences」程序之后的命令。
  2. set dark mode to not dark mode 则是要告诉的命令内容——「将暗色模式(dark mode)设置为与原来相反的状态」,也就是开启或关闭暗色模式。

利用系统自带应用设置快捷键

> 下载链接 🔗

通过系统自带的「自动操作(Automator)」应用可以为上述代码设置一个快捷键。

首先,打开「自动操作」,选择新建一个服务,然后如下图所示进行设置。注意需要设置为「没有输入」和「任何应用程序」,这是因为我们是借助这个功能设置快捷键,不需要输入,而且要让快捷键在任何情况下都有效。

自动操作
自动操作

然后,打开「系统偏好设置 - 键盘」中的「快捷键」面板,选择左侧的「服务」,找到「通用」分类中的「切换外观模式」,设置为适合自己的快捷键。

设置快捷键
设置快捷键

Alfred Workflow 快捷动作

> 下载链接 🔗

习惯使用 Alfred 的读者也可以通过创建 Workflow 来运行这段代码。

Workflow 配置如下图,这里可以设置两种触发方式——关键词、快捷键。

Alfred Workflow
Alfred Workflow

Keyboard Maestro 定时运行

> 下载链接 🔗

使用自动化神器 Keyboard Maestro,除了设置快捷键,也可以设置为定时运行的自动化任务。这里需要使用下面两段代码:

开启暗色模式

tell application "System Events"
    tell appearance preferences
        set dark mode to true
    end tell
end tell

关闭暗色模式

tell application "System Events"
    tell appearance preferences
        set dark mode to false
    end tell
end tell

与之前相比,这两段代码中 set dark mode to not dark mode 变为了 set dark mode to true/false,也就是明确了开启(true)或关闭(false)的状态。

作为示例,我使用了一个「定时触发器」在每天 19:30 运行开启暗色模式的 AppleScript 代码。同样也可以设置一个「关闭暗色模式」的定时任务。

Keyboard Maestro 任务
Keyboard Maestro 任务

小结

写完这篇文章,不禁再次感叹 macOS 系统真好玩。有各路高手及时跟进新版本新特性,创造贴心的小应用。还有各种自动化神器,充分发挥用户的想象力。

如果想要了解关于 AppleScript 代码、自动操作(Automator)、Alfred 与 Keyboard Maestro 应用的更多内容,可以看下面这些少数派文章:

> 下载 少数派 iOS 客户端、关注 少数派公众号,让智能设备更好用 ⚡️