背景:夜间红色较多/蓝色较少

背景:夜间红色较多/蓝色较少

背景:夜间红色较多/蓝色较少

为了在夜间保护眼睛,增加红色和/或减少蓝色,在Windows 10(蓝光过滤器)和 Linux;Gnome 桌面(夜灯)和 Ubuntu Unity 桌面,以及附加组件,例如红移或者勒克斯

我想知道如何使用 Ubuntu 的内置命令行xrandr <monitor> --gamma 1:1:1功能实现相同的功能。1:1:1代表百分比红色的绿色的蓝色的。我估计1= 100%。我不确定上述软件包是增加更多红色 ( 1.2:1:1) 以增加约 20% 还是减少蓝色 ( 1:1:0.8) 以减少约 20% 还是两者兼而有之以减少约 40% 的变化。

Gnome Night Light 示例没有帮助

根据天哪,Ubuntu,在 Gnome's Night Light 中您可以使用以下数值:

  • 1000 — 最低值(超暖/红色)
  • 4000 —默认夜灯开启温度
  • 5500 — 平衡夜灯温度
  • 6500 —默认夜灯关闭温度
  • 10000 — 最高值(超酷/蓝色)

为了测试这些数值,如何转换它们以覆盖默认值--gamma 1:1:1

xorg 的文档是怎么说的

Xorg 的文档没有过多谈论--gamma控制:

−−gamma 红:绿:蓝

  • 将指定的浮点值设置为当前连接到此输出的 crtc 上的伽马校正。请注意,您无法为克隆的输出(即共享同一个 crtc)获取两个不同的值,并且将输出切换到另一个 crtc 根本不会改变 crtc 伽马校正。

浮点小数会很有用,因为我想要升级的脚本在黎明和黄昏的 90 到 120 分钟的过渡期内,每分钟缓慢设置xbacklight一次亮度。我想通过xrandr --brightness软件支持外部显示器和 OLED 内置显示器以及xrandr --gamma支持红光/蓝光滤镜来增强脚本。Xorg 没有说明支持多少个小数位,但我认为我会将bc计算设置为 3 或 4 个小数位,以实现可读性/精度平衡。

概括

我希望模仿微软和 Gnome 的“大佬们”使用“更多红色”和/或“更少蓝色”技术的做法。我还没有深入研究 Wayland,但使用该系统的答案也会受到赞赏,因为它无疑会成为未来的关注点。

--gamma 1:1:1晚上进行哪些调整比较合适?

答案1

2018 年 12 月 9 日更新 -sct

我找到了一个允许用户设置色温的程序的源代码sct。它“抄袭了代码”redshift并提供了红色、绿色和蓝色值的映射:

/* cribbed from redshift, but truncated with 500K steps */
static const struct { float r; float g; float b; } whitepoints[] = {
    { 1.00000000,  0.18172716,  0.00000000, }, /* 1000K */
    { 1.00000000,  0.42322816,  0.00000000, },
    { 1.00000000,  0.54360078,  0.08679949, },
    { 1.00000000,  0.64373109,  0.28819679, },
    { 1.00000000,  0.71976951,  0.42860152, },
    { 1.00000000,  0.77987699,  0.54642268, },
    { 1.00000000,  0.82854786,  0.64816570, },
    { 1.00000000,  0.86860704,  0.73688797, },
    { 1.00000000,  0.90198230,  0.81465502, },
    { 1.00000000,  0.93853986,  0.88130458, },
    { 1.00000000,  0.97107439,  0.94305985, },
    { 1.00000000,  1.00000000,  1.00000000, }, /* 6500K */
    { 0.95160805,  0.96983355,  1.00000000, },
    { 0.91194747,  0.94470005,  1.00000000, },
    { 0.87906581,  0.92357340,  1.00000000, },
    { 0.85139976,  0.90559011,  1.00000000, },
    { 0.82782969,  0.89011714,  1.00000000, },
    { 0.80753191,  0.87667891,  1.00000000, },
    { 0.78988728,  0.86491137,  1.00000000, }, /* 10000K */
    { 0.77442176,  0.85453121,  1.00000000, },
};

上面三列是红色的绿色的蓝色的

2018 年 11 月 4 日更新 - Eyesome

我写了一组 Bash 脚本,叫做令人赏心悦目逐步调整亮度和伽玛在 90 分钟到 120 分钟的时间内,在黎明和黄昏时分进行。虽然用户可以更改设置,但全亮度设置的良好起点是:

xrandr --output DP-1-1 --gamma 1:1:1 --brightness 1.0

夜间设置(针对三个监视器中的一个)是:

xrandr --output DP-1-1 --gamma 1.0:0.88:0.76 --brightness 0.55

笔记:最多可以定义三个具有单独设置地监视器。


原始答案

终于找到了一个答案:更多 XRANDR 或蓝光照射该脚本如下所示:

#!/bin/sh 

night_mode() { 
  for disp in $(xrandr | sed -n 's/^\([^ ]*\).*\<connected>.*/\1/p'); do 
    xrandr --output $disp --gamma $1 --brightness $2 
  done } 
case $1 in 
  off) night_mode 1:1:1 1.0 ;; 
  *) night_mode 1:1:0.5 0.7 ;;
esac

该脚本可降低所有连接的 Xorg 显示器的蓝光分量和亮度。只需将其保存在您的bin目录中,chmod +x然后,如果您愿意,添加cron作业或键盘快捷键来调用该函数。

工作原理是什么?只需输入脚本名称而不输入任何参数即可减少蓝光。要恢复正常设置,请off在命令后添加参数。

答案2

您提到的数千个数值是开尔文温度。每个数值都有相应的黑体(恒星或任何发射所有波长光的东西)发射光谱。

黑体发射光谱

因此,如果您选择一条可见光波段(例如红色、绿色或蓝色),然后找到曲线与这些波段的交点,这样就可以得到它们的比例。(注意:图表上的比例是对数的;差异比表面上的要大得多)

我认为 5777K 是我们的太阳(有点白)。请记住,这只是原始发射光,各种大气效应可以在一天中的不同时间弯曲、散射或吸收沿途的光线,具体取决于太阳的角度、大气厚度、大气中的化学物质等。阅读本文以了解有关这些现象的更多信息:室外照明随太阳高度和光污染的变化

您绝对不需要所有这些来制作一个好的伽马改变脚本,但最好对您实际尝试模拟的内容有所了解,然后您可以选择好的值。

答案3

redshift对我来说,通过安装( apt install redshift) 并将其用作以下任一方式可获得最佳效果:

redshift -oP -O 4500 -b 0.5

温度为 4500 且亮度为 0.5,或与之结合xrandr(以及可选地xrandr-invert-colors反转颜色):

xrandr --output eDP-1 --brightness 0.5
xrandr-invert-colors
redshift -o -O 4500

xrandr请注意,单独调用将取消任何红移效果。-P选项redshift还会重置屏幕亮度和颜色,而不是逐步叠加调整。如果与第二种用例-P结合使用,则需要进行增量调整(无选项) 。xrandr

最后,不使用xrandr-invert-colors,也可以使用 中的负亮度值xrandr(但不是在 中redshift),但结果不太好。

相关内容