Ho una tastiera Apple e ho dovuto fare qualche rimappatura dei tasti per rendere il mod-4
tasto il primo tasto a sinistra della Spacebarra per quando lavoravo con Emacs. Lo script seguente ha funzionato bene quando stavo usando il gestore di finestre dwm, ma dopo essere passato a Openbox ho scoperto che invece di scambiare i codici chiave tra i tasti opzione e comando, entrambi i tasti stanno facendo la stessa cosa.
Una cosa strana che ho notato, era sulla nuova configurazione quando faccio clic su Esegui showkey
e premo i tasti opzione e comando ottengo rispettivamente 56 e 125, ma questi tasti non funzionano affatto quando li inserisco nello script seguente invece del 64 e 133.
Devo ammettere di aver creato lo script qui sotto modificandolo continuamente fino a quando non ha funzionato in modo che ci potesse essere un modo molto migliore di farlo.
.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"
Aggiornare
Mi sono abituato alla configurazione della tastiera precedente e ho rinunciato a provare a modificarlo. Purtroppo, dopo una recente riavvio del CapsLockper Ctrlnon funzionava più quindi eccomi qui di nuovo.
Questa volta invece della mappatura usata sopra ho eseguito xmodmap -pke > ~/.xmod
e modificato le chiavi lì (che è molto più facile).
Tuttavia, le cose non sono ancora del tutto giuste. Il CapsLockfermo funziona normalmente, tranne quando xev
viene eseguito il comando, quindi restituisce quanto segue che sembra mostrare il mapping corretto:
# 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
il problema sia un conflitto .
showkey
non mostra gli stessi codici chiave che X usa. Corrixev
per vedere i codici chiave X e le loro azioni. Mostraci l'output dixmodmap -pm
e l'output dixev
quando premi ciascuno dei tasti coinvolti.