Quiero mezclar algunas claves con XKB. (¿Por qué? En una computadora portátil donde algunas teclas están ubicadas de manera inconveniente). Actualmente uso 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 keysyms a ciertos códigos de teclas. (Este es el motivo). Quiero que el código clave 110 envíe PGUP
en lugar de HOME
, código clave 115 para enviar DELE
en lugar de END
, etc. El resto de la configuración no debe verse afectada (por lo que PGUP
es seguir enviando el keysym Prior
, etc., y todas las demás claves permanecen como están).
¿Cómo puedo cambiar la asignación de estos códigos clave específicos? Cargaré un archivo con xkbcomp somefile.xkb $DISPLAY
, ¿qué debo poner en somefile.xkb
?
Respuesta aceptada:
Cree un archivo que contenga los cambios de su código clave y guárdelo como (por ejemplo) ~/.xkb/keycodes/local
. (Los keycodes
el directorio está codificado; el directorio base puede ser otra cosa, y el nombre del archivo también.) Esto contendrá en su caso
xkb_keycodes {
<PGUP> = 110;
<PGDN> = 112;
<DELE> = 115;
<INS> = 117;
<HOME> = 118;
<END> = 119;
};
Para cargar esto, ejecute
setxkbmap -print | sed -e '/xkb_keycodes/s/"[[:space:]]/+local&/' | xkbcomp -I${HOME}/.xkb - $DISPLAY
Esto genera su configuración actual, agrega +local
a los xkb_keycodes
include
y lo carga en el compilador XKB, agregando ~/.xkb
a la ruta de inclusión. (Si le dio a su archivo un nombre que no sea ~/.xkb/keycodes/local
, obviamente tendrás que cambiar +local
y -I${HOME}/.xkb}
.) De esa manera, se conservan todas las demás configuraciones.