用 RedShift 调节色温

给你的晶状体和视网膜续命

Posted by Remilia Scarlet on April 23, 2020

为什么蓝光会伤害你的眼睛

广义的蓝光泛指波长范围在 400nm-460nm 之间的具有相对较高能量的可见光, 长时间且高强度的蓝光照射会对视网膜细胞造成不可逆的损伤.

发表在眼科学顶级期刊 Progress in Retinal and Eye Research 中的论文 Do blue light filters confer protection against age-related macular degeneration? 指出, 发生在视网膜外部富氧环境中的光化学反应会导致细胞毒性活性氧 ( Reactive Oxygen Species, ROS ) 的释放, 过量的 ROS 会引起氧化应激, 进而导致细胞凋亡. 而由于蓝光的能量大, 能透过晶状体照射到黄斑区与视网膜细胞发生上述光化学反应, 因此让眼睛长时间暴露在高蓝光环境中会显著提升发生黄斑变性的概率.

另一篇发表在 Investigative Ophthalmology & Visual Science 期刊上的高引用论文 The lipofuscin fluorophore A2E mediates blue light-induced damage to retinal pigmented epithelial cells 则通过实验证明了使用蓝光照射含有脂褐素荧光素 A2E 的细胞会导致其快速凋亡. 随着年龄的增长, 视网膜细胞中会累积大量的 A2E, 这也间接说明了蓝光会诱导的视网膜细胞快速凋亡.

此外, 发表在生理学期刊 Journal of Applied Physiology 上的论文 Blue light from light-emitting diodes elicits a dose-dependent suppression of melatonin in humans 通过实验指出, 光会抑制人体中褪黑素的生成, 其中波长范围在 446nm-477nm 的蓝光抑制作用最强. 而由于发光二极管 ( Light-Emitting Diode Light, LED ) 的光谱峰值恰好在此范围内, 长期暴露于 LED 灯环境下的受试者的血浆褪黑素浓度会显著低于暴露在白炽灯环境下的受试者. 褪黑素的功能主要是改善睡眠质量, 因此睡前关灯玩手机会导致难以入睡, 并在一定程度上加剧眼疲劳.

如何避免蓝光伤害

自然界中的蓝光大部分来自太阳, 太阳光谱中的蓝光相对强度要大于 6000K 色温下 LED 光谱中的蓝光相对强度. 但为什么在晴天的室外活动时不会产生眼疲劳现象呢?

这主要是因为地面环境的阳光反射率不够, 只有少量的阳光直接进入眼中, 如果你长时间直视阳光仍然可能造成短时失明, 雪盲症就是典型的例子. 雪地对阳光的反射率可达 95% 左右, 其中波长最短且能量最高的是少量的紫外线, 其次是大量的蓝光, 因此在晴天且未佩戴保护镜的情况下, 在雪地中活动数小时即可造成严重的雪盲.

电子屏幕发出的光几乎全部直接进入了眼睛, 尽管晶状体能过滤一部分, 但是能量较高的蓝光还是可以到达视网膜黄斑区, 因此长时间看电子屏幕很容易造成眼疲劳. 但如果你平时只是偶尔看看显示器, 那么完全没有必要去刻意规避蓝光, 因为视网膜黄斑区本身就有一定的蓝光防护作用.

然而, 如果你每天都要对着电子屏幕写代码, 看论文, 做汇报材料, 并且喜欢在睡觉前关灯玩手机, 看平板, 那么建议通过减少电子屏幕的蓝光发射量, 在传播过程中过滤蓝光, 提高叶黄素的摄入量这三种方式尽可能地避免蓝光伤害,

用RedShift调节色温

电子屏幕中显示的每个像素都有对应的三色 LED 发光单元, 通过在软件层面控制要显示的每个像素的颜色可以改变发光单元的颜色混合比例. 其中, 调节色温是常用的全局颜色修改方案, 色温越低则色调越暖, 蓝光的相对强度也就越低.

