3

使用redshift保护你的睡眠质量

 3 years ago
source link: https://www.lujun9972.win/blog/2018/05/10/%E4%BD%BF%E7%94%A8redshift%E4%BF%9D%E6%8A%A4%E4%BD%A0%E7%9A%84%E7%9D%A1%E7%9C%A0%E8%B4%A8%E9%87%8F/index.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

使用redshift保护你的睡眠质量

redshift是一款根据太阳位置(根据你所在的经纬度以及时间来推测)来调整色温(色温是指绝对黑体从绝对零度(一273℃)开始加温后所呈现的颜色。黑体在受热后.逐渐由黑变红,转黄,发白,最后发出蓝色光。)的应用。

由于有证据表明,显示器发出的蓝光会抑制褪黑素的释放,从而影响夜晚的睡眠质量,因此redshift会在判断太阳下山后调低显示器的色温,从而减少光线中蓝光所占的计量。

redshift在大多数linux发行版的仓库中都有,在archlinux下可以通过 pacman 来安装

sudo pacman -S redshift --noconfirm

最简单的使用方法就是直接运行 redshift, 它会通过 geoclue2 服务自动获取你的经纬度从而判断当前时间是夜晚还是白天,从而调整色温。

但是你也可以通过 -l LAT:LON 选项来指定当前位置的经纬度,这样使用redshift就无需再联网了。

比如东莞的经度为 113.75,维度为 23.04, 那么可以

redshift -l 23.04:113.75

如果不清楚你所在地的经纬度,那么可以让 redshift 在第一次运行时联网查询,后续再使用这个查询出来的值。

要查看 redshift 自动查询出来的经纬度需要使用 -v 选项让 redshift 显示出执行的详细情况

timeout 1 redshift -v |head

运行结果为:

正在使用服务”geoclue2“。
位置:23.12 北纬, 113.25 东经
色温:日间 5500K,夜间 3500K
太阳高度:日间高于 3.0 度,夜间低于 -6.0 度
亮度:1.00:1.00
伽马 (日间):1.000, 1.000, 1.000
伽马 (夜间):1.000, 1.000, 1.000
正在使用模式 ”randr“。
状态:已启用
时段: 日间

默认情况下, redshift 白天的色温设置为 5500K, 晚上的色温设置为 3700K, 但是你也可以根据自己的偏好进行设置,方法是使用 -t DAY:NIGHT 选项

比如,我想设置白天色温为 5400K, 晚上色温为 3600K,那么可以执行

redshift -t 5400:3600

redshift 运行后不会自动退出,而是不断的尝试根据时间来进行色温的调整,而若你不希望让redshift一直调整色温,那么可以使用 -o 或者 -O TEMP 来让 redshift 进入 One shot mode

其中 -o 是让 redshift 自动为你调整色温。

redshift -vo
正在使用服务”geoclue2“。
位置:23.12 北纬, 113.25 东经
色温:日间 5500K,夜间 3500K
太阳高度:日间高于 3.0 度,夜间低于 -6.0 度
亮度:1.00:1.00
伽马 (日间):1.000, 1.000, 1.000
伽马 (夜间):1.000, 1.000, 1.000
正在使用模式 ”randr“。
太阳高度:55.714565度
时段: 日间
色温:5500K
亮度:1.00

-O TEMP 允许你手工指定色温

redshift -vO 5000
亮度:1.00:1.00
伽马 (日间):1.000, 1.000, 1.000
伽马 (夜间):1.000, 1.000, 1.000
正在使用模式 ”randr“。
色温:5000K

redshift 默认并不会创建配置文件,需要你手工在 ~/.config/ 中创建一个名为 redshift.conf 的文件,文件格式为标准的 INI 格式。

redshift 支持以下配置项

以下配置在 [redshift] section下

temp-day = integer设置白天的色温

temp-night = integer设置晚上的色温

transition = 0 or 1是否渐进地调整色温

brightness-day = 0.1-1.0调整白天的屏幕亮度

brightness-night = 0.1-1.0调整晚上的屏幕亮度

elevation-high = decimal设置太阳多高了才算是白天

elevation-low = decimal设置太阳多高了才算是晚上

gamma = R:G:B对比度调整(无论白天还是晚上)

gamma-day = R:G:B白天进行的对比度调整

gamma-night = R:G:B晚上进行的对比度调整

adjustment-method = name调整色温的方法,可以用 redshift -m list 来查看支持的方法,默认为 randr.

location-provider = name指定获取经纬度的方法,可以用 redshift -l list 来查看支持的方法,默认为 geoclue2.

以下配置项在 [manual] section 下

lat = LAT

lon = LON

以下是我自己的配置

[redshift]
; 设置色温
temp-day=5500
temp-night=3500

; 渐进地改变色温
transition=1

adjustment-method=randr

; 手工指定经纬度
location-provider=manual

[manual]
lat=23.12
lon=113.25

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK