web-dev-qa-db-fra.com

Comment remapper le menu contextuel sur une autre clé sous Linux?

Je viens d'acheter un thinkpad Lenovo et je suis tellement fier de tout ce qu'il contient. Il est aussi solide que le noyau Linux: P.

Le problème est que Lenovo a décidé de supprimer la clé du menu contextuel, qui est la clé permettant de cliquer avec le bouton droit de la souris. Ils l'ont remplacé par une touche d'écran d'impression. Mon clavier a sa partie numérique avec quelques boutons au-dessus. Il y a une clé en forme de loupe que je voudrais reconfigurer pour ouvrir le menu contextuel ou être la touche de clic droit. Est-il possible de faire cela?

J'ai essayé de chercher d'autres questions connexes, mais je n'ai trouvé que des questions-réponses sur la manière d'ajouter des options au menu contextuel de Nautilus. Je souhaite mapper une touche physique de mon clavier pour ouvrir ce menu. Juste comme avant. Il semble également que Dell laisse tomber cette clé dans son clavier inspiron. Je ne sais pas ce qui se passe puisque j'utilise plus le clavier que la souris.

Merci d'avance.

19
Jhonnytunes

C'est un peu compliqué mais tu peux le faire. Suivez ces étapes:

Détecter le keycode

  1. Exécutez xevpour détecter le code clé:

    xev | grep keycode
    
            state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
            state 0x0, keycode 107 (keysym 0xff67, Menu), same_screen YES,
            state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    
  2. Appuyez sur la touche que vous souhaitez reconfigurer. La sortie dans le terminal vous montrera le keycode(soyez prudent, vous pouvez en avoir plusieurs).

Tester la cartographie

  1. Définir temporairement un nouveau mappage, c'est keycode 107 pour moi:

    xmodmap -e "keycode  107 = Return NoSymbol Return"
    

Si la clé se comporte comme prévu, vous pouvez enregistrer la configuration.

Enregistrez votre configuration

  1. Enregistrez votre table de clés actuelle dans votre $HOME, pour remplacer la valeur par défaut:

    xmodmap -pke > ~/.Xmodmap
    
  2. Créez ou éditez ~/.xinitrc pour charger votre configuration:

    $EDITOR ~/.xinitrc
    
  3. Ajouter les lignes suivantes

    if [ -f $HOME/.Xmodmap ]; then
            /usr/bin/xmodmap $HOME/.Xmodmap
    fi
    

Prendre plaisir

La plupart des informations ci-dessus proviennent de article d'ArchWiki .

13
Ed Villegas

J'ai trouvé ici cela en utilisant: shift+F10 ouvre le menu contextuel.

Je sais que ce n'est pas la meilleure solution, mais j'ai pensé que cela pourrait aider pour une utilisation temporaire!

P.S: J'ai aussi e530c et je l’ai testé sous Debian 7 (Wheezy).

12
Bahax

J'ai finalement trouvé le moyen de le faire après des heures d'essais et j'ai échoué: D

Tout d'abord, installez xautomation:

Sudo apt-get install xautomation

Rendez-vous ensuite à l'onglet Raccourci de la section Clavier dans Paramètres système Ubuntu. Commencez par aller à l'entrée Captures d'écran et remappez les actions sur une autre clé ou désactivez-les si vous le souhaitez. J'ai remplacé la touche PrtSc (Print) par le bouton noir Thinkpad (Launch1).

Maintenant, allez à la section Raccourcis personnalisés et ajoutez un raccourci. nommez-le comme vous voulez, par exemple Menu. Dans le champ Commande, insérez ceci:

xte 'keydown Shift_L' 'key F10' 'keyup Shift_L'

Le travail est terminé! Ça marche comme un miracle;)

3
Danial Behzadi

Cela a fait le tour pour moi. Pour moi, le code d'activation du bouton "PrtSc" sur mon thinkpad est 107. Je l'ai trouvé grâce à l'outil "xev" dans Ubuntu.

xmodmap -e "keycode  107 = Menu"

Ceci est un changement temporaire.

Vous pouvez rendre cela permanent en ajoutant cette commande à/etc/profile. Il s'exécutera à chaque démarrage et le changement sera permanent.

2
Null Pointer

J'ai récemment acheté un Lenovo E550 et j'ai eu le même problème. Je l'ai résolu en utilisant xte (de xautomation) avec xmodmap.

Pourquoi les autres réponses ne fonctionnent pas entièrement?

  1. @ Ed Villegas (ni @ Pointeur Null ) réponse ne fonctionnera pas car certaines des clés situées au-dessus de la partie numérique ne sont pas des clés uniques par elles-mêmes ( Par exemple la clé de verrouillage est liée à la Super+L combinaison). Lorsque xev est utilisé pour essayer de trouver le code de la clé de verrouillage, il renvoie Super et le L keycodes, il vous suffit d’interpréter la sortie xev ligne par ligne.

  2. Pour @ Bahax et @ John FineganShift+F10 est une touche de menu contextuel, elle ne fonctionne pas dans toutes les applications et ne fournit pas les mêmes fonctions que Menu. Si vous sélectionnez un fichier dans l’explorateur de fichiers et appuyez sur Menu le menu contextuel du fichier lui-même devrait apparaître, cela ne se produit pas avec le Shift+F10 combinaison, elle fournirait un menu contextuel pour la fenêtre.

  3. @ Danial Behzadi adopte une approche similaire aux personnes du deuxième élément, mais en reliant la combinaison de touches du clavier à une touche via un simulateur de frappe, il reliera la touche à la Shift+F10 et fournir le même résultat.

La réponse qui fonctionne

Il est important de prendre en compte que la clé qui n'est pas présente dans le clavier du ThinkPad est la Menu (c'est son nom), il est montré dans l'image suivante:

Menu key

Bien que la clé ne soit pas présente, son code clé doit exister sur votre ordinateur, vous pouvez le trouver en imprimant la table de codes clés avec xmodmap -pke | grep Menu qui devrait vous donner quelque chose comme:

xmodmap output

Dans cet esprit, installez xautomation (afin d'utiliser xte pour les simulations de frappe) comme dans @ Danial Behzadi answer:

Sudo apt-get install xautomation

Et créez un raccourci personnalisé, dans le déclencheur , appuyez sur la touche que vous souhaitez utiliser comme raccourci et dans le Action, collez xte 'key Menu'. Appliquer et tester.

1
Hans