高版本的 Android 和 IOS 都已经在应用框架层或服务层提供了控制设备色温的 API, 例如在 Android 10 中提供的 ColorDisplayService 系统服务. 而在桌面设备中, Ubuntu 默认使用的图形桌面软件 GNOME 在 3.24 版本之后提供了夜间模式, 而 Windows 10 在 1909 版本之后也提供了调节色温的选项, 但如果你用的是 KDE Ubuntu 或者某些没有提供夜间模式的 Linux 发行版以及 Windows 早期版本, 可以通过 RedShift 软件实现自动色温调节.

安装: 带有 apt 包管理软件的系统可以通过 apt install redshift 安装命令行版本, 也可以通过 apt-get install redshift-gtk 安装带有 GUI 的版本. 对于开发者可以通过编译源码的方式进行安装, Windows 可以直接下载 release 版本.

选项: 通过 man redshift 可以查看完整的帮助文档, 以下是常用的选项.

  • -b DAY:NIGHT – 表示在当前显示的亮度下需要再乘以的亮度系数, 取值范围在 0.1 到 1.0 之间. 例如: -b 0.8:0.6 表示白天的亮度系数为 0.8, 夜间的亮度系数为 0.6.
  • -t DAY:NIGHT – 设置白天和夜间的色温, 色温越低则色调越暖. 默认值为 -t 6500:4000, 代表白天色温为 6500K 夜间色温为 4000K.
  • -l LAT:LON – 设置纬度和经度, RedShift 会根据经纬度和当前日期计算白天和夜间的切换时间. 值为正时表示北纬和东经, 例如: 北京地区可以设置为 -l 39:116.
  • -m METHOD[:OPTIONS] – 设置色温调节所使用的 API, 通过 redshift -m list 可以查看当前系统支持的调节方法.
1
2
3
4
5
6
7
8
Available adjustment methods:
  drm  # 需要显卡驱动支持
  randr  # 默认选项
  vidmode  # 兼容模式, 适用于旧系统
  dummy  # 调试用

Specify colon-separated options with `-m METHOD:OPTIONS'.
Try `-m METHOD:help' for help.

配置文件: RedShift 在启动时默认会读取 ~/.config/redshift.conf 文件中的内容, 也可以通过 -c FILE 的方式指定要读取的配置文件. 一个简单的配置文件如下:

1
2
3
4
5
6
7
8
9
10
[redshift]
temp-day=4000  # 白天的色温
temp-night=3500  # 夜间的色温
gamma=0.8
adjustment-method=randr
location-provider=manual  # 手动设置经纬度

[manual]
lat=39.92  # 北京的纬度
lon=116.46  # 北京的经度

此外, 作者还提供了配置文件样例作为参考.

开机启动服务: 内核版本大于 3.16 的 Linux 发行版都采用 systemd 管理守护进程, 在这些发行版中安装 RedShift 时会自动创建 /usr/lib/systemd/user/redshift.service 服务管理文件, 我们可以手动修改这个文件来添加运行参数.

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=Redshift display colour temperature adjustment
Documentation=http://jonls.dk/redshift/
After=display-manager.service

[Service]
# ExecStart=/usr/bin/redshift  # 默认
# 可以修改要执行的命令 例如记录日志
ExecStart=/usr/bin/redshift -v &> /tmp/redshift.log
Restart=always

[Install]
WantedBy=default.target  # 要创建的软链接位置

设置好管理文件之后需要让 systemd 接管这个服务, 我们通过 systemctl 工具将 RedShift 注册为用户级别的服务, 执行 enable 后会根据服务管理文件中 Install 部分的内容创建软链接, 并自动设置为开启启动.

1
systemctl --user enable redshift

启用服务之后就可以通过 systemctl 对服务的运行情况进行管理, 如果在服务已经运行的情况下修改了配置文件, 则需要重新加载让配置生效.

1
2
3
4
systemctl --user start redshift  # 启动服务
systemctl --user stop redshift  # 停止服务
systemctl --user restart redshift  # 重启服务
systemctl --user daemon-reload  # 重载配置文件

