Il s'agit d'un bogue Debian de longue date. Cela semble être lié à un bogue sous-jacent du noyau qui a été corrigé depuis longtemps. Le problème semble avoir été que Caps_Lock ne fonctionnait pas pour les caractères non-ASCII, la solution de contournement consistait donc à mapper Shift_Lock ou CtrlL_Lock à la place de la touche de verrouillage des majuscules.
Du côté de Debian, le problème est créé par ckbcomp qui est utilisé par console-setup pour créer le keymap de la console à partir de la description du clavier XKB. Notez que le code original référencé dans le rapport de bogue en utilisant Shift_Lock semble avoir été remplacé par un code différent qui bascule pour CtrlL_Lock Au lieu. Si vous êtes intéressé, vous pouvez rechercher les utilisations du broken_caps variable dans le ckbcomp Script Perl.
Je n'ai aucune idée si le code est toujours nécessaire pour une raison quelconque, cela vaut peut-être la peine de supprimer le rapport de bogue. Cependant, la solution consiste à mettre la ligne suivante dans /etc/kbd/remap et cela devrait être corrigé après un redémarrage :
s/CtrlL_Lock/Caps_Lock/
Ou pour un correctif temporaire jusqu'au prochain redémarrage, exécutez ce qui suit dans un tty séance :
dumpkeys | sed s/CtrlL_Lock/Caps_Lock/ | sudo loadkeys
Mettre à jour
Il semble que /etc/kbd/remap n'est réellement utilisé que si setupcon n'est pas disponible. Une meilleure solution consiste simplement à mettre la ligne suivante dans /etc/rc.local :
dumpkeys | sed s/CtrlL_Lock/Caps_Lock/ | loadkeys
J'ai trouvé des solutions pour Debian 6 et Debian 7.
Debian 6
Mettez ce qui suit à la fin du /etc/console-setup/remap.inc fichier :
keycode 58 = Caps_Lock
Ensuite, exécutez setupcon
Debian 7
Mettez ce qui suit à la fin du /etc/default/keyboard script :
dumpkeys | sed -e "s/keycode 58 = CtrlL_Lock/keycode 58 = Caps_Lock/" | \
loadkeys 2>&1 >/dev/null
Ensuite, exécutez setupcon
Notez qu'il y a deux espaces entre le keycode et 58. La redirection vers /dev/null supprime simplement la sortie gênante de la console.