|-----------------------------------------------------------------------------------------------|
|                             TECLADO MULTIMEDIA EN LAS X MINI-COMO                             |
|-----------------------------------------------------------------------------------------------|
| 01/02/2003 |                                                                      |  FOOBAR   |
|-----------------------------------------------------------------------------------------------|
|                            _____ ___ _   _   _____     _                                      |
|                           |  ___|_ _| | | | | ____|___(_)_ __   ___                           |
|                           | |_   | || |_| | |  _| |_  / | '_ \ / _ \                          |
|                           |  _|  | ||  _  | | |___ / /| | | | |  __/                          |
|                           |_|   |___|_| |_| |_____/___|_|_| |_|\___|                          |
|                                     foobar@escomposlinux.org                                  |
|                                                                                               |
|-----------------------------------------------------------------------------------------------|



   Esto es una breve explicacin sobre como utilizar los teclados
   multimedia (esos que tienen un montn de botones, adems de las teclas
   normales) en las X.
   _________________________________________________________________

1. Introduccin.

2. Que necesitamos.

3. Buscando keycodes.

4. Asignando un mapa de teclado.

5. Asignando la tecla en el icewm.

6. Para finalizar.

7. Acerca del autor.
   _________________________________________________________________

   _________________________________________________________________

1. [5]Introduccin.

   Toda tu vida has sido feliz con tu teclado mecnico de 101 teclas, lo
   conoces como la palma de tu mano, es casi una extensin de tu cuerpo.
   Un buen da, el infierno cae sobre t, tu [novia | madre | hermana |
   etc] te regala un teclado, con la excusa de "Es que el tuyo da asco, y
   suena un montn, est es el ms moderno que he encontrado. Te va a
   encantar". T la miras con esa cara que reservas para esos momentos
   especiales, todo sonrisas y candor, mientras en tu interior te
   preguntas que demonios vas a hacer con ese monstruo que tiene teclas y
   botones que en tu vida habas visto.

   Enchufas el teclado a tu mquina, y con resignada paciencia, atiendes
   a las indicaciones que te hace ella, glosando una serie de virtudes
   que t no puedes llegar a entender: "Mira, con ese botn puedes leer
   el correo, con ese otro te conectas a la internet. Y, no te lo vas a
   creer, con este puedes escuchar nuestra cancin. No te parece
   maravilloso?". Mientras t te preguntas quien ha podido concebir la
   peregrina idea de que alguien necesite un botn para abrir tu programa
   de correo, la realidad te da un duro mazazo. El teclado no funciona.
   La desilusin se dibuja en su cara, y escuchas "Pues en mi windows
   funciona sin problemas."

   Si alguna vez has vivido esa situacin, y ahora mismo tienes un
   teclado del que no puedes aprovechar la mitad de las cosas, este es tu
   mini-howto.
   _________________________________________________________________

   _________________________________________________________________

2. Que necesitamos.

   Aunque en este documento voy a dedicarlo especficamente a la
   asignacin de esos botones a programas en el manejador de ventanas
   icewm, se puede extender perfectamente a cualquier otro manejador. Sin
   embargo, existiendo icewm, no puedo concebir que alguien quiera usar
   otra cosa.

   Los programas que vamos utilizar son dos, xev y xmodmap. Ambos se
   encuentran en el paquete xbase-clients de las X, por lo que es de
   esperar que cualquiera que tenga unas X corriendo en su mquina tendr
   acceso a ellos.

   Bsicamente lo que vamos a hacer es buscar los keycodes de los
   botoncitos de marras, amn de esas teclas con smbolos raros al lado
   de ALT y ALT GR, utilizando xev, y les vamos a asignar un mapa de
   teclado con xmodmap de modo que puedan ser utilizadas por otras
   aplicaciones (en concreto, vamos a utilizarlas como atajos de teclado
   para el icewm).
   _________________________________________________________________

   _________________________________________________________________

