AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1003101
Accepted
WinEunuuchs2Unix
WinEunuuchs2Unix
Asked: 2018-02-05 16:43:26 +0800 CST2018-02-05 16:43:26 +0800 CST 2018-02-05 16:43:26 +0800 CST

如何将“xrandr --gamma”用于类似 Gnome“夜灯”的用法?

  • 772

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

为了在夜间保护眼睛,添加更多红色和/或减少蓝色,在Windows 10(蓝光过滤器)和 Linux 中变得流行;Gnome 桌面(夜灯)和 Ubuntu Unity 桌面以及Red Shift或f.lux等附加组件。

我想知道如何使用 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 示例无济于事

根据OMG Ubuntu,在 Gnome 的 Night Light 中,您可以使用以下数值:

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

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

xorg 的文档是怎么说的

Xorg 的文档并没有太多关于--gamma控件的说明:

−−伽马红:绿:蓝

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

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

概括

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

什么调整--gamma 1:1:1适合夜间?

xrandr ubuntu-gnome redshift f.lux gamma
  • 3 3 个回答
  • 17843 Views

3 个回答

  • Voted
  1. Best Answer
    WinEunuuchs2Unix
    2018-08-01T20:12:55+08:002018-08-01T20:12:55+08:00

    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, },
    };
    

    上面的三列是Red、Green和Blue的值。

    2018 年 11 月 4 日更新 - Eyesome

    我编写了一组名为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请在命令后添加参数。

    • 26
  2. Libervurto
    2021-04-05T07:03:46+08:002021-04-05T07:03:46+08:00

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

    黑体发射光谱

    所以,如果你选择一个可见光带(例如红色、绿色或蓝色),然后找到曲线与这些带相交的位置,这会给你它们的比例。(注意:图表上的比例是对数的;差异比看起来要大得多)

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

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

    • 2
  3. armando.sano
    2022-05-13T08:45:35+08:002022-05-13T08:45:35+08:00

    对我来说,最好的结果是通过安装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中与 like 一起使用,则需要增量调整(无选项)。xrandr

    最后,xrandr-invert-colors除了使用 ,还可以使用负亮度值xrandr(但不能使用redshift),但结果不是很好。

    • 0

相关问题

  • xrandr:无法添加新模式

  • Doom-II 类似红色闪屏

  • 使用 xrandr 更改分辨率时出现问题:BadMatch

  • 如何让第二个显示器与主显示器一起工作?

  • 什么可能会阻止 xrandr 屏幕之间的鼠标移动?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve