sábado, septiembre 18, 2010

Cómo configurar las teclas para darle funciones específicas a cada una de ellas?

Esto es tan fácil como complicado... si te pones a investigar no acabarás nunca... se supone que cada botón tiene un código... e072, e071, ese código lo puedes obtener con "showkey -s" (teoría porque no le entiendo nada a la salida aún... a menos que debamos transformar el código de HEX a español), pero bueno, se supone que "showkey -k" nos muestra la actual tarea que hace nuestro botón, se supone que con "setkeycodes e071 150" estaríamos enlazando el botón de código e071 con la función 150 del kernel, esa función la podemos ver en "/usr/include/linux/input.h", si le haces un cat a ese archivo y pones un grep para extraer sólo que lo que buscas, por ejemplo:

"cat /usr/include/linux/input.h|grep 150"


con eso podrás ver que función cumple... de todas maneras si tienes botones que no hacen nada, revisa el archivo "/var/log/messages" para ver que código produce el botón y darle una función, yo les puse "abrir navegador" y "expulsar CD"... lo malo es que si lo configuras, sólo durará hasta que reinicies...

Así que para dar permanente, podemos hacer uso de /etc/rc.local
para que quede de manera permanente...
en mi caso, /var/log/messages dice:

Sep 18 03:26:49 gateway kernel: atkbd.c: Unknown key pressed (translated set 2, code 0xf1 on isa0060/serio0).
Sep 18 03:26:49 gateway kernel: atkbd.c: Use 'setkeycodes e071 ' to make it known.
Sep 18 03:26:49 gateway kernel: atkbd.c: Unknown key released (translated set 2, code 0xf1 on isa0060/serio0).
Sep 18 03:26:49 gateway kernel: atkbd.c: Use 'setkeycodes e071 ' to make it known.

Yo hago:
cat /usr/include/linux/input.h

Busco la función
#define KEY_WWW 150 /* AL Internet Browser */

Y:
setkeycodes e071 150

Voilà!
Al presionar el botón tendremos funcionando la función que hemos dado...
Claro, también está xmodmap el cual en teoría debería dar las funciones del Xorg, pero a mi no me funcionaron ni por si acaso... sólo las del kernel... aunque debo decir que tengo unas teclas con problemas... la del Touchpad no tiene asignada una tarea, y HAL no informa que tenga una función asignada... pero aún así bloquea el touchpad y lo mata... hasta suspender y resumir y vuelve a funcionar como debe... este bug lo estoy tratando en el Bugtrack de Fedora...
https://bugzilla.redhat.com/show_bug.cgi?id=635219

2 comentarios:

david santos dijo...

VIVA CHILE

Puro, Chile, es tu cielo azulado,
puras brisas te cruzan también,
y tu campo de flores bordado
es la copia feliz del eden
Majestuosa es la blanca montaña
que te dio por baluarte el Señor,
y ese mar que tranquilo te baña
te promete futuro esplendor.

Dulce Patria, recibe los votos
con que Chile en tus aras juró.
Que o la tumba serás de los libres,
o el asilo contra la opresión.

Maximiliano dijo...

200 años desde la independencia de los españoles... y aquí estamos, aún nos falta unir todo Chile, crear cientos de cosas, pero para allá vamos :D

Saludos David!