Au risque d'exprimer mon opinion personnelle et de sortir de la masse, je tiens à profiter de ce billet pour exprimer ma haine envers la touche CAPS_LOCK. Combien de fois vous êtes vous fait avoir à taper un texte avec ce modifieur, et à ne pas pouvoir le repasser en lower-case ?
Certes, si l'on utilise un éditeur de texte tel Word, Kate, Notepad++ ou autres, des raccourcis existent (respectivement ctrl+F3 et ctrl-U), mais dans la plupart des cas on est bon pour retaper le texte. Horreur et damnation, la hantise de tout fainéant qui se respecte.

Sérieusement, qui se sert de cette touche, à part les Kikoolol qui aiment hurler leur incompétence sur tous les forums et autres skymerdes ?
Au pire, il faut marquer un mot en majuscule (pour le SQL par exemple), et la touche majuscule suffit amplement. Voyons donc comment désactiver ce reliquat inexpugnable des temps anciens...

Caps Lock : pas forcément tout le temps

Désactiver Caps Lock

Il existe un petit utilitaire fort sympathique sous Linux qui gère tous les modifieurs du clavier. Si vous travaillez sur des serveurs distants, vous le connaissez peut être : il s'agit de xmodmap.
Ouvrez un terminal et marquez xmodmap, vous devriez avoir quelque chose de ce genre qui s'affiche :

neamar@neamar-laptop:~$ xmodmap
xmodmap:  up to 2 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

Vous l'aurez compris, le but va être de supprimer la ligne lock Caps_Lock (0x42).
xmodmap permet, comme vous vous en doutez, de modifier ces mappings de touche. Il faut pour cela utiliser l'option -e suivie de la commande à exécuter. Je vous laisse vous reporter à man xmodmap pour plus de détails.

Exécutons donc la commande pour supprimer Caps Lock :

neamar@neamar-laptop:~$ xmodmap -e "remove Lock = Caps_Lock"

Et voilà ! Appuyez maintenant sur votre touche... miracle ! La petite LED ne s'allume plus, et vous continuez d'écrire comme une personne civilisée !

Désactiver Caps Lock définitivement

Fin de la tyrannie du Caps Lock ? Hélas, non ! Car le modifieur que nous venons de faire ne s'applique que pour cette section. Pour le rendre permanent, il va donc falloir l'exécuter en début de session.

Ici, chacun pourra utiliser la méthode qu'il souhaite. Personnellement, j'ai un faible pour le @REBOOT du crontab, c'est donc la méthode que je détaillerai ici.

Pour ceux qui ne le savent pas, crontab est un utilitaire pour planifier des tâches régulières ; par exemple la sauvegarde d'un dossier tous les jours à 18h, et à 12h les samedis et dimanche. Un outil puissant, qui peut aussi exécuter des scripts au reboot.
Pour commencer, tapez la commande suivante :

neamar@neamar-laptop:~$ crontab -e

Rajoutez le code suivant à l'intérieur du fichier :

#Désactiver cette saleté de caps lock dès le démarrage.
#La touche reste quand même active, elle n'a juste plus l'effet capitalize
@reboot xmodmap -e "remove Lock = Caps_Lock" >>/dev/null/

Un petit Ctrl-X, "O" pour enregistrer... et voilà ! Vérifiez que tout a bien été sauvegardé avec crontab -l, et cette fois c'en est fini de la touche maudite ! Supprimé, le Caps Lock, enfin !

Pour aller plus loin...

Comme précisé dans les commentaires, seul l'effet Lock est désactivé : la touche reste donc parfaitement viable. Vous pouvez par exemple vous en servir comme raccourci clavier (ça fait une touche gratuite), comme touche hôte pour une machine virtualisée...
Et si de temps en temps vous avez vraiment besoin d'un caps_lock, vous pouvez affecter une autre touche à l'effet Lock : faite juste attention à choisir une touche que vous n'enclencherez pas par erreur (il suffit de remplacer le remove par add) !

Caps Lock : libérez le démon