Usando setxkbmap para una reasignación simple (similar a xmodmap)

13

Me he enfrentado a algunos problemas después de reasignar el teclado con xmodmap: la configuración se restablece aleatoriamente después de 2-20 minutos después de la aplicación. Busqué en Google pero no ayudó: algo los restablece, pero todas las menciones se aplican a xfce, mientras que estoy bajo Ubuntu 14.04 con unidad.

Vi frases como 'usar xkb, olvidar xmodmap', pero aún no tengo idea de cómo hacerlo. Está clasificado o es muy complicado, porque la cantidad de información es significativamente menor que la de xmodmap.

Aquí está mi lista de personalizaciones:

xmodmap -e "keycode 84 = Down"
xmodmap -e "keycode 79 = Home"
xmodmap -e "keycode 80 = Up"
xmodmap -e "keycode 83 = Left"
xmodmap -e "keycode 85 = Right"
xmodmap -e "keycode 87 = End"
xmodmap -e "keycode 90 = Insert"
xmodmap -e "keycode 91 = Delete"
xmodmap -e "keycode 89 = Next"
xmodmap -e "keycode 81 = Prior"

donde los códigos de teclas son teclas correspondientes en el teclado numérico, con numlock = desactivado (básicamente, estoy reemplazando KP_Del con Delete, KP_Home con Home, etc., no pregunte por qué))

¿Alguien puede ayudar a encontrar una manera de hacerlo usando xkb, al menos una de las líneas? ¿Y dónde encontrar los "nombres" de claves para otros para que yo pueda hacer el resto con el ejemplo?

Den Drobiazko
fuente
55
Sí. Tenía exactamente el mismo problema. Ver aquí: rlog.rgtti.com/2014/05/01/… y askubuntu.com/questions/422650/… . Si puede encontrar la forma de usar xkbsin reescribir los archivos del sistema, escriba una respuesta aquí ... será recompensado por millones de votos a favor.
Rmano
Wow: finalmente, una guía de reasignación xkb que aclara las cosas ... Pero no puedo ver nada sobre la reasignación de Home, Delete y Up- & Down-arows. Siempre se trata de algunas letras griegas o españolas. Hasta ahora, hice lo contrario: intenté evitar que el sistema anulara mi configuración de Xmodmap (receta n. ° 3 desde aquí: programacióniroiro.blogspot.com
2013/03/…
1
Mala idea: no hay cambio de diseño disponible después de eso (
Den Drobiazko

Respuestas:

4

Puede seguir la idea general que se ve en mi respuesta sobre un problema similar ; si aún desea cambiar el diseño (aunque todavía está bastante roto ), debe definir un nuevo diseño o variante .

Tenga en cuenta que la plantilla para copiar y modificar para editar un teclado es un poco difícil de encontrar. En mi teclado, por ejemplo, la geometría es "pc105"; Esto se define en /usr/share/X11/xkb/symbols/pc. Si lo examina, incluye :

[...]
key <SPCE> {        [        space          ]       };

include "srvr_ctrl(fkey2vt)"
include "pc(editing)"
include "keypad(x11)"

key <BKSP> {        [ BackSpace, BackSpace  ]       };
[...]

El teclado está definido en el archivo /usr/share/X11/xkb/symbols/keypad

[...] 
default  partial hidden keypad_keys
xkb_symbols "x11" {
   include "keypad(operators)"

   key  <KP7> {        [  KP_Home,     KP_7    ]       };
   key  <KP8> {        [  KP_Up,       KP_8    ]       };
[...]

Para el nombre de los símbolos clave (keyims), el mejor lugar para buscar es en el archivo /usr/include/X11/keysymdef.h; Es posible que necesite tener instalados los paquetes de desarrollo para tenerlo (o instalarlo instalando x11proto-core-dev):

[...]
/* Cursor control & motion */

#define XK_Home                          0xff50
#define XK_Left                          0xff51  /* Move left, left arrow */
#define XK_Up                            0xff52  /* Move up, up arrow */
[...]

el nombre de clave es el que una vez eliminó la cadena "XK_".

Rmano
fuente