Diferencia entre revisiones de «Reasignar teclas thinkpad»

De Recursos Educativos
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
mSin resumen de edición
 
(No se muestran 2 ediciones intermedias del mismo usuario)
Línea 9: Línea 9:


No tengo aun claro como hacer el cambio permanente.
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 <code>~/.Xmodmap</code> 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 <code>xkb</code>.
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 [https://unix.stackexchange.com/questions/202891/how-to-know-whether-wayland-or-x11-is-being-used 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 <code>xev</code>). Buscamos que nombre da XKB a estos keycodes en <code>/usr/share/X11/xkb/keycodes/evdev</code> y obtenemos que son <code>I166</code> y <code>I167</code>.
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 <code>PGUP</code> y <code>PGDN</code>.
Con esta información nos vamos a <code>/usr/share/X11/xkb/symbols/</code>. Alli buscamos <code>PGUP</code> y <code>PGDN</code> y vemos que los eventos que generan son <code>Prior</code> y <code>Next</code>.
Esos son los eventos que queremos generar con <code>I166</code> y <code>I167</code>. Buscamos <code>I166</code> y vemos que está definida en el fichero <code>inet</code>.
Hacemos el siguiente cambio:
Antes:
<nowiki>
    key <I166>  {      [ XF86Back              ]      };
    key <I167>  {      [ XF86Forward          ]      };
</nowiki>
Despues:
<nowiki>
//  key <I166>  {      [ XF86Back              ]      };
//  key <I167>  {      [ XF86Forward          ]      };
    key <I166>  {      [ Prior                ]      };
    key <I167>  {      [ Next                  ]      };</nowiki>
Y listo. A funcionar.


[[Category:Tips]]
[[Category:Tips]]

Revisión actual - 11:34 21 may 2020

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.