Tengo un teclado de Apple y tuve que hacer una reasignación de las teclas para que la mod-4tecla 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 showkeyy 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 > ~/.xmody 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 xevse 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

showkeyno muestra los mismos códigos de teclas que X usa. Correxevpara ver los códigos de teclas X y sus acciones. Muéstrenos la salidaxmodmap -pmy la salida dexevcuando presiona cada una de las teclas involucradas.~/.config/openbox/rc.xmlel problema es un conflicto .Respuestas:
Probablemente necesite colocar lo siguiente al comienzo de su
~/.xmodY lo siguiente en la parte inferior de
~/.xmodEsto actualizará el sistema para reconocer la naturaleza del modificador de estas teclas.
fuente