Toto je dlouhodobá chyba Debianu. Zdá se, že to souvisí se základní chybou jádra, která byla dávno opravena. Zdá se, že problém byl v tom, že Caps_Lock nefungovalo pro znaky jiné než ASCII, takže řešením bylo namapovat Shift_Lock nebo CtrlL_Lock místo toho na klávesu Caps Lock.
Na straně Debianu je problém způsoben ckbcomp který používá console-setup pro vytvoření mapy kláves konzoly z popisu klávesnice XKB. Všimněte si, že původní kód odkazovaný v hlášení o chybě pomocí Shift_Lock Zdá se, že byl nahrazen jiným kódem, který se přepne na CtrlL_Lock namísto. Pokud máte zájem, můžete vyhledat použití broken_caps proměnná v ckbcomp Perl skript.
Nemám ponětí, zda je kód z nějakého důvodu stále nezbytný, možná stojí za to upozornit na hlášení o chybě. Řešením je však umístit následující řádek do /etc/kbd/remap a mělo by to být opraveno po restartu:
s/CtrlL_Lock/Caps_Lock/
Nebo pro dočasnou opravu do příštího restartu spusťte následující v tty relace:
dumpkeys | sed s/CtrlL_Lock/Caps_Lock/ | sudo loadkeys
Aktualizovat
Zdá se, že /etc/kbd/remap se ve skutečnosti používá pouze v případě, že setupcon není k dispozici. Lepším řešením je vložit následující řádek do /etc/rc.local :
dumpkeys | sed s/CtrlL_Lock/Caps_Lock/ | loadkeys
Našel jsem řešení pro Debian 6 a Debian 7.
Debian 6
Na konec /etc/console-setup/remap.inc vložte následující soubor:
keycode 58 = Caps_Lock
Poté spusťte setupcon
Debian 7
Na konec /etc/default/keyboard vložte následující skript:
dumpkeys | sed -e "s/keycode 58 = CtrlL_Lock/keycode 58 = Caps_Lock/" | \
loadkeys 2>&1 >/dev/null
Poté spusťte setupcon
Všimněte si, že mezi kódem klíče a 58 jsou dvě mezery. Přesměrování na /dev/null jen potlačí nepříjemný výstup konzole.