=-[ 0x09 ]-================================================================== =-[ NetSearch Ezine #8 ]-==================================================== =-[ Teclados Multimedia bajo Linux (Configuracion) ]-======================== =-[ por BlooDBaTh ]-========================================================= Bueno en este documento vamos a tratar de explicar como nos lo podemos apaņar 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 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 aņadiremos 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, aņadiendo 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