Как предотвратить включение подсветки клавиатуры при выходе ноутбука из спящего режима?

У меня есть Thinkpad 470, и я использую Ubuntu 16.04 LTS. Я не люблю держать подсветку клавиатуры в дневное время, потому что хочу экономить заряд батареи среди прочего. Что я заметил, так это то, что подсветка включается, даже если она проснулась из состояния, когда экран был полностью затемнен, или система ушла из-за неактивности. Проблема в том, что в дневное время или при ярком освещении я не вижу, включена ли подсветка, поэтому я не выключаю ее, и это разряжает батарею. Я хочу иметь возможность контролировать этот параметр. Как мне это сделать?

После поиска немного в следующем месте:

/sys/class/leds/tpacpi::kbd_backlight

Я нашел следующие файлы:

rgh@arrakis:/sys/class/leds/tpacpi::kbd_backlight$ ls
brightness  brightness_hw_changed  device  max_brightness  
power  subsystem  trigger  uevent

Из них триггер файла содержит следующие элементы:

[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

Я думаю, что-то здесь должно быть удалено, чтобы получить поведение, которое я ищу? Можете ли вы сказать мне, если я прав? Как это сделать?

2 ответа

С этого поста Reddit у OP была противоположная проблема с постоянно выключенными лампами при возобновлении работы из режима ожидания.

Вы можете следовать тому же подходу, но изменить 1 (на) к 0 (В выключенном состоянии).

Найти папку /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

У меня нет Thinkpad, а моя клавиатура с подсветкой Dell имеет другую структуру каталогов. Я не могу проверить это для вашей среды. Возможно, вам придется вручную настроить код, если указанные выше имена каталогов отключены.

Не забудьте перезагрузить компьютер перед тестированием приостановить / возобновить.

Попробуйте с:

sudo apt-get install pm-utils

Создать скрипт в /usr/lib/pm-utils/sleep.d

sudo nano /usr/lib/pm-utils/sleep.d/KB_BACK_OFF.sh

Скопируйте и вставьте следующее:

#!/bin/sh

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

exit 0

Сделайте исполняемый скрипт:

sudo chmod a+x /usr/lib/pm-utils/sleep.d/KB_BACK_OFF.sh

Если команда в сценарии выключения xset не работает, попробуйте заменить ее командой xset -led (YOUR NUMBER) с числом от 1 до 32. Пример: xset -led 3

Я лично пытался запустить скрипт для другой цели на Kubuntu 18.04, и он работает при пробуждении системы.

Вам не нужно перезапускать систему

Другие вопросы по тегам