Как предотвратить включение подсветки клавиатуры при выходе ноутбука из спящего режима?
У меня есть 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, и он работает при пробуждении системы.
Вам не нужно перезапускать систему