在运行 Arch 的 ThinkPad T440s 上设置启动时的背光亮度

在运行 Arch 的 ThinkPad T440s 上设置启动时的背光亮度

我最近买了一台新的联想 ThinkPad T440s 笔记本电脑,并在其上安装了 Arch Linux。大多数东西开箱即用。除了几个小问题外,还有一个小问题是背光亮度。

我可以通过 Fn+F5 和 Fn+F6 调整亮度,但重启后亮度又恢复到 100%。一段时间后,这会开始让你的眼睛感到刺痛,所以我手动将其降低到大约 50% 到 60%。我能以某种方式自动执行此操作,同时保留 Fn 键功能吗?ArchWiki 中的 wiki 文章讨论了使用 systemd、udev 或 acpid,但没有具体说明优点、缺点,甚至如何操作。哪种方法才是最佳选择?

编辑1 06.09.14:我使用 GNOME3 作为 DE

问候悖论

答案1

您可以使用 xrandr,即使连接了多个显示器,它也能很好地工作。我不知道您使用哪种桌面环境,所以我无法具体说明。以下是启动后可以使用的脚本:

#!/bin/bash

YOUR_BRIGHTNESS_PREFERENCE=0.6
for DISP in `xrandr -q | grep " connected" | cut -d ' ' -f1`; do
  xrandr --output "$DISP" --brightness "$YOUR_BRIGHTNESS_PREFERENCE"
done

它将所有连接显示器的背光亮度更改为 60%。

答案2

我想到了一个解决方法...好吧,这更像是一种黑客解决方法:P

我创建了一个 systemd 服务,它会触发一个脚本,在启动时设置一次亮度级别。从技术上讲,服务 systemd-backlight@backlight:intel_backlight 应该负责在关机/启动时保存和设置背光级别,但目前这似乎有问题。根据最近的一些 archlinux 论坛帖子,处理此问题的内核代码中发生了相当多的黑客行为。

这是我创建的两个文件

/usr/lib/systemd/scripts/set_brithness (记得使用以下命令使它可执行chmod 750

#!/bin/bash

echo "250" > /sys/class/backlight/intel_backlight/brightness

在/usr/lib/systemd/system/set_brithness

[Unit]
Description= Set brightness to a reasonable level on start-up, since systemd backlight@backlicht:intel_backlight is broken for the moment.

[Service]
Type=oneshot
ExecStart=/usr/lib/systemd/scripts/set_brightness

[Install]
WantedBy=multi-user.target

我已经通过简单的重启测试过它,但不知道它在休眠/挂起时的表现如何。另外,这是一个小故障,Gonme 设置不会跟踪此更改。如果您打开监视器配置,它会将亮度设置为它知道的最后一个值。功能键也是如此。但我现在可以忍受这一点。我还会带着这个去 Arch 论坛,进一步调查这个问题,也许会提交一个错误。

相关内容