Question Comment reconfigurer certaines clés ou certains périphériques?


Je cherche un moyen de reconfigurer certaines clés dans Ubuntu.

c'est à dire.

Je voudrais changer PgUp à Accueil ou PgDown à Fin.

Une commande intégrée ou un outil existe-t-il pour réaffecter des clés dans Ubuntu / GNOME?


214
2018-02-05 13:20


origine


checkout ma réponse ici. Cela ne vaut pas la peine de copier et coller la même réponse. Peut-être que cela vous aiderait. - Rahul Virpara
Toutes les liaisons de type Emacs ici pour CTRL-P / N pour les étapes unitaires? - Léo Léopold Hertz 준영
Depuis quelque temps xmodmap est déprécié! pour obtenir un paramètre système que vous devez utiliser xkb. Donc, éditez le fichier de langue dans /usr/share/X11/xkb/symbols/ d'y ajouter vos modifications. Voir askubuntu.com/a/898462/34298 - rubo77


Réponses:


Remarquer: À partir de 2013, Ubuntu et ses dérivés ne sont plus utilisés xmodmap, mais utilisez plutôt xkb. Pour plus d'informations, voir cette réponse. La réponse ci-dessous n'est plus pertinente pour les versions actuelles.


Pour remapper certaines touches, vous avez besoin de deux outils. Premier xev (outil de ligne de commande) et deuxième xmodmap (également outil en ligne de commande). Les deux devraient être disponibles dans Ubuntu sans installation supplémentaire.

  1. Démarrer la fenêtre du terminal et exécuter xev. Maintenant, il est actif et attend que vous appuyiez sur une touche. Appuyez ensuite sur la touche dont vous souhaitez modifier le comportement. c'est à dire. PgUp.

  2. xev affichera des informations sur la touche enfoncée. La troisième ligne est importante. Il devrait ressembler à:

    state 0x10, keycode 110 (keysym 0xff55, Prior), same_screen YES,
    

    dans cet exemple Prior est le nom du comportement auquel la clé est affectée pour le moment, le code keycode est l'ID interne pour reconnaître la clé. Maintenant, faites cela avec une autre clé, c'est-à-dire PgDown donner cette sortie

    state 0x10, keycode 115 (keysym 0xff56, Next), same_screen YES,
    

    Ici encore, la partie intéressante pour nous est keycode 115 et Next - le nom du comportement.

  3. maintenant quand vous voulez échanger les deux clés utiliser xmodmap.

     xmodmap -e "keycode 110 = Next"
    

    Cela change la clé avec le code clé 110 sur votre clavier à l'action Next. C'est assez simple

    Notez que si la clé que vous mappez doit avoir une signification différente lorsqu'elle est utilisée avec la clé Décalage clé (par exemple pour les dispositions de clavier britanniques, Décalage+2 donne des guillemets) alors vous pouvez simplement lister la commande secondaire après la première. Par exemple, si vous souhaitez que la clé avec le code 53 soit associée à la barre oblique inverse, mais au symbole de la barre lorsqu'elle est utilisée avec shift, vous pouvez effectuer les opérations suivantes:

     xmodmap -e "keycode 53 = backslash bar"
    

Information additionnelle: La séquence de ces mappages est Clé, Maj + touche, mode_switch + clé, mode_switch + Maj + touche, AltGr + clé, AltGr + Maj + touche. Pour sauter une utilisation de colonne NoSymbol. De plus, ici est une liste complète de toutes les keysyms.

Remarque: Ces modifications concernent uniquement la session X active et seront perdues après le redémarrage. Lorsque vous souhaitez enregistrer les modifications de manière permanente, vous devez exécuter les commandes suivantes après celles ci-dessus:

xmodmap -pke >~/.Xmodmap

(il crée un fichier nommé .Xmodmap dans votre répertoire personnel (~))

Ensuite, vous devez créer un fichier nommé .xinitrc dans votre répertoire personnel où vous mettez la commande xmodmap .Xmodmap dans.

Vous pouvez maintenant modifier .Xmodmap et courir xmodmap .Xmodmap de la console pour voir les modifications immédiatement. Les changements dans .Xmodmap va persister.

la source: Ubuntu Foruns

Bonus:

Si la clé que vous remappez a un comportement différent selon l'état ( comme la façon dont les touches du clavier numérique dépendent de NumLock) xmodmap -pmpour obtenir une liste de modificateurs puis faire:

xmodmap -e "KEYCODE MODIFIER = behaviour behaviour_with_modifier"

Supposons, par exemple, que vous souhaitiez obtenir un point au lieu d'une virgule sur le clavier numérique (utile pour la plupart des programmeurs), mais que vous souhaitiez conserver le comportement "supprimer" lorsque NumLock est désactivé.

xmodmap -e "keycode 91 mod2 = KP_Delete period"

mod2, car xmodmap -pm nous dit que mod2 est Num_Lock, les autres noms sont obtenus en appuyant sur les touches xev.


233
2017-12-17 18:46



