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.