【问题标题】:How to control backlight by terminal command如何通过终端命令控制背光
【发布时间】:2014-08-31 02:06:44
【问题描述】:

我正在尝试制作一个控制Linux操作系统亮度的程序,但我需要知道如何仅使用终端命令来控制显示器背光? 我需要能够增加,减少。如果可能的话,还可以调暗屏幕(并返回撤消调暗)。

【问题讨论】:

标签: linux terminal


【解决方案1】:

有很多可能性。仅举几例:

1.裸回声

echo 8 > /sys/class/backlight/intel_backlight/brightness

为此,用户必须在video 组中。

查看/sys/class/backlight/intel_backlight/max_brightness,了解支持的最大亮度。

2.使用最简单

安装xbacklight包然后试试

 xbacklight -inc 20     # increase backlight by 20%
 xbacklight -dec 30     # decrease by 30%
 xbacklight -set 80     # set to 80% of max value
 xbacklight -get        # get the current level

3.过于复杂

运行xrandr --verbose 并查找分辨率类似于LVDS1 connected 1024x600+0+0 的行。此处需要您的显示器名称(本例中为 LVDS1)。现在您可以设置亮度了

xrandr --output LVDS1 --brightness 0.4

但这仅设置软件,而不是硬件亮度,因此您可以超过限制(在两个方向上)。不要期望美丽的结果,但如果你有足够的勇气尝试一下,那就系好安全带然后跑

xrandr --output LVDS1 --brightness 1.7
xrandr --output LVDS1 --brightness -0.4  #yes, negative value is possible
xrandr --output LVDS1 --brightness 1

您可以使用 xrandr 更多地折磨您的显示器,但如果出现问题,请准备好重新启动您的计算机。例如玩下面的

xrandr --output LVDS1 --reflect x
xrandr --output LVDS1 --reflect xy
xrandr --output LVDS1 --reflect normal     # return to normal state
xrandr --output LVDS1 --rotate left
xrandr --output LVDS1 --rotate inverted
xrandr --output LVDS1 --rotate normal      # again, back to normal

【讨论】:

  • 在我的用户被添加到视频组后(即使我重新启动后),我仍然被拒绝权限
  • 我使用文本编辑器成功修改了'brightness'文件。在我的机器上,'backlight/intel_backlight' 与其他设置亮度的方法是分开的,所以答案很有帮助。
【解决方案2】:

对于外部连接的显示器,有一些 Linux 实用程序支持 DDC/MCCS,这是用于从 PC 控制显示器设置的 VESA 标准。 MCCS 命令可以通过 i2c(内核 i2c-dev 模块)发送到 DVI、DisplayPort、HDMI 显示器或用于 USB 连接显示器的 USB。我发现命令行实用程序ddcutil 是一个可靠的 DDC/MCCS 工具。如果您需要 ddcutil 的小型系统托盘前端,我已经编写了 vdu_controls(python Qt 脚本)。我在OpenSUSE forum post 中写了一个关于 vdu_controls、ddcutil 和 DDC/MCCS 的简要介绍。

% ddcutil --display 2 getvcp 10
VCP code 0x10 (Brightness): current value =    50, max value =   100

% ddcutil --display 2 setvcp 10 90

【讨论】:

  • 这似乎是设置外部(HDMI、DP等)显示器的硬件亮度的正确方法。大多数(全部?)其他答案适用于内部连接(笔记本电脑)显示器(xbacklight)或仅更改输出信号,而不是实际背光(xrandr --brightness)。 Dccutil 基本上是一种通过软件设置您通过监视器 OSD 执行的操作的方法。
【解决方案3】:

使用 XFCE4 电源管理器替代裸回声

在我的 DELL Inspiron 11 xbacklight 上不起作用(“没有输出具有背光属性”)。 user362097 描述的裸 echo 方法确实有效。

如果您使用的是 Xubuntu 或使用 XFCE4 电源管理器的某些发行版,您可以使用 xfpm-power-backlight-helper

pkexec xfpm-power-backlight-helper --get-max-brightness
# I get 6009
pkexec xfpm-power-backlight-helper --set-brightness 1000

