J'ai un clavier Apple et j'ai dû faire un remappage des touches pour faire de la mod-4
touche la première touche à gauche de la Spacebarre lorsque vous travaillez avec Emacs. Le script ci-dessous a bien fonctionné lorsque j'utilisais le gestionnaire de fenêtres dwm, mais après être passé à Openbox, j'ai constaté qu'au lieu de permuter les codes clés entre les touches d'options et de commande, les deux clés font la même chose.
Une chose étrange que j'ai remarquée, était sur la nouvelle configuration lorsque je clique sur Exécuter showkey
et que j'appuie sur les touches d'option et de commande respectivement 56 et 125, mais ces touches ne fonctionnent pas du tout lors de leur insertion dans le script ci-dessous au lieu du 64 et 133.
Je dois admettre que j'ai créé le script ci-dessous en le modifiant continuellement jusqu'à ce qu'il fonctionne afin qu'il puisse y avoir une bien meilleure façon de le faire.
.xmodmap
# switch alt and command...the switch is not being done properly
xmodmap -e "keycode 64 = Alt_L"
xmodmap -e "keycode 133 = Meta_L"
# remap of mod 4
xmodmap -e "clear Mod4"
xmodmap -e "add Mod4 = Super_L"
Mise à jour
Je me suis habitué à la configuration précédente du clavier et j'ai renoncé à le modifier. Malheureusement, après un redémarrage récent de la CapsLockà Ctrlne fonctionnait plus si je suis ici à nouveau.
Cette fois, au lieu du mappage utilisé ci-dessus, j'ai couru xmodmap -pke > ~/.xmod
et modifié les touches à la place (ce qui est beaucoup plus facile).
Cependant, les choses ne sont toujours pas tout à fait correctes. Le CapsLockfonctionne toujours normalement, sauf lorsque la xev
commande est exécutée, puis il retourne ce qui suit qui semble montrer le mappage correct:
# caplock
KeyRelease event, serial 40, synthetic NO, window 0x2200001,
root 0x156, subw 0x0, time 4858000, (57,-31), root:(426,402),
state 0x2, keycode 66 (keysym 0xffe3, Control_L), same_screen YES,
XKeysymToKeycode returns keycode: 37
XLookupString gives 0 bytes:
XFilterEvent returns: False
# ctrl-L
KeyRelease event, serial 40, synthetic NO, window 0x2200001,
root 0x156, subw 0x0, time 4805947, (686,148), root:(1055,581),
state 0x4, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
# Alt-L
KeyPress event, serial 40, synthetic NO, window 0x2200001,
root 0x156, subw 0x0, time 4555825, (-158,-649), root:(959,133),
state 0x0, keycode 64 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
# Super-L
KeyRelease event, serial 40, synthetic NO, window 0x2200001,
root 0x156, subw 0x0, time 4920564, (-63,169), root:(306,602),
state 0x40, keycode 133 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
~/.config/openbox/rc.xml
problème avec est le problème.
showkey
n'affiche pas les mêmes codes clés que X utilise. Courezxev
pour voir les codes-clés X et leurs actions. Montrez-nous la sortie dexmodmap -pm
et la sortie dexev
lorsque vous appuyez sur chacune des touches concernées.