Une façon d'y parvenir est via xmodmap
. Vous pouvez exécuter xev
pour obtenir des événements clés. Lors de l'exécution, xev
une boîte doit apparaître et vous pouvez la focaliser et appuyer sur les touches que vous souhaitez permuter. Il devrait afficher des détails similaires à ceux de la Altclé:
KeyPress event, serial 28, synthetic NO, window 0x8800001,
root 0x25, subw 0x0, time 2213877115, (126,91), root:(1639,475),
state 0x0, keycode 14 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
Je suis sur un PC et je n'ai pas de "clé de commande", mais j'ai la "clé Windows" équivalente, et xev donne:
KeyPress event, serial 28, synthetic NO, window 0x8000001,
root 0x25, subw 0x0, time 2213687746, (111,74), root:(1624,98),
state 0x0, keycode 93 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
Parce que xmodmap n'a aucune idée state
et peut facilement casser les mappages de touches, je vous suggère de faire un:
xmodmap -pke > defaults
Ensuite, nous créons un fichier xmodmap:
keycode 14 = Alt_L
keycode 93 = Super_L
remove Mod1 = Alt_L
remove Mod4 = Super_L
add Mod1 = Super_L
add Mod4 = Alt_L
Notez comment j'utilise les codes clés xev
retournés. Ici aussi, je ne remplace que les touches gauche et super (et laisse les bonnes à leur ancien comportement). Ensuite, nous pouvons simplement exécuter xmodmap
, pour définir ces clés:
$ xmodmap -v modmap.file
! modmap:
! 1: keycode 14 = Alt_L
keycode 0xe = Alt_L
! 2: keycode 93 = Super_L
keycode 0x5d = Super_L
! 3: remove Mod1 = Alt_L
! Keysym Alt_L (0xffe9) corresponds to keycode(s) 0xe
remove mod1 = 0xe
! 4: remove Mod4 = Super_L
! Keysym Super_L (0xffeb) corresponds to keycode(s) 0x5d
remove mod4 = 0x5d
! 5: add Mod1 = Super_L
add mod1 = Super_L
! 6: add Mod4 = Alt_L
add mod4 = Alt_L
!
! executing work queue
!
keycode 0xe = Alt_L
keycode 0x5d = Super_L
remove mod1 = 0xe
remove mod4 = 0x5d
add mod1 = Super_L
add mod4 = Alt_L
Vous pouvez exécuter sans le -v
commutateur (verbose) pour un fonctionnement silencieux, mais je trouve cela utile si vous avez fait des erreurs dans votre fichier modmap. Si les choses tournent mal, réappliquez simplement vos valeurs par défaut:
xmodmap defaults
Modmap est souvent exécuté au démarrage de X, vous pouvez donc les appliquer comme valeurs par défaut si vous placez vos commandes modmap ~/.xmodmaprc
.