Как выключить 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

На этом все.


Комментарии

Оставить комментарий

Ответ на Как выключить numlock при выключении компьютера