macOS Mojave 引入的全局深色模式帶來了更好的用戶體驗。緊接着,各路開發者和極客用戶就圍繞這一功能實現了各種各樣的擴展與自動化,將用戶體驗向前推進一步,主要包括:

  (以上軟件在文末附上的少數派網站文章中均有介紹)

  但是隨着使用,我覺得這些應用提供的功能並不夠完善。無論是按照時間,還是按照日出 / 日落切換,都無法與使用者所處環境中的光線變化步調一致。畢竟多數情況下,我們處於室內,而且會通過開關燈調節環境亮度。

  所以,我更希望實現的自動化切換是,配合 MacBook 搭載的環境光傳感器,在外界光線變化時自動調節屏幕亮度並切換淺色 / 深色模式,我認爲這樣纔是更加完善和符合使用邏輯的方式。此外,對於沒有環境光傳感器的 iMac 和 Mac mini 用戶,在使用快捷鍵等方式調節屏幕亮度時,自動切換外觀模式也是不錯的。

  首先,我們需要啓用環境光傳感器:打開「系統偏好設定 顯示器」,勾選 。如果找不到這個選項,那就說明你的設備不支持這個功能。

  自動調節屏幕亮度

  本文將介紹三種開啓「在外界光線變化時自動調節屏幕亮度並切換淺色 / 深色模式」功能的途徑:一個 App,以及 Keyboard Maestro 和 Hammerspoon 各一個腳本。

  Dynamic Dark Mode

  第一次啓動 App,會出現一個配置引導界面,點擊「開始配置 >>」後,依次授予自動化和地理位置權限。其中自動化權限是爲了控制外觀模式,地理位置則是爲了計算日出/日落時間,當然,你也可以拒絕地理位置權限的授予。

  引導界面及授權窗口

  結束配置後,偏好設置窗口會自動打開。我們可以看到,這裏有切換快捷鍵、根據屏幕亮度或時間切換、菜單欄圖標功能等選項,根據自己的需要進行勾選。此外,我們還可以在菜單欄圖標的下拉菜單中進行手動切換。

  偏好設置

  所以,藉助這個 App,就可以有三種切換方式:手動,根據屏幕亮度,以及根據時間(日出 / 日落,自定義時間)。其中,手動與根據屏幕亮度的切換會打斷當前的定時切換,直到設定的下一次自動切換時間。這樣說可能有些不夠明白,舉個例子:我們設定 23 點至次日 8 點期間使用深色模式,那麼在夜間手動切換爲淺色模式後,次日 23 點鐘纔會再次自動啓用深色模式。

  Dynamic Dark Mode 的優點在於整合了多種切換方式,並且作者花了一番心思,協調它們之間的衝突干擾。不過,我們也可以看看後面基於 Keyboard Maestro 或 Hammerspoon 的腳本實現方法。

  腳本實現

  如果你不願意額外安裝一個軟件,或者已經在用 Keyboard Maestro、 Hammerspoon 等軟件,那麼可以試試用它們來實現自動化切換功能。或者也可以基於這個腳本實現自己的特別需求。

  核心原理其實很簡單:每隔幾秒檢測一次當前亮度,如果亮度大於設定的閾值則將系統外觀設爲淺色模式,否則設爲深色模式。

  Keyboard Maestro 實現

  如果讓我列出一份 macOS 必備軟件,那麼 Keyboard Maestro 肯定排在列表前面。這款軟件能夠方便快捷地實現各種自動化功能,少數派網站中有豐富的應用文章,可以搜索查看。

  首先,爲了能方便地獲取屏幕亮度信息,需要使用 Homebrew 安裝一個程序:在終端中運行 。

  然後,點擊下載 Keyboard Maestro 配置好的

  Macro 文件

  ,解壓後雙擊安裝,可以看到打開的 Keyboard Maestro 編輯界面。

  Keyboard Maestro 編輯界面

  這裏,可以看到我專門添加了一個動作來設置切換的屏幕亮度閾值(默認 30%),低於閾值時啓用深色模式,你可以根據自己的需要修改它。

  Hammerspoon 實現

  Hammerspoon 是一款通過 Lua 編程語言腳本實現各種自動化功能的軟件。它功能強大,但是不適合普通用戶,這裏只是爲了給使用 Hammerspoon 的極客用戶一個參考,所以不做過多介紹。

  這個腳本在屏幕亮度低於 30% 時,除了啓用深色模式外,還會在桌面壁紙上添加一層黑色透明圖層,從而降低壁紙的亮度。

  小結

相关文章