Faites de votre touche verrouillage majuscule une touche lecture/pause
Cette solution va remapper le scancode de votre touche verrouillage majuscule vers un autre code de touche dans le pilote d'entrée du noyau, dans ce cas lecture/pause.
Avantages
- Pas besoin de modifier les fichiers système existants (seul un nouveau fichier doit être créé)
- Les applications ne sauront pas qu'il s'agit en réalité d'une touche verrouillage majuscule mais penseront qu'une vraie touche lecture/pause a été pressée
- Pas besoin de désactiver la touche verrouillage majuscule, aucune possibilité de perturber la configuration
xkb
Inconvénients
- Doit être fait pour chaque clavier individuellement (ce qui, selon la situation, peut aussi être un avantage)
Prérequis
- evtest (peut être installé via
sudo apt-get install evtest
)
Procédure
Dans un terminal, exécutez sudo evtest
et sélectionnez votre clavier. S'il n'y a pas de sortie lorsque vous appuyez sur une touche, appuyez sur Ctrl+C et essayez un autre périphérique. Souvenez-vous du numéro d'événement du périphérique que vous avez sélectionné, nous en aurons besoin par la suite. Appuyez sur la touche verrouillage majuscule. Quelques lignes comme celles-ci apparaîtront:
Event: time 1529406021.187148, -------------- SYN_REPORT ------------
Event: time 1529406021.218427, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70039
Event: time 1529406021.218427, type 1 (EV_KEY), code 58 (KEY_CAPSLOCK), value 0
Nous avons besoin de la valeur de la ligne MSC_SCAN
précédant la ligne KEY_CAPSLOCK
. Dans l'exemple ci-dessus, il s'agirait de 70039, mais le code scancode sur votre clavier est probablement différent.
Exécutez maintenant la commande suivante, en remplaçant le X par le numéro d'événement du périphérique que vous avez utilisé pour la commande evtest
:
grep "" /sys/class/input/eventX/device/id/*
...cela affichera le bustype
, product
, vendor
et version
du clavier.
Créez un fichier nommé 65-keyboard-custom.hwdb
dans /etc/udev/hwdb.d/
(autorisations root requises) avec le contenu suivant:
evdev:input:b[bustype]v[vendor]p[product]e[version]*
KEYBOARD_KEY_[scancode]=playpause
...où
- [bus], [vendor], [product] et [version] ont exactement 4 caractères et les lettres doivent être en majuscules
- [scancode] doit être en minuscules
- la ligne
evdev:...
n'a pas d'espace précédent
- la ligne
KEYBOARD_KEY...
a exactement un espace précédent
Par exemple:
evdev:input:b0003v046DpC228e0110*
KEYBOARD_KEY_70039=playpause
Enfin, compilez la nouvelle configuration dans la base de données matérielle:
sudo systemd-hwdb update
Si vous souhaitez appliquer les modifications immédiatement, informez udev:
sudo udevadm trigger
Si vous souhaitez rétablir les modifications, supprimez simplement le fichier que vous avez créé et redémarrez.
Vous pouvez trouver des informations plus détaillées dans ma réponse originale sur ce sujet.