web-dev-qa-db-fra.com

Les modificateurs de remappage Xmodmap ne fonctionnent pas?

J'utilise un nouveau clavier et j'essaie de le configurer pour imiter le clavier de mon ordinateur portable. J'utilise xmodmap sur Ubuntu 14.04 et je ne parviens pas à le faire fonctionner. J'ai effacé les touches de modification comme suit:

xmodmap -e "clear mod1"
xmodmap -e "clear mod4"
xmodmap -e "clear Control"

Et cela fonctionne bien, après les modificateurs ne font rien. Après cela, j'essaie d'assigner la touche Alt_R à agir comme une super clé, comme ceci:

xmodmap -e "add mod1 = Alt_R"

Cependant, le bouton alt revient alors à se comporter comme un bouton alt, au lieu de se comporter comme un super et d’afficher la recherche Unity quand elle est appuyée. Existe-t-il une astuce pour que les modificateurs fonctionnent avec xmodmap?

De plus, même après avoir effacé le contrôle, avec "xmodmap -e" clear Control ", je peux toujours utiliser ctrl.

Le clavier que j'utilise est le nec plus ultra du clavier, si cela compte vraiment.

EDIT: Une réalisation que j’ai faite en jouant avec xev et en essayant de résoudre le problème: quand j’exécute quelque chose comme "xmodmap -e" keycode 133 = Alt_L "(le keycode 133 est généralement super), puis je lance xev, quand je regarde la sortie montre ceci:

KeyRelease event, serial 37, synthetic NO, window 0x2000001,
root 0x9e, subw 0x0, time 179020, (-382,66), root:(406,118),
state 0x40, keycode 133 (keysym 0xffe9, Alt_L), same_screen YES,
XKeysymToKeycode returns keycode: 64
XLookupString gives 0 bytes: 
XFilterEvent returns: False

Comme vous pouvez le voir, la touche est enfoncée sous la forme Alt_L. Cependant, la touche se comporte toujours comme une super-clé et active la recherche Unity lorsque vous appuyez dessus.

3
Marcus Buffett

Je ne suis pas un expert moi-même, mais je vais essayer. Tout d’abord, créons un script xmodmap sur ~/.Xmodmap. Je comprends que vous souhaitiez que le bon alt fonctionne comme une super clé. Je suggère ceci:

clear mod1
clear mod4

!Make right alt to look like Super_R
!I'm assuming your right alt has keycode 108, you can check using xev
keycode 108 = Super_R NoSymbol Super_R

!Add the Super_L and Super_R keys to the modifier mod4
add mod4 = Super_L Super_R

Votre autre touche Alt et vos super touches peuvent maintenant être gâchées, mais vous pouvez les assigner à tout ce que vous voulez de façon analogue. (Si vous ne voulez pas du tout les changer, utilisez xev pour voir ce qu’ils ont fait à l’origine et assignez-les à cela.) Il suffit de mettre tous les clears ensemble, puis les assignations de codes de clé à key noms, puis enfin les attributions de noms de clé aux modificateurs, et je pense que cela devrait fonctionner. Normalement, ~/.Xmodmap devrait être exécuté automatiquement lors de la connexion, mais sinon, vous pouvez essayer d'ajouter une ligne

xmodmap ~/.Xmodmap

ou

sleep 4 && xmodmap ~/.Xmodmap &

à ~/.bash_profile.

5
dremodaris