台式电脑

怎么样不害怕黑夜入侵电脑(每天长时间盯着电脑,这三招帮你缓解眼睛疲劳)

macOSMojave引入的全局深色模式带来了更好的用户体验。紧接着,各路开发者和极客用户就围绕这一功能实现了各种各样的扩展与自动化,将用户体验向前推进一步,主要包括:

根据时间切换外观模式,如NightOwl随日出/日落切换外观模式,同上将夜览(夜间模式)与外观模式结合,如Flux或thompsonate/Shifty指定各个App是否使用深色模式,如Gray

(以上软件在文末附上的少数派网站文章中均有介绍)

但是随着使用,我觉得这些应用提供的功能并不够完善。无论是按照时间,还是按照日出/日落切换,都无法与使用者所处环境中的光线变化步调一致。毕竟多数情况下,我们处于室内,而且会通过开关灯调节环境亮度。

所以,我更希望实现的自动化切换是,配合MacBook搭载的环境光传感器,在外界光线变化时自动调节屏幕亮度并切换浅色/深色模式,我认为这样才是更加完善和符合使用逻辑的方式。此外,对于没有环境光传感器的iMac和Macmini用户,在使用快捷键等方式调节屏幕亮度时,自动切换外观模式也是不错的。

首先,我们需要启用环境光传感器:打开「系统偏好设定→显示器」,勾选自动调节亮度。如果找不到这个选项,那就说明你的设备不支持这个功能。

每天长时间盯着电脑,这三招帮你缓解眼睛疲劳

自动调节屏幕亮度

本文将介绍三种开启「在外界光线变化时自动调节屏幕亮度并切换浅色/深色模式」功能的途径:一个App,以及KeyboardMaestro和Hammerspoon各一个脚本。

DynamicDarkMode

这是由ApolloZhu开发的开源免费App,点击打开他的Github项目页面。我们可以到GitHub项目页面中手动下载,也可以使用Homebrew安装:

brewcaskinstalldynamic-dark-mode

如果你对Homebrew不了解,可以浏览少数派网站的专题:Homebrew,Mac应用管家

第一次启动App,会出现一个配置引导界面,点击「开始配置>>」后,依次授予自动化和地理位置权限。其中自动化权限是为了控制外观模式,地理位置则是为了计算日出/日落时间,当然,你也可以拒绝地理位置权限的授予。

每天长时间盯着电脑,这三招帮你缓解眼睛疲劳

引导界面及授权窗口

结束配置后,偏好设置窗口会自动打开。我们可以看到,这里有切换快捷键、根据屏幕亮度或时间切换、菜单栏图标功能等选项,根据自己的需要进行勾选。此外,我们还可以在菜单栏图标的下拉菜单中进行手动切换。

每天长时间盯着电脑,这三招帮你缓解眼睛疲劳

偏好设置

所以,借助这个App,就可以有三种切换方式:手动,根据屏幕亮度,以及根据时间(日出/日落,自定义时间)。其中,手动与根据屏幕亮度的切换会打断当前的定时切换,直到设定的下一次自动切换时间。这样说可能有些不够明白,举个例子:我们设定23点至次日8点期间使用深色模式,那么在夜间手动切换为浅色模式后,次日23点钟才会再次自动启用深色模式。

DynamicDarkMode的优点在于整合了多种切换方式,并且作者花了一番心思,协调它们之间的冲突干扰。不过,我们也可以看看后面基于KeyboardMaestro或Hammerspoon的脚本实现方法。

脚本实现

如果你不愿意额外安装一个软件,或者已经在用KeyboardMaestro、Hammerspoon等软件,那么可以试试用它们来实现自动化切换功能。或者也可以基于这个脚本实现自己的特别需求。

核心原理其实很简单:每隔几秒检测一次当前亮度,如果亮度大于设定的阈值则将系统外观设为浅色模式,否则设为深色模式。

KeyboardMaestro实现

如果让我列出一份macOS必备软件,那么KeyboardMaestro肯定排在列表前面。这款软件能够方便快捷地实现各种自动化功能,少数派网站中有丰富的应用文章,可以搜索查看。

首先,为了能方便地获取屏幕亮度信息,需要使用Homebrew安装一个程序:在终端中运行brewinstallbrightness。

然后,点击下载KeyboardMaestro配置好的Macro文件,解压后双击安装,可以看到打开的KeyboardMaestro编辑界面。

每天长时间盯着电脑,这三招帮你缓解眼睛疲劳

KeyboardMaestro编辑界面

这里,可以看到我专门添加了一个动作来设置切换的屏幕亮度阈值(默认30%),低于阈值时启用深色模式,你可以根据自己的需要修改它。

最后,点击右上角的?标志启用这个Macro,然后关闭这个界面就可以了。

Hammerspoon实现

Hammerspoon是一款通过Lua编程语言脚本实现各种自动化功能的软件。它功能强大,但是不适合普通用户,这里只是为了给使用Hammerspoon的极客用户一个参考,所以不做过多介绍。

这个脚本在屏幕亮度低于30%时,除了启用深色模式外,还会在桌面壁纸上添加一层黑色透明图层,从而降低壁纸的亮度。

sizeRect=hs.geometry.rect(0,0,hs.screen.mainScreen():fullFrame().w,hs.screen.mainScreen():fullFrame().h)drawObj=hs.drawing.rectangle(sizeRect)drawObj:setFillColor(hs.drawing.color.asRGB({red=0.1,green=0.1,blue=0.1,alpha=0.5}))drawObj:setLevel(hs.drawing.windowLevels.desktopIcon)brightTimer=hs.timer.new(5,function()ifhs.brightness.get()< 30 then hs.osascript.applescript('tell application "System Events" to tell appearance preferences to set dark mode to true') drawObj:show() else hs.osascript.applescript('tell application "System Events" to tell appearance preferences to set dark mode to false') drawObj:hide() endend, true)brightTimer:start()

小结

本文介绍了三种根据屏幕亮度切换外观模式的方法。对于普通用户,推荐使用软件DynamicDarkMode。喜欢自己折腾的用户,可以选择使用KeyboardMaestro或者Hammerspoon脚本来实现同样的功能。作者还写了一篇开发历程文章,感兴趣可以看看:自动深色模式|DynamicDarkMode-哔哩哔哩

少数派网站还有几篇深色模式的相关文章,点击浏览:

怎么样不害怕黑夜入侵电脑(每天长时间盯着电脑,这三招帮你缓解眼睛疲劳)

4种方法,一键打开macOSMojave的黑暗模式-少数派在用macOSMojave的你,不能错过这些深色模式使用技巧-少数派让macOSMojave在深色主题下依然显示浅色窗口|一日一技-少数派

相关新闻

返回顶部