【讨论】:

    【解决方案4】:

    大家好,我会告诉你最简单的方法来控制屏幕的亮度。

    这里的参数范围是100-999 根据您的要求在下面的命令行中调整数字

    echo 200 | sudo tee /sys/class/backlight/intel_backlight/brightness
    

    希望对你有所帮助。

    【讨论】:

    • 哇!这对惠普可转换笔记本电脑来说就像魔术一样。不过,亮度范围为 0-7500。 需要注意不要输入非常低的一位数或两位数的亮度值,因为这可能会让人难以看清屏幕。
    【解决方案5】:

    我正在寻找一个命令来调整运行 Fedora 30 XFCE 的笔记本电脑 LCD 面板的背光。

    由于某种原因,xbacklight 不起作用 我还假设即使 xbacklight 在图形环境中工作,比如在 X 服务器下,它也不会在运行级别 3 中工作,在虚拟控制台中 所以我发现 Brightlight 现在工作得很好,它在 XFCE 和运行级别 3 下都可以工作。 使用

    安装
    sudo dnf install brightlight
    

    有关运行命令类型的信息:

    brightlight -h
    

    【讨论】:

    • 甚至认为您的答案看起来不错。已经有一个更高质量(并且被接受)的。
    【解决方案6】:

    为什么要折磨自己?你不是更喜欢漂亮的 gui 吗?

    这个简单的脚本是为使用背光系统而编写的,在@user3620917 的answer 中被称为“Bare Echo”。但是,一旦您确定了在您的系统上可以使用的任何命令,您就可以调整此滑块以使用它。

    它需要很小的 yad,它消耗很少的 RAM,并且当您关闭滑块时,不会在后台留下任何东西。要了解基本功能并确保您有 yad,请在命令行中尝试:

    yad --scale --print-partial
    

    完整脚本:

    #!/bin/sh 
    BrPath='/sys/class/backlight/intel_backlight/' 
    BrCur=`cat ${BrPath}brightness` 
    BrMax=`cat ${BrPath}max_brightness` 
    BrMin=$(( (BrMax + (100 - 1)) / 100))   # 100th max-brightness, rounded up to nearest integer 
    yad --scale --min-value $BrMin --max-value $BrMax --value $BrCur --print-partial --title 'Set brightnessradky's Dpup Stretch 7.5 (RC3)' --width 300 --fixed --sticky --mouse --on-top --escape-ok --button OK --hide-value | while read BrNew 
       do echo "$BrNew" > ${BrPath}brightness 
       done
    

    所有选项的解释: https://www.mankier.com/1/yad

    要安装:

    • 确认简单的 echo 命令在您的机器上有效。尝试各种值,看看您的亮度是否发生变化。

      echo 10000000 > /sys/class/backlight/intel_backlight/brightness

    • 确认 yad 工作:

      yad --scale --print-partial

    • 将脚本保存在名为 set-brightness 的文件中

    • 如果需要,编辑BrPath= 行以匹配您的背光路径。
    • 将脚本放入/usr/local/bin
    • 在您的面板或桌面上创建一个启动器,该启动器运行命令 set-brightness。由于它在 /usr/local/bin 中,您的操作系统应该会找到它——无需输入整个路径。

    失败原因:

    【讨论】:

    • 我发现您的解决方案很有趣,sudo 运行顺畅。我不得不将标题更新为'Set brightnessradkys Dpup Stretch 7.5'
    • 我看不到屏幕有任何变化,即使我将背光调整到 100
    【解决方案7】:

    如果您想在硬件级别进行更改,则取决于您拥有的显卡。我有 radeon 卡 + intel 集成卡。因此,我通过以下脚本为您提到的 3 个任务更改亮度。

    1. 增加亮度
    cb=$(cat /sys/class/backlight/intel_backlight/brightness)   
    nb=$(($cb + 50))     
    echo $nb > /sys/class/backlight/intel_backlight/brightness     
    notify-send -t 1 -a "My Brightness controller" $nb
    
    1. 降低亮度
    cb=$(cat /sys/class/backlight/intel_backlight/brightness)    
    nb=$(($cb - 50))    
    echo $nb > /sys/class/backlight/intel_backlight/brightness     
    notify-send -t 1 -a "My Brightness controller" $nb
    
    1. 屏幕昏暗
    cb=$(cat /sys/class/backlight/intel_backlight/brightness)    
    if [ $cb -ne 0 ]    
    then    
        nb=0    
        echo $cb > /home/prem/Documents/sys_files/old_bright    
    else    
        nb=$(cat /home/prem/Documents/sys_files/old_bright)    
    fi    
    echo $nb > /sys/class/backlight/intel_backlight/brightness
    

    在您的情况下,您可能需要从 Intel 更改文件夹名称,具体取决于您的 GPU。

    【讨论】:

      【解决方案8】:

      step1:打开终端ctrl+alt+t

      第二步:xrandr | grep "已连接" |剪切 -f1 -d " "

      step3:xrandr --output [显示器名称] --brightness [亮度级别]

       example: xrandr --output LVDS-1 --brightness 0.75
      

      亮度级别应设置在 0.5 到 1 之间以获得更好的可见度。

      【讨论】:

      • xrandr 不会改变物理背光亮度,它只是将 X11 输出移向或远离现有设置的最大值。因此,如果您的背光为 13%,使用 xrandr 增加亮度只会将亮度范围压缩到 13%。
      【解决方案9】:

      这是在任何基于 linux 的系统中控制亮度的简单命令

      首先你要知道连接到你电脑的监控屏幕。

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

      xrandr -q

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

      这里我的屏幕连接到 eDP

      您的系统可能会有所不同

      知道运行以下命令后

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

      用您连接的屏幕从上面的输出替换 eDP,您可以获得从 0.1 到 1.0 的正常亮度值

      【讨论】:

        猜你喜欢
        • 2016-07-12
        • 2014-08-06
        • 1970-01-01
        • 2018-05-18
        • 2015-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多