3. Buscando keycodes.

   xev es un programa relativamente sencillo, que captura eventos de las
   X (osea, pulsaciones de teclas, para entendernos), y muestra unas
   lneas de cdigo, con informacin de la tecla pulsada. Tambin muestra
   informacin del movimiento del ratn.

   Lanzamos xev desde un emulador de terminal (xterm, aterm, etc) y vemos
   que salen un montn de lneas, de este estilo:

     KeyRelease event, serial 26, synthetic NO, window 0x1200001, root
     0x56, subw 0x0, time 392833442, (-611,690), root:(81,713), state
     0x10, keycode 222 (keysym 0x0, NoSymbol), same_screen YES,
     XLookupString gives 0 characters: ""

   Las ignoramos, y nos centramos en lo que nos interesa, los botoncitos.
   El avispado lector ya se habr adelantado al autor, pulsando botones a
   lo loco, y comprobando que por cada pulsacin se repiten dos bloques
   de datos, KeyPress event y KeyRelease event, ambos con la misma
   informacin. La parte relevante de toda esta informacin es la que
   hace referencia a los keycodes. As que olvidndonos de todo lo dems,
   nos quedamos con ese valor.
   _________________________________________________________________

   _________________________________________________________________

4. Asignando un mapa de teclado.

   xmodmap es el otro programa que vamos a utilizar. Para saber que mapa
   de teclado estamos utlizando, lanzaremos xmodmap con el argumento -pke
   | less. De este modo veremos que el keycode 222 no tiene asignado
   ningn mapa de teclado, lo que tiene sentido, ya que es una tecla que
   de momento slo hace bonito en nuestro flamante teclado.

   Utilizando nuestro editor favorito, creamos un fichero de texto tal
   que ~/.xmodmap-multimedia, y en el introducimos la siguiente lnea:

     keycode 222 = F25

   Hemos utlizado F25 como mapa de teclado porque es bastante improbable
   que ya est asignado (el autor de momento no ha encontrado ningn
   teclado con ms de doce teclas de funcin).

   Una vez guardado el fichero, solo resta lanzar el comando xmodmap
   ~/.xmodmap-multimedia, y hacer xmodmap | grep F25, para comprobar que
   todo ha ido bien.
   _________________________________________________________________

   _________________________________________________________________

5. Asignando la tecla en el icewm.

   Una de las muchas maravillas del icewm es la capacidad de poder
   prescindir completamente del ratn, pudiendo hacer cualquier cosa con
   distintas combinaciones de teclas. Para ello, basta con editar, o
   crear, el fichero ~/.icewm/keys, con una sintaxis realmente sencilla:

     key "mapa de teclado" comando a ejecutar.

   Digamos que, deseamos asignar al botn del ejemplo la ejecucin del
   programa grun. Para ello utilizaramos la siguiente lnea:

     key "F25"grun

   Reiniciamos el icewm, y comprobamos que al pulsar el botn, se nos
   abre la aplicacin.

   Ya est, ahora slo nos queda aadir una lnea xmodmap
   ~/xmodmap-multimedia a nuestro fichero .xinitrc (o .xsession, si
   utilizamos un login grfico), para que cuando lancemos nuestras X
   podamos usar todos esos simpticos botoncitos que nos hacen la vida
   ms fcil (o eso dice la publicidad).
   _________________________________________________________________

   _________________________________________________________________

6. Para finalizar.

   Con algunos de estos teclados funciona un programa llamado hotkeys.
   Basta con lanzarlo con la opcin -t <tipo de teclado>. Antes es
   conveniente crear un fichero ~/.hotkeys con las opciones que nos sean
   de utilidad. Basta con copiar el fichero /etc/hotkeys.conf y ponerlo a
   nuestro gusto. Sin embargo, no funciona con todos los teclados.
   Personalmente prefiero el mtodo anterior.

   Dicho esto, tengo que reconocer que despus de haber pasado bastante
   tiempo con uno de estos teclados, no he sido capaz de acostumbrarme a
   usar esos botones. De hecho, ahora mismo slo tengo uno de ellos
   funcional, el de suspender la mquina, enlazado con el programa grun.
   Y hay das que aoro mi viejo teclado mcanico de 101 teclas.
   _________________________________________________________________

   _________________________________________________________________

7. Acerca del autor.

   Si deseas contactar conmigo para ponerme a caer de un burro por la
   inutilidad de este documento, o simplemente tienes curiosidad por
   saber que clase de friki se esconde tras Benjamn Albiana, puedes
   enviarme un correo a foobar@escomposlinux.org, o encontrarme en el
   canal #escomposlinux de la red irc.escomposlinux.org, con el nick
   foobar.
   _________________________________________________________________