注销服务同样需要使用 systemctl 工具, disable 命令会自动进行清理.

1
systemctl --user disable redshift

通过在软件层面控制发光单元颜色配比的方法具有较强的泛用性, 但随着蓝光发射量的减少, 同时也会出现显示画面泛黄的问题, 因此这种方法仅适用于文字处理类工作.

阻断蓝光传播路径

安全的显示设备: 某些高端的显示设备支持硬件层面的蓝光过滤, 通过在发光单元上包裹滤蓝光浮层来过滤高能短波蓝光. 这种方法可以将 LED 的光谱峰值右移, 有效减少 400nm-450nm 范围内的蓝光强度, 而且几乎不会造成显示偏色. 但这种显示设备成本很高, 适合专业设计师或多媒体编辑人员使用.

专业的防蓝光眼镜: 由于没有统一的行业标准, 这类产品的效果取决于生产者对”防蓝光”这个概念的定义. 有些网红店销售的所谓防蓝光眼镜或电竞眼镜, 其实就是颜色淡一点的墨镜. 因此建议购买光学镜片大厂销售的蓝光反射眼镜或蓝光过滤眼镜. 如果不喜欢戴眼镜可以给屏幕贴上专业的防蓝光膜.

定期休息: 毋庸置疑, 控制直视电子屏幕的时间是最有效的阻断蓝光传播的方法. 近几年发售的显示器一般都有定时提醒功能, 而像 IDEA 这种集成编辑环境也内置了这种功能, 这充分体现了 Jet Brains 对程序员的 ( 摸鱼 ) 关怀. 每隔一段时间可以通过眺望远方或闭目养神的方式效缓解眼疲劳症状, 有时间也可以做眼保健操.

玉米黄质与叶黄素的作用

叶黄素 ( Lutein ) 集中在灵长类动物的视网膜中, 与玉米黄质一起形成黄斑色素, 长时间缺乏黄斑色素会提高年龄相关性黄斑变性 ( Age-related Macular Degeneration, AMD ) 发生的几率.

发表在 Progress in Retinal and Eye Research 上的论文 Lutein: More than just a filter for blue light 通过动物实验证明了叶黄素具有过滤蓝光和抗氧化的作用. 并且通过体外研究表面, 叶黄素具有抑制 NFκB 活化, 以及抑制 iNOS 和 COX-2 表达的作用, 可以用来消除眼部炎症, 甚至能够作用于全身.

此外, 发表在营养学顶级期刊 Annual Review of Nutrition 上的一篇综述性论文 Lutein and Zeaxanthin and Their Potential Roles in Disease Prevention 指出:

  • 大量流行病学研究表明, 叶黄素的摄入量和存量与白内障和年龄相关性黄斑变性的发生几率之间存在反比关系.
  • 观察性研究和动物模型数据表明, 摄入足量的叶黄素能够有效降低乳腺癌的发病几率.
  • 有限的流行病学实验表明, 叶黄素和玉米黄质对降低冠心病和中风的发病风险具有潜在作用.
  • 深绿色的叶类蔬菜, 蛋黄, 玉米是日常饮食中叶黄素和玉米黄质的主要来源.

如果你的眼睛由于长期高强度暴露在电子屏幕下已经发生视力下降, 视线扭曲, 模糊, 散光等现象, 则建议通过补充玉米黄质与叶黄素来缓解眼部病变. 但要注意, 通过食物补充叶黄素的方法只能作为一种恢复手段, 如果你长期患有高血压, 经常无法保证充足的睡眠, 不注意用眼卫生则很容易导致神经视网膜与视网膜色素上皮的分离, 即视网膜脱落.

按照视网膜研究专家 Steven K. Fisher 在论文 Cellular remodeling in mammalian retina: results from studies of experimental retinal detachment 中提到的结论, 如果真的发生了视网膜脱落, 那么你将有很大几率无法完全恢复原来的视力水平. 车开久了尚且需要保养, 更不用说对我们如此重要的眼睛了.

参考内容