linux 如何通过终端命令控制背光

4urapxun  于 2022-11-28  发布在  Linux
关注(0)|答案(9)|浏览(302)

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

v7pvogib

v7pvogib1#

有许多可能性。仅举几例:
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
ldxq2e6h

ldxq2e6h2#

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

在我的DELL Inspiron灵越11 xbacklight上不起作用(“没有输出具有背光属性”)。用户362097描述的裸回声方法起作用。
如果您使用的是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
e5nqia27

e5nqia273#

对于外部连接的显示器,有支持DDC/MCCS的Linux实用程序,这是用于从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
kq0g1dla

kq0g1dla4#

为什么要折磨自己?难道你不想做个好人吗?

这个简单的脚本是为背光系统编写的,在@user3620917的answer中被称为“Bare Echo”。但是,一旦你弄清楚了任何命令在你的系统上都有效,你就可以调整这个滑块来使用它。
它需要一个小的yad,它占用很少的内存,并且当你关闭滑块时后台没有任何东西在运行。要了解这个基本功能,并确保你有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/类/背光/英特尔_背光/亮度

  • 确认yad工作:

yad --缩放--打印-部分

  • 将脚本保存在名为set-brightness的文件中
  • 如果需要,编辑BrPath=行以匹配背光路径。
  • 将脚本放入/usr/local/bin中
  • 在你的面板或桌面上创建一个启动器,它运行set-brightness命令。因为它在/usr/local/bin,你的操作系统应该能找到它--不需要输入完整的路径。
    故障原因:
  • 您的背光路径可能不是intel。请确定哪个背光路径适合您的计算机https://askubuntu.com/questions/437983/how-to-find-backlight-is-managed-by-which-card
  • 您可能安装了旧版本的yad,或者根本没有安装。http://archive.ubuntu.com/ubuntu/pool/universe/y/yad/
  • 如果您不是以root用户身份运行,则可能需要给予您的用户(或所有用户)对亮度文件的写入权限

chmod 666 /sys/类/背光/英特尔_背光/亮度

  • 你的yad 'title'参数中可能有一些yad版本不喜欢的字符,比如parents。(parents对我来说是有效的,ymmv)。
mrzz3bfm

mrzz3bfm5#

嘿,这里的家伙,我会告诉你最简单的一个来控制你的屏幕的亮度。
此处参数范围为100-999,具体取决于您的要求,请在下面的命令行中调整数值

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

希望对你有帮助。

zsbz8rwp

zsbz8rwp6#

我正在寻找一个命令来调整一个笔记本电脑的液晶面板运行Fedora 30 XFCE的背光。
由于某些原因xbacklight不工作我也假设即使xbacklight在图形环境下工作,比如在X服务器下,它也不会在运行级别3,在虚拟控制台中工作所以我找到了现在工作得很好的brightlight,它在XFCE和运行级别3下都能工作。

sudo dnf install brightlight

有关运行命令的信息,请键入:

brightlight -h
bxgwgixi

bxgwgixi7#

如果你想改变它在硬件层面上那么它取决于你有哪种显卡。我有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

在您的情况下,您可能需要根据您的GPU更改英特尔的文件夹名称。

dxxyhpgq

dxxyhpgq8#

步骤1:打开终端Ctrl+Alt+t
步骤2:x随机数|grep“已连接”|剪切-f1 -d““
step 3:xrandr --输出[显示器名称] --亮度[亮度级别]

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

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

kuhbmx9i

kuhbmx9i9#

下面是在任何基于linux的系统中控制亮度的简单命令
首先,你必须知道连接到您的计算机的监控屏幕。
要了解这一点,请运行以下命令
x坐标-q
它将提供有关屏幕的有用信息

这里我的屏幕连接到eDP
您的系统可能会有所不同
了解后,运行以下命令
xrandr-输出eDP-亮度[0 - 10]
将eDP替换为上述输出中连接的屏幕,您可以获得0.1至1.0的正常亮度值

相关问题