如何在亮度控制上具有非零最小亮度的笔记本电脑上设置零亮度?
无论 XIe 是什么,该解决方案都应该工作,它也应该在虚拟终端中工作。
答案1
在采用 Intel 芯片组的笔记本电脑领域,LVDS 连接面板和 eDP 连接面板之间似乎存在区别:
电子数据处理:
echo 4 > /sys/class/backlight/intel_backlight/bl_power
…应该关闭背光。
echo 0 > /sys/class/backlight/intel_backlight/bl_power
……应该再次打开它。
LVDS:
我发现无法通过 sysfs 关闭 Thinkpad X201 和 X201 平板电脑上的背光(bl_power 不执行任何操作;显然,它是 eDP 特定的)。
这一页对 Linux 内核中背光控制的复杂历史进行了非常冗长的描述。长话短说:
i915 从 v3.18 开始支持 eDP 面板的 bl_power(但不支持 LVDS)。
然而,intel_backlight
我已经能够通过使用名为的工具来关闭背光英特尔 GPU 工具。这需要 root,因为它显然写入原始寄存器。
intel_backlight 0
...为我关闭了背光。使用亮度调整控件将其调高,可在此处重新启用它。
我还编写了一个脚本,将其连接到键盘生成的 ACPI 事件上(在我的例子中,为 fn+space 或 )button/zoom
。如果您的系统不使用该 ACPI 事件,则需要使用 acpi_listen 来查找您想要的事件。系统确实有。
为了触发它,我创建了一个名为的fnspace-backlight
文件/etc/acpi/events
:
# Wyatt Ward
# hook for magnify acpi event (fn+space)
# toggle LCD backlight on/off
event=button/zoom
action=/etc/acpi/actions/toggle-lcd-light.sh
我还制作了一个名为 的文件/etc/acpi/actions/toggle-lcd-light.sh
,标记为可执行文件。这让我可以切换背光,而无需更改之前设置的亮度级别,并将临时值存储在/brightness
.由于 ACPI 事件以 root 身份运行操作,因此请小心。
#! /bin/bash
BRIGHTSAVEFILE="/brightness"
BRIGHTSYSFS="/sys/class/backlight/acpi_video0/brightness"
# is the light on or off?
INTEL_BACKLIGHT="/usr/bin/intel_backlight"
light_state=$("$INTEL_BACKLIGHT" | sed 's/current backlight value: //g'|sed 's/%//g')
echo "light: ""$light_state"
if [ "$light_state" -eq 0 ]; then
cat "$BRIGHTSAVEFILE" > "$BRIGHTSYSFS"
else
# back up current brightness level
cat "$BRIGHTSYSFS" > "$BRIGHTSAVEFILE"
# turn off backlight
"$INTEL_BACKLIGHT" 0
fi
补充一点有趣的是,您可以通过稍微修改 intel_backlight 来以令人难以置信的粒度控制背光。将其更改为将参数读取为浮点数而不是整数,并进行浮点算术,只需要调整几行代码,即可让您进行极其精确的亮度更改,包括低于通过 sysfs 获得的最小值的亮度更改。
答案2
从 X Windows
在 X Windows 中,您可以使用该应用程序xbacklight
获取和设置屏幕的亮度百分比。
例子
当前水平
$ xbacklight -get
100.000000
设置为 75%
$ xbacklight -set 75
$ xbacklight -get
73.333333
设置回 100%
$ xbacklight -set 100
$ xbacklight -get
100.000000
从控制台
要实现虚拟终端的类似功能,您可能需要通过/sys
文件系统与 ACPI 设置进行交互。
例子
调暗它
$ echo "10" | sudo tee /sys/class/backlight/acpi_video0/brightness
10
全亮度
$ echo "15" | sudo tee /sys/class/backlight/acpi_video0/brightness
15
你必须使用这个,亮度范围可以从0-9或0-15,我相信这最终取决于你的笔记本电脑。
这些都不起作用吗?
如果这两个选项都不满足您的需求,请查看 ArchLinux Wiki 的主题:背光。那篇文章包含了我见过的实现这一目标的所有方法!