1. Są to znaczniki klawiatury zależne od tty; każda WK ma swój
NumLock, CapsLock i ScrollLock. Domyślnie te znaczniki pokazywane są
przez diody. Zwykłym sposobem ich zmiany jest naciśnięcie odpowiedniego
klawisza (uwaga uboczna: naciśnięcie klawisza NumLock w trybie klawiszy
aplikacji nie zmieni stanu NumLock, ale wypisze Esc-sekwencję. Jeśli
chcesz żeby klawisz NumLock zawsze zmieniał stan NumLock, przypisz go
do Bare_Num_Lock).
2. Następnie, na każde tty istnieją domyślne znaczniki klawiatury,
aby zinicjalizować je gdy nastąpi przekasowanie. Tak więc jeśli chcesz
żeby NumLock był cały czas włączony, jest to możliwe. Zwykle zmienić
to można przez setleds -D.
3. Istnieje możliwość że diody nie oddają stanu znaczników klawiatury, ale coś innego.
3A. To coś innego może być jakimiś trzema bitami gdzieś w jądrze -
co można wykorzystać jeżeli chcesz pilnować bitów stanu jakiegoś
sprzętu czy programu. Jeśli chcesz tego, zmodyfikuj źródło jądra
aby wywoływało gdzieś register_leds()/
3B. To coś innego może być też czymkolwiek co jakiś program chce pokazać za pomocą diod. Tak więc osoby które lubią takie rzeczy mogą ułożyć ze światełek ładne wzorki. Jeśli chcesz tego, użyj ioctl KBSETLED.
To drugi sposób nie jest "na tty", ale wybór pomiędzy pierwszym a drugim sposobem jest.
Podsumowując: każde tty ma znacznik kbd -> ledmode. Jeśli ma
on wartość LED_SHOW_FLAGS, wtdy pokazane są znaczniki klawiatury (NumLock
itd.) konkretnego tty. Jeśli ma on wartość LED_SHOW_IOCTL, wtedy
diody pokazują każdą wartość którą ostatnio im przypisano za pomocą
ioctl KBSETLED.
Dodać można że X używa ioctl-ów aby ustawić diody, ale nie
kasuje swojej WK przy wyjściu, tak więc po używaniu X istnieć
może jedna WK która nie jest w domyślnym stanie LED_SHOW_FLAGS. Można
to naprawić wykonując setleds -L na tej WK. Patrz setleds(1).