如何从命令行(或通过脚本)更改 LCD 亮度?

use*_*748 192 command-line backlight brightness

要解决错误 #1005495(无法通过热键更改 LCD 亮度),我希望有一个命令行查询来增加和降低 LCD 的亮度。然后我可以将热键映射到每个查询。

问题是:我不知道如何在命令行上增加和减少 LCD 亮度。你?

rɑː*_*dʒɑ 174

打开你的终端并输入这个

xrandr -q | grep " connected"
Run Code Online (Sandbox Code Playgroud)

它会给你输出

LVDS1 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 331mm x 207mm
Run Code Online (Sandbox Code Playgroud)

LVDS1 代表您的显示器。所以现在你必须这样做

xrandr --output LVDS1 --brightness 0.5
Run Code Online (Sandbox Code Playgroud)

有 0.5 代表亮度级别,范围从 0.0 到 1.0 。0.0 -> Full black .so 您必须选择所需的亮度值。

不会在硬件级别改变亮度。从randr手册

--brightness brightness将当前附加到输出的 crtc 上的伽马值乘以指定的浮点值。适用于过亮或过暗的输出。但是,这是一个纯软件修改,如果您的硬件支持实际更改亮度,您可能更喜欢使用 xbacklight。

  • 这似乎不会改变硬件级别的亮度 (58认同)
  • 太糟糕了,这个答案得到了这么多票。我的笔记本电脑屏幕“模拟”黑暗,可以说是通过使事物看起来更暗(就像您播放带有夜景的视频一样,这与屏幕亮度无关,而是与掩盖背景光的像素有关)。亮度完全相同,由于像素比现在更暗,因此比以前浪费了更多的电池。 (15认同)
  • 它伪造亮度。亮度不会改变,它是由软件渲染的。 (7认同)
  • 感谢您的回答,但我需要的是类似 xrandr --increase 10 的东西,以将亮度增加 10%。这也可以吗? (2认同)
  • 我可以确认这只会模拟亮度,不会改变显示器背景灯的亮度。有趣的是,鼠标指针的亮度没有改变,使它比桌面的其余部分亮得多。 (2认同)

rɑː*_*dʒɑ 161

注意xbacklight仅适用于英特尔,不适用于 Radeon,并且根本不适用于模式设置驱动程序()。它也只适用于 X11,不适用于 Wayland。


我们必须这样做的另一种方法是使用另一个名为 xbacklight 的新程序,打开您的终端并输入以下内容

sudo apt-get install xbacklight
Run Code Online (Sandbox Code Playgroud)

然后输入这个 xbacklight -set 50

有 50 代表亮度范围,我们可以从 0 到 100。

您还可以将亮度从当前值增加和减少到指定级别。正如您所提到的,如果您想从当前亮度值增加到 10%,那么您可以给出这个

xbacklight -inc 10
Run Code Online (Sandbox Code Playgroud)

并减少 10% 你可以给这个

xbacklight -dec 10 
Run Code Online (Sandbox Code Playgroud)

  • 这看起来真的很简单,但不幸的是它对我不起作用。亮度根本不会改变,不是 -dec 也不是 -set。我想我将不得不希望该错误能尽快得到修复。不过还是谢谢。 (42认同)
  • 此外,您可以使用一个速记:`xbacklight +10; xbacklight -10; xbacklight =50;` (2认同)

pal*_*int 142

以下对我有用:

echo 400 | sudo tee /sys/class/backlight/intel_backlight/brightness
Run Code Online (Sandbox Code Playgroud)

我猜最大可能值在/sys/class/backlight/intel_backlight/max_brightness文件中。

