如何防止笔记本电脑从睡眠中唤醒时键盘背光打开?

Cha*_*ani 8 thinkpad keyboard-backlight 16.04

我有一个 Thinkpad 470,我在它上面运行 Ubuntu 16.04 LTS。我不喜欢在白天保持键盘背光,因为我想节省电池等。我注意到的是,即使从屏幕完全变暗或系统因不活动而进入睡眠状态唤醒,背光也会自动打开。问题是,在白天或在明亮的灯光下,我看不到背光灯亮着,因此我没有将其关闭,这会耗尽电池电量。我希望能够控制此设置。我该怎么做呢?

在以下位置搜索了一下后:

/sys/class/leds/tpacpi::kbd_backlight
Run Code Online (Sandbox Code Playgroud)

我找到了以下文件:

rgh@arrakis:/sys/class/leds/tpacpi::kbd_backlight$ ls
brightness  brightness_hw_changed  device  max_brightness  
power  subsystem  trigger  uevent
Run Code Online (Sandbox Code Playgroud)

其中,文件触发器内部包含以下项目:

[none] rfkill-any kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock 
kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock 
kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock AC-online 
BAT0-charging-or-full BAT0-charging BAT0-full 
BAT0-charging-blink-full-solid BAT1-charging-or-full 
BAT1-charging BAT1-full BAT1-charging-blink-full-solid usb-gadget 
usb-host disk-activity ide-disk mtd nand-disk cpu cpu0 cpu1 cpu2 cpu3 
panic bluetooth-power rfkill0 rfkill1 phy0rx phy0tx phy0assoc phy0radio 
hci0-power rfkill41
Run Code Online (Sandbox Code Playgroud)

我猜这里需要删除一些东西才能获得我正在寻找的行为?你能告诉我我是否正确吗?如何完成这项工作?

Win*_*nix 2

从这篇Reddit 帖子来看,OP 遇到了相反的问题,从挂起状态恢复时灯总是关闭。

您可以遵循相同的方法,但将1(on) 更改为0(off)。

找到该文件夹​​并使用以下内容/etc/systemd/system/sleep.target.wants/创建:kb_backlight_resume.service

[Unit]
Description=Switch on keyboard backlight after resume
After=suspend.target
After=hibernate.target
After=hybrid-sleep.target

[Service]
ExecStart=/bin/echo 0 > "/sys/devices/platform/thinkpad_acpi/leds/tpacpi::kbd_backlight/brightness"

[Install]
WantedBy=suspend.target
WantedBy=hibernate.target
WantedBy=hybrid-sleep.target
Run Code Online (Sandbox Code Playgroud)

我没有 Thinkpad,而且我的戴尔背光键盘具有不同的目录结构。我无法针对您的环境对此进行测试。如果上面的目录名称关闭,您可能需要手动调整代码。

不要忘记在测试挂起/恢复之前重新启动。


如果您的戴尔电脑没有/etc/systemd/system/sleep.target.wants/此功能,则可以启用它。例如参见:


Cla*_*gna 1

尝试使用:

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

在中创建一个脚本/usr/lib/pm-utils/sleep.d

sudo nano /usr/lib/pm-utils/sleep.d/KB_BACK_OFF.sh
Run Code Online (Sandbox Code Playgroud)

复制并粘贴以下内容:

#!/bin/sh

case "$1" in
       resume)
             xset led off
                ;;
esac

exit 0
Run Code Online (Sandbox Code Playgroud)

使脚本可执行:

sudo chmod a+x /usr/lib/pm-utils/sleep.d/KB_BACK_OFF.sh
Run Code Online (Sandbox Code Playgroud)

如果脚本xset led off中的命令不起作用,请尝试将其替换为命令xset -led (YOUR NUMBER)(包含 1 到 32 之间的数字)。示例: xset -led 3

我个人尝试在 Kubuntu 18.04 上出于其他目的运行该脚本,它可以在系统唤醒时运行。

您不需要重新启动系统