PDA

Ver la Versión Completa : Aprovechar las teclas especiales en Linux



RGB
27-abr-2008, 11:41
Muchos teclados, especialmente en las computadoras portátiles, tienen "teclas especiales" para lanzar y/o controlar aplicaciones, pero generalmente en Linux no funcionan... o parecen no funcionar.
Existen grandes posibilidades de que esas teclas que considerabas inútiles estén ya reconocidas por tu sistema y que solo tengas que "mapearlas" con un "nombre" para poder darles una función.
Si ese es el caso (y casi seguramente lo es) aprovechar esas teclas "muertas" es tan simple que vale la pena perder cinco minutos en ellas.

Aquí vamos.
Abre una consola, escribe

xev
y presiona enter. Luego de una serie de mensajes no legibles por los seres humanos convencionales, mensajes que podremos cómodamente ignorar, aparecerá una pequeña ventana con fondo blanco y un rectángulo negro en ella llamada "Event tester". Si con esa ventana en primer plano presionas una tecla, por ejemplo la "a", en la consola verás algo por el estilo:


KeyPress event, serial 31, synthetic NO, window 0x3800001,
root 0x6c, subw 0x0, time 2397693189, (71,-14), root: (1317,41),
state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
XmbLookupString gives 1 bytes: (61) "a"
XFilterEvent returns: False

KeyRelease event, serial 31, synthetic NO, window 0x3800001,
root 0x6c, subw 0x0, time 2397693261, (71,-14), root: (1317,41),
state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
XFilterEvent returns: False


Hay dos "eventos" registrados, uno al presionar la tecla y el otro al soltarla. El dato importante para nosotros se encuentra en la tercer línea de cada "evento" y es el número que acompaña la palabra "keycode", que en el caso de la a es el 38.
Presiona ahora las teclas especiales de tu teclado, tomando nota de los "keycode" correspondientes.
El siguiente paso es crear, en tu directorio home, un archivo llamado .Xmodmap (¡atención al punto inicial y a la mayúscula! Si el archivo no está oculto -el punto inicial- no funcionará) que contenga una línea por cada tecla especial, todas con la siguiente estructura:


keycode <número dado por xev> = <nombre que le darás a la tecla>

por ejemplo, mi archivo (¡el cual funcionará solamente en mi máquina!) es el siguiente:


keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume
keycode 178 = F13
keycode 162 = F14
keycode 164 = F15
keycode 144 = F16
keycode 153 = F17

Las dos primeras líneas son el control de volumen (girando a la derecha y a la izquierda la "ruedita"), la tercera es la "tecla internet" y las otras son las famosas "reproducir/pausa", "detener", "pista anterior" y "pista siguiente".
La próxima vez que inicies tu sesión, las teclas así definidas estarán disponibles para ser utilizadas donde quieras. Por ejemplo, en la configuración de accesos rápidos de kmix he asignado la tecla XF86AudioLowerVolume a "Decrementar el volumen del canal maestro" y XF86AudioRaiseVolume a "Incrementar el volumen del canal maestro", mientras que en amarok asigné las teclas desde la F14 a la F17 para aquello que les corresponde (además, Ctrl+F14 me maximiza o minimiza la ventana principal y Ctrl+F15 me limpia la lista de reproducción); finalmente, con un click derecho sobre el menú K seleccioné el editor de menú, asigné la tecla F13 al Firefox y la combinación Ctrl + F13 para que abriera mi home.
¡Listo!

Nota para los ansiosos: si no puedes esperar a reiniciar tu sesión (¡el estrés te matará! :p ) escribe en la consola:


xmodmap -e 'keycode <número> = <nombre de la tecla>'

(¡atención a las comillas simples!). Por ejemplo:


xmodmap -e 'keycode 178 = F13'

y ya tienes tu tecla F13 disponible.


Información recopilada de diferentes fuentes de Internet y con el famoso método de prueba/error.

Defton
28-abr-2008, 05:14
creo que esto ya se avia posteado

http://www.forosuse.org/forosuse/showthread.php?t=261

karlggest
28-abr-2008, 11:12
creo que esto ya se avia posteado

http://www.forosuse.org/forosuse/showthread.php?t=261
Cierto, iría mejor como complemento del anterior que tú posteas que como tema nuevo.

Salud!!

RGB
29-abr-2008, 22:28
creo que esto ya se avia posteado

http://www.forosuse.org/forosuse/showthread.php?t=261

¡Ups! No me había dado cuenta...
Definitivamente, debo refinar mis capacidades de búsqueda antes de volver a postear algo...

migtei
30-abr-2008, 20:37
Buen resumen, y para profundizar la información sobre el tema es muy recomendable este howto:
http://gentoo-wiki.com/HOWTO_Use_Multimedia_Keys
Suerte...

gasl
17-sep-2008, 18:47
y que pasa si la tecla al presionarla no da ninguna salida en la consola?.
¿como se puede agregar y hacerla funcionar?......
A mi me pasa eso. Tengo varias teclas muertas. por ejemplo Eject, Internet, etc. Y la consola, como he dicho, usando XEV, no me da ninguna salida.

Salud.

Theseo
17-sep-2008, 23:00
A mi la tecla FN del portatil ni si quiera la reconoce.

RGB
18-sep-2008, 12:16
En el link dado por migtei más arriba se habla del tema, en la sección "Getting bizarre keyboards working". No lo he probado ya que en mi caso solo una tecla no responde. Antes de hacer algo en mi sistema suelo considerar el valor del cociente Beneficio/Esfuerzo: en el caso de una única tecla da un valor demasiado bajo como para preocuparme... :p