Quiero barajar algunas teclas con XKB. (¿Por qué? En una computadora portátil donde algunas teclas están ubicadas de manera inconveniente). Actualmente utilizo xmodmap:
keycode 110 = Prior
keycode 115 = Delete
keycode 112 = Next
keycode 117 = Insert
keycode 119 = End
keycode 118 = Home
En cambio, quiero usar XKB y asignar diferentes nombres simbólicos para ciertas teclas físicas, en lugar de asignar diferentes símbolos de teclas a ciertos códigos de teclas. ( Es por eso.) Quiero que el código clave 110 envíe en PGUP
lugar de HOME
, el código clave 115 que envíe en DELE
lugar de END
, etc. El resto de la configuración no debe verse afectada (por PGUP
lo tanto, es seguir enviando el keyym Prior
, etc., y todas las demás claves permanecen ya que son).
¿Cómo puedo cambiar la asignación de estos códigos de teclas específicos? Cargaré un archivo xkbcomp somefile.xkb $DISPLAY
, ¿qué necesito poner somefile.xkb
?
fuente
-I
switch! Gracias, no pude resolver esto desde la página de manual.Puede comenzar por
setxkbmap -print > somefile.xkb
obtener el mapa de teclas que está utilizando como base y luego redefinir los nombres de teclas que desea en laxkb_keycodes
sección siguiente:Esto genera advertencias de que algunos nombres clave se asignan varias veces, pero funciona porque solo cuenta el último (por lo que es importante colocar la configuración personalizada después de la inclusión). Y el archivo tiene la ventaja de ser legible.
Otra forma es volcar el mapa de teclas que usa en un archivo:
xkbcomp $DISPLAY somefile.xkb
y modificar las mismas líneas (es el mismo mapa de teclas con las inclusiones evaluadas). De esta manera no hay advertencias para múltiples definiciones, pero es menos legible.fuente
evdev+aliases(azerty)
, etc.)? Quiero explícitamente realizar un cambio relativo, no una reconfiguración completa. Las claves que no sean las 6 enumeradas en las preguntas no deben verse afectadas, deben permanecer en el estado en que se encontraban cuando emití el comando.setxkbmap -print
, son archivos de/usr/share/X11/xkb/
. Creo que tiene que dar unxkbcomp