=-[ 0x09 ]-==================================================================
=-[ NetSearch Ezine #8 ]-====================================================
=-[ Teclados Multimedia bajo Linux (Configuracion) ]-========================
=-[ por BlooDBaTh ]-=========================================================




Bueno en este documento vamos a tratar de explicar como nos lo podemos apaar
para poder utilizar esas fantasticas teclas que tiene nuestro teclado
multimedia y que por desgracia en linux no tienen mucha funcion, bueno pues a
partir de ahora si que lo tendran.

Existen varios metodos para conseguir configurar estas teclas, pero
basicamente se puede decir que hay dos el llamado "a pelo" y el que utiliza
algun programilla, nosotros empezaremos por lo facil.

Para la configuracion de las teclas multimedia nosotros vamos a utilizar un
programa llamado lineak el cual te lo puedes bajar de
http://lineak.sourceforge.net, es un programa muy sencillo de utilizar.

Para los que vayan algo mas escasos en conocimientos de linux empezaremos por
lo basico:

Os vais a la pagina del lineak y os bajais los sources, en tar.gz o los q
useis Debian tambien estan en .deb.

El siguiente paso es descomprimirlo e instalarlo:

tar zxfv <nombre del source>

Esto crea un directorio ahora solo debemos entrar en el he instalar el lineak
ejecutando make y make install, el make install es necesario hacerlo como
root.

Los usuarios de debian lo tiene mas facil solo ejecutar apt-get install
lineakd y solucionado.

El lineak ya tiene soportados muchos de los teclados del mercado, por lo que
el siguiente paso es mira si el nuestro lo esta para ello ejecutamos;


# lineak -l


lo que mostrara un lista con los teclado soportados de la siguiente forma;


LinEAK v0.4pre3 -- supported keyboards:


[TYPE]                 [Full name]


CEAK8                  Compaq Easy Access Keyboard (8 keys)

CIK18g                 Compaq Internet Keyboard (18 keys, grey)

CIK18b                 Compaq Internet Keyboard (18 keys, blue)

CIK13                  Compaq Internet Keyboard (13 keys)

CiP                    Compaq iPaq Keyboard (7 keys)

MNKpro                 Microsoft Natural Keyboard Pro

MIK                    Microsoft Internet Keyboard

MIKpro                 Microsoft Internet Keyboard Pro

MIKproSE               Microsoft Internet Keyboard Pro, Swedish

MOK                    Microsoft Office Keyboard

LTCD                   Logitech Cordless Desktop

LTCDP                  Logitech Cordless Desktop Pro

LTCDPa                 Logitech Cordless Desktop Pro (alternate option)

LTCDO                  Logitech Cordless Desktop Optical


y muchos mas.


Puede pasar dos cosas, que el nuestro salga o que no salga jeje, si no sale
lo que debemos hacer es conseguir que salga definiendo un perfil especifico
para el nuestro de la siguiente manera.

Lo primero que debemos hacer es apuntar el "KeyCode" que produce cada una de
las teclas al ser pulsadas, esto lo haremos con el programa xev, que lo que
hace es mostrar por pantalla lo que sucede al pulsar una tecla, asi que
ejecutamos el xev y pulsamos una tecla esto producira una salida por
pantalla;


KeyRelease event, serial 24, synthetic NO, window 0x1a00001,

       root 0x6f, subw 0x0, time 2148164406, (179,33), root:(228,98),

       state 0x10, keycode 232 (keysym 0x1008ff04, (no name)), same_screen
       YES,

       XLookupString gives 0 characters:  ""


asi el keycode para la tecla pulsada sera 232. Bueno pues eso lo repetimos
para todas las teclas.

Una vez apuntado todo, editaremos el archivo "/usr/local/etc/lineakkb.def " y
aadiremos al final de este una lineas como estas;


# Inicio del perfil del teclado

[Identificador_del_teclado]

  brandname = "La_Marca"

  modelname = "El_Modelo"

  [KEYS]

  tecla0                   = xxx

  tecla1                   = xxx

  tecla2                   = xxx

  tecla3                   = xxx

  tecla4                   = xxx

  tecla5                   = xxx

  tecla6                   = xxx

  tecla7                   = xxx

  tecla8                   = xxx

  tecla9                   = xxx

  [END KEYS]

[END Identificador_del_teclado]

# Fin del perfil del teclado


Bueno ahora solo sustituye cada cosa y te quedara algo asi;


# Inicio Tech iKeyWorks

[TECH]

  brandname = "iKeyWorks"

  odelname = "KB-7"

  [KEYS]

  Mute                     = 160

  MountCD                  = 223

  Volumen-                 = 174

  Volumen+                 = 176

  Inicio                   = 162

  Alto                     = 164

  Revobinar                = 144

  Adelantar                = 153

  EjectCD                  = 237

  Terminal                 = 235

[END KEYS]

[END TECH]


# Fin Tech iKeyWorks


Guardamos y salimos del archivo, comprobamos que nuestro teclado ahora si que
sale en la lista de teclados soportados con el lineak -l, y como seguro que
lo hemos hecho todo bien y seguro que sale ahora solo nos queda crear el
fichero de configuracion. Este archivo se creara en "/home/usuario/.lineak" y
para crearlo solo debemos ejecutar;


lineakd -c "Identificador del teclado"


Esto creara el archivo "lineakd.conf" el cual sera algo asi;


# LinEAK Configuration file for La_Marca El_Modelo

# Global settings

KeyboardType                        = TECH

CdromDevice                         = /dev/cdrom

MixerDevice                         = /dev/mixer


# Specific keys of your keyboard

tecla0             = "Funcion"

tecla1             = "Funcion"

tecla2             = "Funcion "

tecla3             = "Funcion"

tecla4             = "Funcion"

tecla5             = "Funcion"

tecla6             = "Funcion"

tecla7             = "Funcion"

tecla8             = "Funcion"

tecla9             = "Funcion"


# end lineakd.conf


Ahora solo debemos poner en cada tecla la funcion que queremos que realice y
por ultimo y para no tener que estar cargando el archivo cada vez que
iniciamos, es conveniente agregar en el archivo de inicio de las X (en el
.xsession, xinitrc. depende del windowmanager que utilices) las siguiente
linea '/usr/local/bin/lineakd -b', reiniciamos las X y con esto todo deberia
funcionar de maravilla. Si te queda alguna duda siempre puedes mirar la
documentacion XD.

Bueno decir tambien que existe un lineakconfig q es un GTK+ GUI que resulta
muy facil de usar, y tambien hay una version klineakconfig para el KDE. Todas
estan disponibles en la pagina web.

Como ya dijimos anteriormente existe otras formas y algun que otro programa
para configurar las teclas por ejemplo el blinkkey o el hotkey son programas
parecidos al lineak. Tambien existe otro forma mas "rudimentaria" digamos,
que consiste en modificar el mapa del teclado. Para ello, hay que hacer lo
siguiente;

Para configurar las teclas especiales en la consola con el paquete especifico
de Debian "console-common" (no se en otras distribuciones cual sera el
paquete de gestion del teclado "kbd"), pero bueno por lo menos aqui teneis
como hacerlo en debian.

Para empezar hay que apuntar los keycodes de todas las teclas, para ello
debeis utilizar el comando showkey de la siguiente forma;


# showkey -s

Y obtendreis una salida por tecladom, algo como esto:

0xe0 0x02 0xe0 0x82

0xe0 0x6c 0xe0 0xec

0xe0 0x65 0xe0 0xe5


Lo cual significa:

Tecla1 = e002

Tecla2 = e06c

Tecla3 = e065


Para que el sistema reconozca estos codigo de tecla ejecutar los comandos:

# setkeycodes e002 120

# setkeycodes e06c 121

# setkeycodes e065 122


Ahora ya tenemos los keycodes de cada tecla, con esto iremos a codificar la
mapa del teclado;

Descomprimimos el archivo keymaps/i386/qwerty/es.kmap.gz

# gunzip es.kmap.gz

Editarlo, aadiendo las lineas (para mas teclas de funcion _libres_ consultar
el actual mapa del teclado que teneis cargado en
"file:/etc/console/boottime.kmap.gz"):

include "windowkeys"

keycode 120 = F37

keycode 121 = F38

keycode 122 = F39

string F37 = "ls\n"

string F38 = "mail\n"

string F39 = "mc\n"


Guardais y comprimirlo;

# gzip -c9 es.kmap >es.kmap.gz


Ahora lo cargais y probar que las teclas vayan bien;

# loadkeys es.kmap.gz


Si todo va bien, hagamos que la configuracion sea definitiva:

La mejor opcion sera modificar el script init.d correspondiente a la tarea de
carga del mapa del teclado, editad el fichero "/etc/init.d/keymap.sh":


      if [ -r ${CONFDIR}/${CONFFILEROOT}.${EXT}.gz ] ; then

            setkeycodes e002 120

            setkeycodes e06c 121

            setkeycodes e065 122

            loadkeys ${CONFDIR}/${CONFFILEROOT}.${EXT}.gz

      fi


Ahora para a que se regenere el mapa del teclado que se cargara durante la
arrancada, ejecutad el comando:

# install-keymap es.kmap


Y esto es todo espero que os haya servido el documento q disfruteis de
vuestro teclado.


BlooDBaTh



0x00
