【发布时间】:2011-10-01 08:02:51
【问题描述】:
如何以编程方式更改 Linux 上的显示器亮度?
我正在使用 SLES 11。
【问题讨论】:
标签: linux opensuse brightness xserver
如何以编程方式更改 Linux 上的显示器亮度?
我正在使用 SLES 11。
【问题讨论】:
标签: linux opensuse brightness xserver
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
【讨论】:
为此的命令:
xgamma -gamma 0.7
【讨论】:
xgamma 预装了吗?
编辑/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”
奇拉格·辛格
【讨论】:
如果您安装了多个显示器和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
【讨论】:
在我的机器上,我以 root 身份运行以下命令:
echo -n 10 > /sys/devices/virtual/backlight/acpi_video0/brightness
【讨论】:
function brightness() {echo $1 > /sys/class/backlight/acpi_video0/brightness}
echo: write error: Invalid argument。您可能需要先检查/sys/class/backlight/acpi_video0/max_brightness。我发现对我来说 max_brightness 是 7。
对我来说,它与xbacklight 完美搭配。
例如,如果您希望设置键绑定,则可以使用
bindsym $SUPER+Shift+plus exec xbacklight -inc 10
bindsym $SUPER+Shift+minus exec xbacklight -dec 10
在您的窗口管理器配置中(我使用 i3)来调节屏幕的亮度级别。
我不会为此推荐 xrandr,因为它不会自动停止在 100% 亮度。
【讨论】:
您可以尝试使用 xbacklight。
xbacklight -set 100
【讨论】:
您可以随时使用
xrandr --output LVDS1 --brightness 0.9
【讨论】:
xrandr 并检查您拥有的显示器的名称。这条线看起来像“LVDS1 connected 1920x1080+0+0”。
man xrandr 关于--brightness 的内容:“这是一个纯软件修改,如果您的硬件支持实际更改亮度,您可能更喜欢使用xbacklight”
您可能会考虑使用xgamma。虽然它不是纯代码,但至少它只是一个命令行实用程序。
【讨论】: