Diferencia entre revisiones de «Reasignar teclas thinkpad»
Sin resumen de edición |
Sin resumen de edición |
||
Línea 10: | Línea 10: | ||
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>. | |||
== Solucion con XKB == | |||
/usr/share/X11/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 del 20:39 22 may 2018
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
.
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.