276 votes

Comment remapper certaines touches ou certains dispositifs ?

Je cherche un moyen de remapper certaines touches dans ubuntu.

c'est-à-dire

J'aimerais changer PgUp a Home o PgDown a End .

Existe-t-il une commande intégrée ou un outil pour réassigner les clés dans Ubuntu/GNOME ?

3voto

Sid Points 4148

J'ai passé une journée entière à essayer de créer un raccourci pour Ctrl+Pageup .

J'ai d'abord essayé xmodmap mais qui ne peut pas générer d'événements modificateurs. Il est donc impossible de créer un raccourci qui génère, par exemple, l'évènement Control événement.

J'ai ensuite essayé xbindkeys con xmacro . Ça marche un peu, mais xbindkeys n'est pas capable de capturer certaines combinaisons de touches sur mon système, telles que Alt + ___ .

J'ai donc finalement utilisé les raccourcis clavier d'Unity -> Raccourcis personnalisés pour configurer mon raccourci.

Et au lieu de xmacro J'ai maintenant utilisé xvkbd pour générer les événements clavier, mais c'est juste une préférence personnelle. Les deux sites xmacro y xvkbd fonctionnent presque de la même manière. Une astuce supplémentaire est d'ajouter un paramètre de délai dans xmacro o xvkbd pour s'assurer que les événements ne se perdent pas.

3voto

勿绮语 Points 8744

Pour moi, c'est AutoKey du Software Center qui a le mieux fonctionné. Il a une interface graphique intuitive, pour ajouter une nouvelle liaison cliquez sur Nouveau -> Phrase et

  1. Ajouter un nom, cliquer sur OK
  2. Dans la section "Paramètres de la phrase", assurez-vous que le mode de collage est défini sur le clavier.
  3. Ajouter la touche de raccourci que vous voulez utiliser
  4. Ajouter une commande dans le champ de texte, par exemple pour émuler la touche flèche gauche - ce serait <left> (la liste des clés spéciales est aquí ).

3voto

sezanzeb Points 200

Vous pouvez également essayer https://github.com/sezanzeb/input-remapper

Il s'exécute en arrière-plan et injecte activement des codes-clés mappés.


Bien que cela ajoute une certaine flexibilité supplémentaire, si tout ce dont vous avez besoin est de remapper un seul bouton et d'avoir terminé, vous pouvez essayer d'utiliser xmodmap. On dirait que cela a déjà été expliqué en détail.

Vous pouvez aussi écrire un fichier xkb "symbols" et utiliser setxkbmap, mais je ne le recommande pas. setxkbmap peut aussi être utilisé sur une base par appareil.

L'écriture de configurations xkb ou xmodmap m'a cependant causé des problèmes si les deux appareils rapportent le même code de touche, même si la configuration les fait correspondre à des caractères différents, lorsqu'ils sont pressés simultanément (c'est la raison principale pour laquelle j'ai dû écrire l'outil d'injection pour cela).

Et récemment, je suis tombé sur cette solution : https://www.reddit.com/r/linux_gaming/comments/k3h9qv/remapping_keys_using_hwdb_files/

1voto

Vladimir Panteleev Points 1019

Si vous avez besoin de remapper une touche pour un programme spécifique seulement, j'ai juste ajouté cette fonctionnalité à hax11.

J'aimerais changer PgUp a Home o PgDown a End .

Pour faire cela avec hax11, ouvrez le fichier de configuration du profil du programme sous ~/.config/hax11/profiles (par exemple ~/.config/hax11/profiles/usr\lib\firefox\firefox ), et ajoutez :

Enable=1
MapK112=K110
MapK117=K115

1voto

Pau Coma Ramirez Points 202

Remplacement non persistant par un raccourci sur le bureau.

Dans mon cas, je voulais transformer le point décimal du clavier en virgule, mais seulement de façon temporaire. xmodmap satisfait à cette exigence dans mon cas

  • Découvrez ce qu'est le code clé pour la clé spécifique à remapper et le keysym Je veux aussi faire une carte.

    • :~$ xev | grep keycode
  • Appuyez sur les touches qui vous intéressent et surveillez la sortie de données.

    state 0x10, keycode 91 (keysym 0xffae, KP_Decimal), same_screen YES,
    XKeysymToKeycode returns keycode: 129
    state 0x10, keycode 59 (keysym 0x2c, comma), same_screen YES,
  • J'ai d'abord appuyé sur la touche que je veux remapper et j'ai ensuite appuyé sur la touche vers laquelle je veux m'orienter.

    • Code de la clé que je veux remapper : ..., keycode 91 (...
    • Le clavier auquel je veux que le code clé corresponde : ...(keysym 0x2c, comma),...
  • Découvrez quel est le mappage actuel pour le code clé à remapper :

    • :~$ xmodmap -pke | grep "keycode\s*91"

    keycode 91 = KP_Delete KP_Decimal KP_Delete KP_Decimal

Comme spécifié dans la page de manuel de xmodmap : Jusqu'à huit keysyms peuvent être attachés à une clé : 1er keysym est utilisé lorsque pas de touche modificatrice, 2ème con Shift etc... Cela ne correspond pas exactement à ce qui se passait dans mon cas, mais des essais et des erreurs m'ont permis de découvrir que le deuxième argument positionnel était celui que je recherchais.

  • Mettez en correspondance avec la nouvelle configuration.

    • :~$ xmodmap -e "keycode 91 = KP_Delete comma KP_Delete KP_Decimal"
  • Retour à la configuration d'origine.

    • :~$ xmodmap -e "keycode 91 = KP_Delete KP_Decimal KP_Delete KP_Decimal"
  • J'ai créé un couple .desktop raccourcis dans ~\.local\share\applications\ pour passer facilement à l'une ou l'autre configuration :

    [Desktop Entry] Name=KeyPad comma Exec=xmodmap -e "keycode 91 = KP_Delete comma KP_Delete KP_Decimal" Terminal=false Type=Application Icon=/home/paui/.icons/KP_comma.png

Informations supplémentaires : champ d'état sortie de xev ,

Le champ d'état est la "somme" des modificateurs actifs actuels. Ce sont ceux que j'ai déchiffrés.

    0x01 Shift
    0x02 Caps
    0x04 Control
    0x08 Alt
    0x10 NumLock
    0x80 Alt Gr

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X