Как выключить numlock при выключении компьютера
Купил новый компьютер, заменил материнку: появилась новая фича/баг – после выключении питания продолжает гореть num lock на клавиатуре. Если был включен caps lock, то и он горит после выключения. В чем же дело!?
В современных блоках ATX помимо основного канала +5В имеется еще дополнительная подача +5В, так называемая «дежурка». Она необходима для реализации таких функций компьютера как включение по таймеру, сетевому вызову или сигналу с клавиатуры или мыши.
От материнской платы зависит из какого источника запитана клавиатура: от «дежурки» или основного канала. Если от «дежурки», то клавиатура выключаться не будет и индикаторы будут продолжать гореть.
Но что же делать, если раздражает зеленая подсветка потолка?
Существует консольная утилита setleds
, которая управляет индикаторами клавиатуры, т.е. включает или выключает заданный индикатор.
Напишем пару скриптов для включения и выключения индикаторов. KeyboardLeds-ON – для включения numlock:
#!/bin/bash
INITTY=/dev/tty[1-8]
for tty in $INITTY; do
/usr/bin/setleds -D +num < $tty
done
и KeyboardLeds-OFF – для выключения всех индикаторов
#!/bin/bash
INITTY=/dev/tty[1-8]
for tty in $INITTY; do
/usr/bin/setleds -D -num < $tty
/usr/bin/setleds -D -caps < $tty
/usr/bin/setleds -D -scroll < $tty
done
Скрипты поместим в /usr/local/bin.
Для автоматического запуска скриптов при включении и выключении компьютера создаем следующий service-файл для systemd:
[Unit]
Description=Keyboard leds
After=getty.target
Before=shutdown.target
Wants=getty.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/KeyboardLeds-ON
ExecStop=/usr/local/bin/KeyboardLeds-OFF
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
И сохраняем его под именем keyboard-leds.service в каталоге /etc/systemd/system/multi-user.target.wants.
Попросим systemd перечитать конфигурацию
systemctl --system daemon-reload
На этом все.