Reasignar teclas thinkpad

De Recursos Educativos
Revisión del 10:34 21 may 2020 de Lantolin (discusión | contribs.)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda
La versión para imprimir ya no se admite y puede contener errores de representación. Actualiza los marcadores del navegador y utiliza en su lugar la función de impresión predeterminada del navegador.
Teclas thinkpad.jpg

Algunos modelos de Thinkpad (T510 por ejemplo) tienen un par de teclas encima de las del cursor que tienen un efecto odioso: hacen en los navegadores de "adelante" y "atras". Lo habitual es que sean PagArriba y PagAbajo, con lo que cuando estás navegando y quiere mover arriba o abajo la pagina en la que estás lo que obtienes es adelante y atras en el historial de navegación, que es un dolor.

Solucion:

xmodmap -e 'keycode 166=Prior'
xmodmap -e 'keycode 167=Next'

No tengo aun claro como hacer el cambio permanente.

Actualización 22-mayo-2018. Resulta que por diversos motivos los gestores de escritorio no acaban de hacer lo que deberian y no cargan el fichero ~/.Xmodmap que en teoría sería la manera correcta y elegante de hacer este cambio permanente. Basta buscar en Internet para darse cuenta de que no hay solución buena y completa, unas pierden la configuración al rebotar, al suspender, hasta al saltar el protector de pantalla, otras dependen de scripts, etc.

Así que cambié de aproximación a una basada en xkb.

Actualización 21-mayo-2020. Al actualizar Debian 9 a Debian 10, se perdió el cambio. Lo volví a hacer y funcionó correctamente. He comprobado si estoy usando XOrg o Wayland como se explica aquí y estoy usando XOrg. Puede que esta solución no funcione en Wayland.

Solucion con XKB

Partimos de la información de que las teclas a las que queremos cambiar tienen los keycodes 166 y 167 (esta información se obtiene con xev). Buscamos que nombre da XKB a estos keycodes en /usr/share/X11/xkb/keycodes/evdev y obtenemos que son I166 y I167.

Necesitaremos también saber el nombre de las que funcionan como PaginaArriba y Pagina Abajo (en mi caso keycodes 112 y 117). Sus nombres resultan ser PGUP y PGDN.

Con esta información nos vamos a /usr/share/X11/xkb/symbols/. Alli buscamos PGUP y PGDN y vemos que los eventos que generan son Prior y Next. Esos son los eventos que queremos generar con I166 y I167. Buscamos I166 y vemos que está definida en el fichero inet.

Hacemos el siguiente cambio:

Antes:

    key <I166>   {      [ XF86Back              ]       };
    key <I167>   {      [ XF86Forward           ]       };

Despues:

//  key <I166>   {      [ XF86Back              ]       };
//  key <I167>   {      [ XF86Forward           ]       };
    key <I166>   {      [ Prior                 ]       };
    key <I167>   {      [ Next                  ]       };

Y listo. A funcionar.