Reasignar teclas thinkpad
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.