xev n'est pas capable d'attraper Fn presses à clé - om-nom-nom
J'ai adoré comment vous avez tout expliqué au lieu de simplement brouiller la syntaxe avec des endroits pour substituer - Programming Noob
La réponse sélectionnée n'a pas fonctionné pour le remappage de la clé de verrouillage Caps sur Ubuntu 12.10. J'ai pu le faire en allant dans Paramètres système -> Clavier -> Paramètres de mise en page -> Options, qui contient une liste de clés et de comportements alternatifs. Travaillé parfaitement dans Unity et terminal. - Allyl Isocyanate
Étrange, j'ai tout fait, mais mes keymappings sont toujours réinitialisés après le redémarrage. - Costa
Je ne pense pas avoir un -event drapeau dans Ubuntu 12.04. Il génère une erreur et ne mentionne pas "événement" dans man xev. - isomorphismes


Si vous essayez de déplacer une touche Maj, quelques étapes supplémentaires sont nécessaires:

 xmodmap -e "keycode 62 = Up" # Shift => Up
 xmodmap -e "keycode 111 = Shift_R" # Up => Shift
 xmodmap -e "add shift = Shift_R" # Make the new Shift key actually do shifting
 xmodmap -e "remove shift = Up" # Prevent the old Shift key from shifting
 xset r 62 # Make the new Up key autorepeat
 xset -r 111 # Prevent the new Shift key from autorepeating

18
2018-02-05 14:04



+1 La réponse la plus unix-y de tous ceux pour un modificateur (je l'avais déjà fait depuis mon iBook 2, quand je voulais que la touche entrée ait la fonction de Control_R, mais que j'avais oublié les détails). - rbrito
Une réponse importante pour les utilisateurs utilisant des claviers sur les ordinateurs portables Lenovo - Einar Ólafsson


Je viens d'avoir une réflexion après coup .. Je pense que vous pouvez vouloir dire quelque chose de complètement différent par "remap" ... mais je vais laisser ma réponse telle quelle ... (je ne sais pas comment réattribuer une clé à se comporter comme un autre)

METTRE À JOUR: mon 'afterthought' a été confirmé; (J'ai répondu à la mauvaise question:) veuillez consulter la réponse Wiki de la communauté de NES (acceptée ci-dessus).

Il y a deux manières générales de remapper relier une clé.

  • localement à un programme particulier
    (une touche peut être utilisée pour différentes choses dans différentes applications / fenêtres)
  • globalement pour un utilisateur spécifique
    (une clé a la même fonction dans toutes les fenêtres)

Pour les méthodes "locales à un programme", il existe parfois un moyen de modifier les raccourcis clavier proposés par l'application elle-même ... par exemple.

Firefox a un addon appelé keyconfig ... pour quelques infos voir ça MozillZine post 

La plupart des programmes Ubuntu sont basés sur Gnome et il existe un utilitaire spécifique pour modifier le raccourci clavier de n'importe quel élément de menu de ces applications Gnome. Editable Menu Accelerator ... C'est un outil très "délicat", mais assez puissant. gconf-editor (via Terminal ou Alt + F2) ... naviguez jusqu'à desktop-gnome-interface et sélectionnez can_change_accels .... Vous pouvez ensuite changer les éléments de menu en virtuel tout ce que vous voulez (par programme / fenêtre) ... Je vous suggère de le désactiver dès que vous avez fait ce dont vous avez besoin ..

Sinon, vous pouvez configurer les raccourcis clavier globaux. J'utilise un programme appelé xbindkeys  Install xbindkeys, et il y a aussi une option disponible via le menu principal - Préférences, appelée Keyboard Shortcuts 

Si vous utilisez xbindkeys, vous devrez l'ajouter à vos "applications de démarrage" (Menu principal - Préférences) ... Aussi (comme suggéré par Stefano Palazzo) J'ai déjà écrit une description plus détaillée de xbindkeys dans une réponse à ce sujet. la page askubuntu


16
2018-01-27 03:04



+1, très sympa! Une suggestion: vous devez intégrer votre bonne réponse à une autre question dans celui-ci, peut-être aussi expliquer le format de configuration de xbindkeys un peu. - Stefano Palazzo♦
Le peu d’attribution des autres clés pourrait être traité par xdotool, consultez la page de manuel, je l'ai utilisée pour résoudre ce problème. - Stefano Palazzo♦
J'ai récemment trouvé une autre approche avec un outil appelé xmodmap en combinaison avec un outil appelé xev. Je ne sais pas quelles sont les différences entre xmodmap et xbindkeys, mais cela fonctionne plutôt bien pour moi. un conseil avec outil pour préférer les deux nommés? Voici un guide étape par étape très utile qui décrit xmodmap et xev ubuntuforums.org/showpost.php?p=7675138&postcount=2 - NES
@NES .. Il semble que je me suis trompé de point. Vous semblez vouloir réinterpréter la manière dont une clé particulière est interprétée par le système d’exploitation, c’est-à-dire une interprétation de clavier non standard, alors que interprétation de clavier standard, et simplement surcharger les affectations de touches par défaut. (Je pense que ce que vous recherchez est similaire à échanger les boutons gauche et droit de la souris) .. Eh bien, il semble que ma réponse était bonne pour la mauvaise chose :) - Peter.O
oui, mais pas de problème. la réponse est également intéressante. le guide étape par étape j'ai posté le lien ci-dessus était la bonne façon. Je vais donc poster une réponse courte avec la solution que les autres utilisateurs ont un bon guide. merci fred - NES