替换intel_backlight为星号以应用于所有背光。

  • @Ray 试试这个:`echo 400 | 须藤 tee /sys/class/backlight/intel_backlight/brightness`。 (17认同)
  • 这是非常低级的,但实际上似乎是唯一可靠工作的东西。如果你使用 `sudo chmod 0646` 这个 `brightness` 文件,它会变得不那么难看,所以不再需要 `sudo` 来设置亮度。 (14认同)
  • 将其设置为 su 权限的原因是病毒可能会以令人难以置信的速度使您的屏幕变暗和变亮,最终损坏您的硬件显示器。在 90 年代,我遇到了一种病毒,它会快速调整屏幕刷新赫兹,以至于您的显示器会炸毁。因此,请小心调整对此的权限。 (12认同)
  • @Ray 当您执行 `sudo echo 400 > /sys/class 时。.. ./brightness` 重定向由 shell 完成,而不是由 echo 完成。而且 shell 仍然以您的普通用户身份运行,而不是以 sudo 身份运行。这就是为什么它拒绝许可的原因。您需要有一个实用程序,可以使用 root 权限写入文件,这就是 `tee` 工作的原因。 (11认同)
  • `回声400 | sudo tee /sys/class/backlight/radeon_bl0/brightness` 用于 radeon APU 和卡 (4认同)
  • 您可以将脚本作为 NOPASSWD 条目添加到 sudoers,而不是更改文件的权限(并更改脚本的权限以要求 root 来编辑它)。从那里您可以实施超时和您认为合适的任何其他保护措施。或者,您可以编写一个守护进程来定期将亮度设置从可写的本地亮度文件复制到实时文件中。这两种方法都意味着您可以绑定键来修改亮度,而无需输入密码或让主设备不安全。 (3认同)
  • 回声'30000' | sudo tee /sys/class/backlight/gmux_backlight/brightness 对我来说 (2认同)
  • 厉害了,谢谢 使用 Ubuntu Server 或任何无头系统,您不想安装窗口管理器只是为了访问 `xrandr` 或让 `xbacklight` 工作。这在我运行 Ubuntu Server 19.04 的 MacBook Air 上完美运行,不需要任何额外的包。 (2认同)

Pab*_*chi 14

在 GNOME 中使用 D-Bus

您可以增加/减少亮度gdbus

# Step up:
gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.StepUp

# Step down:
gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.StepDown
Run Code Online (Sandbox Code Playgroud)

笔记


Gau*_*dhi 13

对于笔记本电脑,

sudo setpci -s 00:02.0 F4.B=80
Run Code Online (Sandbox Code Playgroud)

更改80通过[0-FF]获得最低最高亮度。指定的值以十六进制表示,因此80将为您提供50%最大亮度。

对于台式机进行伽马校正(未经我测试),

xgamma -gamma .75
Run Code Online (Sandbox Code Playgroud)


For*_*rdi 5

制作这个脚本:

set-brightness.sh

#!/bin/bash
TARGET="acpi_video0"
cd /sys/class/backlight
MAX="$(cat "${TARGET}/max_brightness")"
# The `/1` at the end forced bc to cast the result 
# to an integer, even if $1 is a float (which it 
# should be)
LOGIC="$(echo "($1 * ${MAX})/1" | bc)"
for i in */; do
    if [[ "${TARGET}/" != "$i" && -e "${i}brightness" ]]; then
        cat "${i}max_brightness" > "${i}brightness"
    fi
done
echo "$LOGIC" > "${TARGET}/brightness"
Run Code Online (Sandbox Code Playgroud)

以 root 身份运行,使用 0 到 1 之间的任意值。

sudo ./set-brightness.sh 0.5
Run Code Online (Sandbox Code Playgroud)
  • 如果您的系统没有/sys/class/backlight/acpi_video0,则其中应该至少有一个目录,该目录可能是特定于设备的(radeon_bl0例如,我也有一个 )。
  • 如果您有其他值,请记住它们的值堆栈(因此是循环;将所有其他值推至 1.0,然后将目标值设置为所需的量)。
  • 虽然acpi_video0 应该始终有效,但它并不总是具有完整的物理亮度范围。尝试每一种,并使用色域最大的一种作为您的“目标”

  • 考虑使用“/sys/class/backlight/*/brightness”,而不是尝试将“acpi_video0”硬编码到脚本中。它将允许通用化文件路径,该路径可以不同 - 例如,我有“intel_backlight”,而不是“acpi_video0”。这就是我在[此处的脚本]中使用的内容(http://askubuntu.com/a/743141/295286) (4认同)