Tengo un teclado de Apple y tuve que hacer una reasignación de las teclas para que la mod-4
tecla sea la primera tecla a la izquierda de la Spacebarra para trabajar con Emacs. El siguiente script funcionó bien cuando estaba usando el administrador de ventanas dwm, pero después de cambiar a Openbox descubrí que, en lugar de intercambiar códigos de teclas entre las teclas de opción y comando, ambas teclas están haciendo lo mismo.
Una cosa extraña que noté fue en la nueva configuración cuando hago clic en Ejecutar showkey
y presiono las teclas de opción y comando. Obtengo 56 y 125 respectivamente, pero estas teclas no funcionan en absoluto cuando las inserto en el siguiente script en lugar de las 64 y 133)
Debo admitir que creé el script a continuación modificándolo continuamente hasta que funcionó para que pudiera haber una forma mucho mejor de hacerlo.
.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"
Actualizar
Me acostumbré a la configuración anterior del teclado y dejé de intentar modificarlo. Desafortunadamente, después de un reinicio reciente del CapsLockque Ctrlya no funcionaba así que aquí estoy de nuevo.
Esta vez, en lugar del mapeo utilizado anteriormente, ejecuté xmodmap -pke > ~/.xmod
y ajusté las teclas allí (lo cual es mucho más fácil).
Sin embargo, las cosas todavía no están del todo bien. La imagen CapsLockfija funciona normalmente, excepto cuando xev
se ejecuta el comando, luego devuelve lo siguiente, que parece mostrar la asignación correcta:
# 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
el problema es un conflicto .
showkey
no muestra los mismos códigos de teclas que X usa. Correxev
para ver los códigos de teclas X y sus acciones. Muéstrenos la salidaxmodmap -pm
y la salida dexev
cuando presiona cada una de las teclas involucradas.