Estoy intentando reasignar mi teclado para hacer que emacs sea utilizable. Mi teclado ergonómico coloca su única tecla de control en una isla aislada de 4 teclas a la izquierda.
El sistema operativo es Debian Squeeze.
Aquí están las líneas que intento alimentar xmodmap
, las coloco en un archivo ~ / .Xmodmap:
control claro claro Mod1 ! Las teclas Alt están etiquetadas como 'Opción' en mi teclado, ! el uso de xev les muestra que envíen Alt_L y Alt_R, respectivamente keysym Alt_L = Control_L keysym Alt_R = Control_R ! Las teclas Super_L y Super_R son las teclas de Windows keysym Super_L = Alt_L keysym Super_R = Alt_R agregar Control = Control_L Control_R agregar Mod1 = Alt_L Alt_R
Mi objetivo es hacer que mis Altteclas Opción (aka ) se comporten como las teclas de Control y que mis teclas Windows (aka Super) se comporten como Alt.
Aquí están los códigos clave y la salida de claves SMS por xev para las claves en cuestión. Tenga en cuenta que mi teclado (un teclado ergonómico Goldtouch) tiene solo una tecla de control.
código clave 37 (keysym 0xffe3, Control_L) código clave 64 (keysym 0xffe9, Alt_L) código clave 133 (keysym 0xffeb, Super_L) código clave 134 (keysym 0xffec, Super_R) código clave 108 (keysym 0xffea, Alt_R)
Esto es lo que muestra xev mientras se ejecuta xmodmap .Xmodmap
Evento MappingNotify, serial 34, NO sintético, ventana 0x0, solicite MappingKeyboard, first_keycode 204, recuento 1 Evento MappingNotify, serial 34, NO sintético, ventana 0x0, solicite MappingKeyboard, first_keycode 64, recuento 1 Evento MappingNotify, serial 34, NO sintético, ventana 0x0, solicite MappingKeyboard, first_keycode 108, recuento 1 Evento MappingNotify, serial 34, NO sintético, ventana 0x0, solicite MappingKeyboard, first_keycode 206, recuento 1 Evento MappingNotify, serial 34, NO sintético, ventana 0x0, solicite MappingKeyboard, first_keycode 133, recuento 1 Evento MappingNotify, serial 34, NO sintético, ventana 0x0, solicite MappingKeyboard, first_keycode 134, recuento 1
Y aquí está el error devuelto por xmodmap
:
X Error de solicitud fallida: BadValue (parámetro entero fuera de rango para operación) Código de operación principal de solicitud fallida: 118 (X_SetModifierMapping) Valor en solicitud fallida: 0x17 Número de serie de solicitud fallida: 17 Número de serie actual en la secuencia de salida: 17
¿Alguna sugerencia sobre cómo puedo resolver esto?
xev
en una terminal, luegoxmodmap
en otra terminal. Debería ver algunasMappingNotify
estrofasxev
, agregarlas a su pregunta. Además, en laxev
ventana, presione las distintas teclas involucradas y díganos a qué código clave y keyym corresponden (la clave "keycode 37 (keysym 0xffe3, Control_L)" parte de la salida xev).Respuestas:
Esto ya se ha informado como error Debian # 564327 , error Debian # 565279 , error Ubuntu # 524774 y error FreeDesktop 20145 . Hay un parche de origen adjunto a la discusión de errores de FreeDesktop. Hay varias propuestas de soluciones alternativas en la discusión de errores de Ubuntu, en particular una
.Xmodmap
solución alternativa .fuente
Mirando la solución vinculada por Giles, esto es lo que funcionó para mí:
Mis teclas de opción ahora funcionan como teclas de control y mis teclas de Windows como teclas Alt.
fuente
El problema surge cuando intentas agregar un símbolo clave a un modificador que ya está agregado a otra tecla modificadora. Es vital saber que si agrega un keyym a un modificador, todos los demás keyyms que acompañan al keyym en caso de que se agreguen también a ese modificador.
Por ejemplo:
puede resultar en
porque tienes algo como
en su ~ / .Xmodmap (Vea el mapeo actual del código clave al keyym mediante
xmodmap -pke
)que producirá el error BadValue en cuestión cuando también intentes hacer algo como
porque Caps_Lock ya está agregado al modificador mod5.
fuente
Esta es otra solución a su problema, aunque en realidad no responde a su pregunta. Edite xorg.conf, insertando lo siguiente en la Sección "InputDevice":
fuente