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.