【问题标题】:How to change the Monitor brightness on Linux?如何在 Linux 上更改显示器亮度?
【发布时间】:2011-10-01 08:02:51
【问题描述】:

如何以编程方式更改 Linux 上的显示器亮度?

我正在使用 SLES 11。

【问题讨论】:

标签: linux opensuse brightness xserver


【解决方案1】:

ddcutil 应用程序可以通过 VESA DDC/MCCS 标准更改外接显示器的实际背光亮度(xrandr 只能在显示器当前设置的限制范围内移动 X11 输出,它不能更改实际背光亮度)。这应该适用于通过显示数据通道支持该功能的任何显示器(DDC 已经存在了一段时间,它得到了广泛的支持,但仅适用于外部显示器)。我使用 ddcutil 根据从网络摄像头采样的环境光水平自动调整我的显示器。 Ddcutil 使用 i2c-dev 内核模块(modprobe i2c-dev 或将其设置为在启动时加载)。

ddcutil detect                    # Get list of DDC displays
ddcutil --display 2 capabilities  # List VCP feature key numbers
ddcutil --display 2 getvcp 10     # Get brightness by key number
ddcutil --display 2 setvcp 10 50  # Set brightness to 50                                                                            

【讨论】:

【解决方案2】:

为此的命令:

xgamma -gamma 0.7

【讨论】:

  • 欢迎来到 Stack Overflow 你能详细说明你的答案吗?在这种情况下,这对于哪些操作系统是一个选项?论点“伽玛”有什么变化? xgamma 预装了吗?
【解决方案3】:

编辑/etc/default/grub文件并添加

“pcie_aspm=force acpi_backlight=vendor” 之后

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”

更改后,整行将如下所示

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash pcie_aspm=force acpi_backlight=vendor”

奇拉格·辛格

【讨论】:

    【解决方案4】:

    这是在基于 Linux 的系统中控制亮度的简单步骤

    首先,你要知道连接你的监控屏幕。

    要知道这一点,请运行此命令

    xrandr -q
    

    它将提供有关屏幕的有用信息

    (这里我的屏幕连接到了 eDP,你的系统可能会有所不同)

    知道运行以下命令后

    xrandr --output eDP --brightness[0-10]

    用上述输出中连接的屏幕替换 eDP。

    您可以选择从 0.1 到 1.0 的正常亮度值

    【讨论】:

      【解决方案5】:

      如果您安装了多个显示器和php,请将其放入

      /usr/bin/亮度

      #!/usr/bin/php
      <?
      $br=(double)$argv[1];
      if(!$br||$br>1) die("enter brightness lvl 0.1 - 1");
      preg_match_all('!^(\S+)!m',`xrandr --current | grep ' connected'`,$m);
      foreach($m[1] as $display){
              echo `xrandr --output $display --brightness $br`."\n";
      }
      

      比打电话brightness .7

      【讨论】:

        【解决方案6】:

        在我的机器上,我以 root 身份运行以下命令:

        echo -n 10 > /sys/devices/virtual/backlight/acpi_video0/brightness
        

        【讨论】:

        • 这是我使用的,但是每次输入这个命令都很痛苦,所以你可能想在你的.bashrc文件中添加一个shell函数,比如function brightness() {echo $1 &gt; /sys/class/backlight/acpi_video0/brightness}
        • 我在尝试这个时收到了echo: write error: Invalid argument。您可能需要先检查/sys/class/backlight/acpi_video0/max_brightness。我发现对我来说 max_brightness 是 7。
        • 它可以工作,但亮度 0 只会导致屏幕变暗,而不是黑屏(如关闭)!知道为什么吗?
        【解决方案7】:

        对我来说,它与xbacklight 完美搭配。 例如,如果您希望设置键绑定,则可以使用

        bindsym $SUPER+Shift+plus   exec  xbacklight -inc 10
        bindsym $SUPER+Shift+minus  exec  xbacklight -dec 10
        

        在您的窗口管理器配置中(我使用 i3)来调节屏幕的亮度级别。

        我不会为此推荐 xrandr,因为它不会自动停止在 100% 亮度。

        【讨论】:

          【解决方案8】:

          您可以尝试使用 xbacklight。

          xbacklight -set 100

          【讨论】:

            【解决方案9】:

            您可以随时使用

            xrandr --output LVDS1 --brightness 0.9
            

            【讨论】:

            • "LVDS1" 是您要更改的显示器的名称。运行xrandr 并检查您拥有的显示器的名称。这条线看起来像“LVDS1 connected 1920x1080+0+0”。
            • 引用man xrandr 关于--brightness 的内容:“这是一个纯软件修改,如果您的硬件支持实际更改亮度,您可能更喜欢使用xbacklight
            • 如果您有笔记本电脑,请将 LVDS1 更改为 eDP,如果您有 DP 显示器并将其与 DP 连接,请使用 DP instad,与 DVI1、DVI2 等相同
            • Amr 是对的。这可以将所有白色变为黑色,或将所有黑色变为白色;但不要让白色更亮
            • 因为这个答案并没有真正改变显示器的亮度,你最好尝试一下这个答案的可能性:askubuntu.com/a/1181157/1046889
            【解决方案10】:

            您可能会考虑使用xgamma。虽然它不是纯代码,但至少它只是一个命令行实用程序。

            【讨论】:

            • xgamma不是显示器亮度,它是在输出到VGA卡之前的图像过滤。
            猜你喜欢
            • 2011-04-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-03-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-10-10
            相关资源
            最近更新 更多