J'essaie de réutiliser la clé de verrouillage Caps inutile pour quelque chose d'utile sur 16.04 MATE. J'ai rencontré
setxkbmap -option ctrl:nocaps
pour le désactiver, mais pourrait-il être remappé pour lire / mettre en pause VLC par exemple? Merci pour vos réponses!
vlc --key-play-pause <key-string>
, mais je n'ai pas trouvé de chaîne que VLC accepte comme capslock ...dconf-editor
essayé quelques choses, installéxdotool
essayé quelques choses et enfinxbindkeys
et essayé quelques choses. À la fin de cet exercice infructueux, mon bouton de pause / lecture du clavier était cassé ET mon propre bouton de lecture / pause de l'écran était grisé et la musique ne jouait pas. J'ai fait cela en 16.04, donc j'ai redémarré en 18.04 pour confirmer que tout fonctionne toujours et ce sont les hacks logiciels qui l'ont fait. La seule grâce qui sauve est que je ne joue de la musique que sur un téléphone Android et non sur un PC. Juste un avertissement pour que les autres fassent attention et documentent mieux que moi ce que vous faites à votre machine.Réponses:
evtest et dbus
Voici une version impliquant un petit script exécuté en arrière-plan. Quelques étapes simples doivent être prises:
Installez le evtest programme:
sudo apt install evtest
. Ce programme est capable de décoder et d'imprimer des événements bruts à partir de la/dev/input/
hiérarchie des appareils.Ajoutez votre compte d'utilisateur au groupe
input
. Déconnectez-vous et reconnectez-vous. (Cela est nécessaire car nous allons lire à partir d'un périphérique sous/dev/input/
, qui ne peut normalement être effectué que par root ou les utilisateurs du groupeinput
. Nous pourrions exécuter le script en tant que root, mais nous devrons alors trouver un moyen de lui dire quel utilisateur instance dbus avec laquelle il doit parler.)Désactivez la touche de verrouillage comme vous l'avez fait ou utilisez la préférence de contrainte correspondante. Cela fonctionnerait également si vous mappiez la touche de verrouillage des majuscules à ctrl, comme beaucoup de gens le font.
Stockez le script suivant quelque part, par exemple
$HOME/bin/capshack
et rendez-le exécutable:Le script ci-dessus écoutera les événements de votre clavier et exécutera une commande lorsque vous appuyez sur la touche de verrouillage des majuscules. La commande exécutée utilise dbus pour envoyer un événement de lecture / pause à une instance VLC en cours d'exécution. Vous devrez peut-être modifier la
KEYBOARD
variable pour pointer vers votre clavier réel, mais il est probable que la valeur ci-dessus fonctionnera.Si vous préférez que la fonction toggleVLC () soit appelée lorsque vous relâchez la touche de verrouillage, vous pouvez modifier la
EVENT
variable dans le script de sorte qu'elle se termine parvalue 0
au lieu devalue 1
.En outre, il est possible que pour vous le code de touche de la touche de verrouillage soit différent de 58. Vous pouvez le vérifier en exécutant
evtest
, regardez la sortie lorsque vous appuyez sur le verrouillage et ajustez la variable EVENT en conséquence. Vous n'avez même pas besoin de faire correspondre le code clé et de définir simplement ÉVÉNEMENT sur(KEY_CAPSLOCK), value 1
.Au lieu d'utiliser le script evtest et ci-dessus, vous pouvez utiliser thd du package triggerhappy (quelque chose comme
thd --dump /dev/input/*
donnerait une sortie similaire) mais j'ai trouvé cela un peu moins éducatif.Maintenant, nous créons une unité utilisateur systemd pour démarrer le script automatiquement en arrière-plan:
Créez la hiérarchie utilisateur systemd:
mkdir -p $HOME/.config/systemd/user
Ajoutez le texte suivant au fichier
$HOME/.config/systemd/user/capshack.service
Activez l'unité de service que vous venez de créer:
systemctl --user enable capshack
Démarrez le service:
systemctl --user start capshack
À partir de maintenant, vous devriez pouvoir basculer la lecture / pause dans VLC en utilisant la touche capslock. Le script d'arrière-plan doit être démarré automatiquement lorsque vous vous connectez.
triggerhappy
Comme déjà mentionné, vous pouvez également utiliser le package triggerhappy pour ce faire. C'est la méthode préférée pour les personnes qui veulent moins jouer avec le système et plutôt comme une solution plus solide.
Ajouter un utilisateur au
input
groupe comme ci-dessusInstallez le package:
sudo apt install triggerhappy
Ajoutez une configuration pour triggerhappy à
~/.config/thd/capslock.conf
:Exécutez thd comme ceci:
thd --triggers ~/.config/thd/capslock.conf /dev/input/event*
Faites fonctionner thd pour votre utilisateur d'une manière similaire à celle déjà décrite pour capshack.
Assurez-vous que vous n'avez qu'une des méthodes mentionnées (capshack ou thd) en cours d'exécution, pour ne pas basculer deux fois sur chaque touche.
J'ai testé tout cela le 18.04 sous la session standard et 16.04 mate. Mais il devrait théoriquement également fonctionner sous wayland ou avec d'autres environnements de bureau.
la source
[[ test ]] && \
et la deuxième ligne à quatre espaces en retrait avec<command>
un test positif. Je suis entièrement d'accord sur la lisibilité car ma recommandation est étrangère à la plupart des langages de programmation.triggerhappy
devrait être la voie à suivre, car ilevtest
s'agit en fait d'un programme de débogage :)m
, donc ce script ne fonctionne pas. Je recommande de vérifierxmodmap -pke | grep Caps_Lock
avant d'utiliser ce script pour vous assurer que le code clé est correct.Dans Ubuntu 16.04 après avoir passé des heures à googler et à jouer avec
dconf-editor
etxbindkeys
j'ai trouvé une solution extrêmement simple:Si vous avez besoin du
XF86AudioPlay
support Gnome dont vous avez besoinxdotool
(pas nécessaire pour VLC comme le stipule OP):Voici maintenant la partie délicate. Chaque fois que vous appuyez sur la Caps LocKtouche pour basculer la musique entre Lecture et Pause, les lettres majuscules basculent également en marche et en arrêt.
Utilisez cette méthode pour désactiver le basculement du verrouillage des majuscules tout en maintenant la touche active:
Lecteurs de musique qui adhèrent à Gnome
Ensuite, dans Ubuntu 16.04, accédez à Paramètres >> Clavier >> Raccourcis >> Raccourcis personnalisés :
Audio Play
xdotool key XF86AudioPlay
Après avoir ajouté la nouvelle option, la touche de raccourci affectée indique Désactivé . Cliquez sur Désactivé et lorsque vous êtes invité à attribuer une Caps LocKclé, appuyez sur la touche.
Des lecteurs de musique comme VLC
Suivez les étapes pour Gnome dans la section précédente mais pour la commande utilisez plutôt ceci:
VLC ne reconnaîtra pas les touches multimédias: comment faire fonctionner les touches multimédias du clavier avec VLC globalement? même lorsqu'il est intégré au clavier. Par conséquent, le raccourci clavier personnalisé vers XF86AudioPlay est inutile avec
xdotool
.Définition de raccourcis clavier personnalisés à partir de la ligne de commande
Ce Q&R explique comment définir des raccourcis clavier personnalisés à partir de la ligne de commande: Comment définir des raccourcis clavier personnalisés à partir du terminal?
Désactiver le verrouillage des majuscules en permanence
La prochaine étape consiste à rendre cela
setxkbmap -option caps:none
persistant à travers les redémarrages. Google recherche les résultats dans cette réponse de Terdon: Enregistrer les paramètres setxkbdmap :Un moyen simple serait d'ajouter la commande à votre
$HOME/.profile
fichier (vous pouvez la créer si elle n'existe pas):Cela devrait le faire fonctionner à chaque fois que vous vous connectez.
Notez que vous devez utiliser
$HOME/.profile
plutôt que$HOME/.bash_profile
,$HOME/.bashrc
ou un autre fichier similaire. En effet, ce paramètre doit être lu par votre gestionnaire de connexion.la source
setxkbmap -option caps:none
. Le programme utilitaire est installé mais Wayland continue de basculer entre les majuscules et les minuscules. Vous pouvez poster une question distincte sur la manière de faire respecter Waylandsetxkbmap
.Cette réponse a été testée sur Ubuntu MATE 16.04.4 LTS dans une machine virtuelle (mais le clavier était un clavier USB en mode passthrough, donc cela ne devrait pas faire de différence). Il ne nécessite également aucun logiciel supplémentaire et peut être effectué sur une installation vanilla sans installer de packages, et il est persistant entre les démarrages.
Remap Lock Caps
Modifiez le fichier en
/usr/share/X11/xkb/symbols/pc
tant que root. Faites attention à ne pas vous tromper ici (comme oublier la virgule) car vous ne pourrez peut-être plus utiliser votre clavier si vous le faites. (Devinez ce que j'ai appris à la dure?;)Commentez la ligne
en plaçant deux barres obliques (
//
) au début de celle-ci.Ajoutez en dessous la ligne suivante:
Commentez la ligne
de la même manière que ci-dessus.
Redémarrez.
Remarque: (crédit à danzel pour l'avoir signalé) Les mises à jour du package
xkb-data
peuvent remplacer ce fichier. Une méthode raisonnablement sûre pour empêcher cela consiste à détourner le chemin à l'aide dedpkg-divert
. (Je dis "raisonnablement sûr" car la source en amont de ce fichier n'a pas été modifiée depuis trois ans.)Méthode alternative
Désactivez manuellement votre touche de verrouillage des majuscules dans les paramètres de disposition de votre clavier, puis utilisez l'approche de cette réponse pour ajouter vos propres remappages de touches.
Problèmes?
Votre touche de verrouillage des majuscules ne verrouille plus les majuscules et elle a été remappée en lecture / pause à ce stade. Vous devriez pouvoir lire et mettre en pause la musique dans VLC maintenant. Si cela fonctionne à ce stade, vous pouvez ignorer le reste de ces instructions.
Cependant, lorsque je l'ai essayé, VLC n'a pas répondu à la touche Lecture / Pause.
Assurez-vous que le raccourci clavier est correctement défini
Ouvrir les raccourcis clavier (Système → Préférences → Matériel → Raccourcis clavier)
Assurez-vous que "Lecture (ou Lecture / Pause)" est réglé sur "XF86AudioPlay"
Si ce n'est pas le cas, cliquez sur la section "Raccourci" et appuyez sur votre nouvelle touche Lecture / Pause pour définir le raccourci.
Si cela ne fonctionne toujours pas, redémarrez plusieurs fois pour faire bonne mesure. (C'est en fait ce qui l'a corrigé pour moi.)
la source
xkb
options, en particuliercaps:...
celles. En outre, il pourrait être remplacé par des mises à jour du système.Installez
xbindkeys
, xcape et playerctl . Assurez-vous quexcape
(mappageCapsLock
sur une clé de rechange commeAlt+F12
parxcape -e 'Caps_Lock=Alt_L|F12
) etplayerctl
sont démarrés automatiquement à la connexion, et ajoutez au fichier~/.xbindkeysrc
les deux lignesla source
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
xkb
configurationDésavantages
Conditions préalables
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:Nous avons besoin de la valeur de la
MSC_SCAN
ligne précédant laKEY_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:... cela produira
bustype
,product
,vendor
etversion
du clavier.Créez un fichier nommé
65-keyboard-custom.hwdb
dans/etc/udev/hwdb.d/
(autorisations root requises) avec le contenu suivant:...où
evdev:...
ligne n'a pas d'espace précédentKEYBOARD_KEY...
ligne a exactement un espace précédentPar exemple:
Enfin, compilez la nouvelle configuration dans la base de données matérielle:
Si vous souhaitez appliquer les modifications immédiatement, informez udev:
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.
la source
Peut-être en utilisant
xbindkeys
ouXTE
vous pourriez le faire. Mais assurez-vous d'abord de ce que sont les codes clés, vous pouvez voir le code de la touche capslock en utilisant la commandexev
dans le terminal et en appuyant dessus ( vous pouvez voir le code clé de n'importe quel keu ou bouton de souris, y compris les souris de jeu). Avec le verrouillage des touches et le code clé des boutons de lecture à la main, vous pouvez modifier le fichier confi xbindkeys et y mettre vos modifications. utilisertouch ~/.xbindkeysrc
pour créer le fichier de configuration (si le système ne le crée pas automatiquement) etnano ~/.xbindkeysrc
pour le modifier. Je l'ai utilisé le mois dernier et ici c'est un exemple. jetez un œil à ces liens qui pourraient vous être très utiles.https://help.ubuntu.com/community/MultimediaKeys
https://gist.github.com/jbonney/5743509
Remapper un bouton de ma souris de jeu sur une touche du clavier
https://matmunn.me/post/binding-volume-control-mouse-buttons-ubuntu/
la source