Voici comment j'ai essayé de changer le mappage du ENTRER la clé de la DÉCALAGE clé (et vice versa):

$ uname -a

RAPPORTS:

Linux box 2.6.32-37-generic #81-Ubuntu SMP Fri Dec 2 20:35:14 UTC 2011 i686 GNU/Linux

$ which xmodmap

RAPPORTS:

/usr/bin/xmodmap

$ which xev

RAPPORTS:

/usr/bin/xev

$ xev

(ignorez les cinquante lignes suivantes)

PRESS THE ENTER KEY (notice the third line):
KeyPress event, serial 33, synthetic NO, window 0x5600001,
    root 0x110, subw 0x0, time 263441120, (738,242), root:(771,314),
    state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
    XLookupString gives 1 bytes: (0d)
    XmbLookupString gives 1 bytes: (0d)
    XFilterEvent returns: False

KeyRelease event, serial 33, synthetic NO, window 0x5600001,
    root 0x110, subw 0x0, time 263441271, (738,242), root:(771,314),
    state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
    XLookupString gives 1 bytes: (0d)
    XFilterEvent returns: False

PRESS THE SHIFT KEY (notice the third line):
KeyPress event, serial 30, synthetic NO, window 0x5600001,
    root 0x110, subw 0x0, time 263592202, (464,368), root:(497,440),
    state 0x0, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyRelease event, serial 33, synthetic NO, window 0x5600001,
    root 0x110, subw 0x0, time 263592298, (464,368), root:(497,440),
    state 0x1, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

Ce qui est important, c'est la troisième ligne de chaque touche:

FOR:
state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
The name "Return" is the name of the behavior of the key pressed.
The number of the key pressed is "36".

state 0x0, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
The name "Shift_R" is the name of the behavior of the key pressed.
The number of the key pressed is "62".

REVERSE LA MAPPING:

$ xmodmap -e "keycode 62 = Return"
$ xmodmap -e "keycode 36 = Shift_R"

SAUVEZ LES RÉSULTATS:

$ xmodmap -pke > ~/.Xmodmap
$ vi ~/.xinitrc

AJOUTER

 xmodmap ~/.Xmodmap

$ sudo reboot

Le principal problème était que l'inversion ne fonctionnait pas. le ENTRER la clé a été mappée sur le SHIFT_R clé; mais le SHIFT_R la clé n'a pas été mappée sur le ENTRER clé. Allez comprendre.


8
2018-01-20 05:30





Pour effectuer des remaps globaux indépendamment de X, vous pouvez utiliser configuration de la console (5) au lieu.

Dans mon cas, je voulais reconfigurer verrouillage des majuscules la clé de , Depuis mon -key est cassé :)

D'abord j'ai utilisé dumpkeys (1) pour obtenir un modèle pour un mappage, dans le cas du -key, le bit intéressant est le mapping pour le keycode 32 (sur mon clavier); Notez qu'il y a deux espaces dans le motif grep!

$ sudo dumpkeys | grep "keycode  32" > tempfile
$ cat tempfile
keycode  32 = +d
    shift   keycode  32 = +D
    altgr   keycode  32 = +eth
    shift   altgr   keycode  32 = +ETH
    control keycode  32 = Control_d
    shift   control keycode  32 = Control_d
    altgr   control keycode  32 = Control_d
    shift   altgr   control keycode  32 = Control_d
(121 lines total...)

Pour changer la carte à appliquer à verrouillage des majuscules (code clé 58 sur mon clavier) à la place

sed 's/32/58/' -i tempfile

Maintenant, il lit

keycode  58 = +d
    shift   keycode  58 = +D
    altgr   keycode  58 = +eth
(etc...)

Pour ajouter cette reconfiguration à la carte par défaut, il suffit de l’ajouter au fichier configuration de la console

sudo sh -c 'cat tempfile >> /etc/console-setup/remap.inc'

et configuration de la console doit être reconfiguré (en sautant les questions de faible priorité avec -phigh)

sudo dpkg-reconfigure console-setup -phigh

Maintenant, le remap devrait être terminé et être chargé automatiquement au démarrage.


6
2017-07-28 12:15





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

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

J'ai alors essayé xbindkeys avec xmacro. Ce genre de travaux, 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 Unity -> Raccourcis personnalisés pour configurer mon raccourci.

Et au lieu de xmacro, J'ai maintenant utilisé xvkbd programme pour générer les événements de clavier, mais ce n'est qu'une préférence personnelle. Tous les deux xmacro et xvkbd travaille presque le même. Un conseil supplémentaire consiste à ajouter un paramètre de délai dans xmacro ou xvkbd pour que les événements ne se perdent pas.


3





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

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

0