Faites de votre touche de verrouillage une touche de lecture / pause
Cette solution remappera le scancode de votre clé capslock à un code clé différent dans le pilote d'entrée du noyau, dans ce cas, lecture / pause.
Les avantages
- Pas besoin de modifier les fichiers système existants (un seul nouveau fichier doit être créé)
- Les applications ne sauront pas qu'il s'agit en fait d'une touche de verrouillage, mais pensent qu'une vraie touche de lecture / pause a été enfoncée
- Pas besoin de désactiver le verrouillage des majuscules, pas de possibilité de gâcher la
xkb
configuration
Désavantages
- Doit être fait pour chaque clavier individuellement (ce qui, selon la situation, peut également être un avantage)
Conditions préalables
- 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+ Cet essayez un autre appareil. N'oubliez pas le numéro d'événement de l'appareil que vous avez sélectionné, nous en aurons besoin par la suite. Appuyez sur la touche de verrouillage. Certaines lignes comme les suivantes 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 MSC_SCAN
ligne précédant la KEY_CAPSLOCK
ligne. Dans l'exemple ci-dessus, ce serait 70039, mais le scancode de votre clavier est probablement différent.
Exécutez maintenant la commande suivante, mais remplacez le X par le numéro d'événement de périphérique que vous avez utilisé pour la evtest
commande:
grep "" /sys/class/input/eventX/device/id/*
... cela produira 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], [fournisseur], [produit] et [version] ont exactement 4 caractères et les lettres doivent être majuscules
- [scancode] doit être en minuscules
- la
evdev:...
ligne n'a pas d'espace précédent
- la
KEYBOARD_KEY...
ligne 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 annuler 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.
vlc --key-play-pause <key-string>
, mais je n'ai pas trouvé de chaîne que VLC accepte comme capslock ...