<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Larga vida al Software Libre! &#187; Teclado</title>
	<atom:link href="http://denjohx.wordpress.com/tag/teclado/feed/" rel="self" type="application/rss+xml" />
	<link>http://denjohx.wordpress.com</link>
	<description>Debian, Programacion, Electrónica, Ciencias y otras legumbres</description>
	<lastBuildDate>Wed, 25 Nov 2009 06:02:32 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='denjohx.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/a203ae9c6213c70b0c4524cf1532eb4b?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Larga vida al Software Libre! &#187; Teclado</title>
		<link>http://denjohx.wordpress.com</link>
	</image>
			<item>
		<title>Configurando un teclado multimedia en Debian GNU/Linux</title>
		<link>http://denjohx.wordpress.com/2007/09/29/configurando-un-teclado-multimedia-en-debian-gnulinux/</link>
		<comments>http://denjohx.wordpress.com/2007/09/29/configurando-un-teclado-multimedia-en-debian-gnulinux/#comments</comments>
		<pubDate>Sun, 30 Sep 2007 05:09:01 +0000</pubDate>
		<dc:creator>denjohx</dc:creator>
				<category><![CDATA[Debian GNU/Linux]]></category>
		<category><![CDATA[Guías]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[guía]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Teclado]]></category>
		<category><![CDATA[xev]]></category>
		<category><![CDATA[xmodmap]]></category>

		<guid isPermaLink="false">http://denjohx.wordpress.com/2007/09/29/configurando-un-teclado-multimedia-en-debian-gnulinux/</guid>
		<description><![CDATA[Es un martes por la mañana, caminas hacia tu pc dispuesto a otro largo día de trabajo, quieres  terminar la tésis o redactar el nuevo artículo para la editorial (del que ya te atrasaste un día), o quizá solo quieras seguir ligando a la chica del otro lado del mundo que conociste &#8220;por accidente&#8221; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=denjohx.wordpress.com&blog=1734098&post=4&subd=denjohx&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Es un martes por la mañana, caminas hacia tu pc dispuesto a otro largo día de trabajo, quieres  terminar la tésis o redactar el nuevo artículo para la editorial (del que ya te atrasaste un día), o quizá solo quieras seguir ligando a la chica del otro lado del mundo que conociste &#8220;por accidente&#8221; el otro día en su hi5. Te sientas frente al ordenador con tu taza de café de todos los días, excepto que hoy tienes una extraña sensación&#8230;</p>
<p><span id="more-4"></span></p>
<p>Es entonces es cuando lo ves y te acuerdas:  está allí, sobre tu escritorio, estático, vano, inservible. Sientes esa extraño cosquilleo en la nuca, ese sentimiento mezcla de  miedo, enojo y frustración, al recordar que ayer solo dejaste el ordenador porque el teclado que no te acuerdas desde cuando lo tienes ha dejado de responder.Ese al que nunca lo tomaste en serio porque era solo algo más, ahora ya no lo puedes usar. Ese con el que escribiste el mail que te salvo el empleo, o el que solo usas para la mensajería instantánea, ha dejado de ser útil, o al que ya no se le veían las teclas &#8220;w a s d&#8221; porque todo el día juegas al Alien Arena o al Tremolous&#8230; y sin embargo nunca lo tomaste en serio.</p>
<p>Ha llegado el día en que tu teclado ha dejado de funcionar bien, es hora de olvidarte de él, echarlo a la basura (no&#8230; mejor reciclarlo <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) y comprar uno nuevo.</p>
<p>O simplemente y sencillamente te has comprado un nuevo pc, o conocen lo geek que eres y alguien te regala un teclado nuevo.</p>
<p>Ahora todo ha cambiado, ves tu nuevo y flamante teclado, todo lleno de botoncillos que quizá nunca llegues a usar (o que en verdad no sirven de nada :S ). El problema está en que ninguno funciona, por mas que los oprimes no sucede nada, o solo funcionan ciertas teclas y las demás bien gracias. Y lo peor de todo es que tus amigos/familiares/colegas te dicen que en el hasefrochito si funcionan bien todos, que debe ser que tu maravillosa Debian no puede con ese simple teclado, o es que GNU/Linux no es para estas cosas&#8230; Pero puedes demostrarles que tu puedes hacer con esas teclas lo que sea, desde abrir el amarok (o el listen), hasta activar el sistema de riego del jardín (eso queda para otra guía <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ) y configurar el teclado en menos de 10 minutos.</p>
<h3>Bueno, ya estuvo bueno de parloteo, ahora vamos al grano.</h3>
<p>Los teclados multimedia a menudo necesitan cds o diskettes de instalación que solo funcionan en hase, pero no quiere decir que el teclado en sí no envíe datos al pc si no ha instalado ese software, ya que lo único que éste hace es decirle al sistema como actuar cuando sean pulsados los botones extra.</p>
<p>En GNU/Linux es solo cuestión de hacerlo manualmente, identificando los botones y dictando las acciones que se realizarán.</p>
<p>Esta guía trata acerca de como configurar estas teclas <strong>dentro de una sesión gráfica</strong>, para que puedan ser configurados en <strong>cualquier escritorio</strong>,  pensado para usar herramientas comúnes entre distintas distros y <strong>sin instalar ningún nuevo demonio</strong> (cosa que hacen ciertos programas automatizados)</p>
<h3> Primero: Determinando los keycodes.</h3>
<p>Los keycodes son la traducción que hace el sistema a los datos enviados por el teclado. Cada tecla genera keycodes distintos pero basados en estándares, (al menos en el caso de 104-105 teclas que posee comúnmente un teclado de escritura occidental) en el caso de los botones multimedia, y ya que no existe un estándar propiamente dicho, los fabricantes les colocan los que les venga en gana a los botones, total si incluyen un sofware que lo configure todo pues&#8230;.</p>
<p>Para saber que keycode corresponde a cada uno de los botones usamos una aplicación llamada &#8220;xev&#8221; que se especializa en informar de los eventos que ocurran en X, debemos lanzarla desde un emulador de terminal (por ejemplo konsole, gnome-terminal, xterm, yakuake, etc.) estando en el servidor gráfico (no en las tty):</p>
<p><code>~$ xev</code></p>
<p>Luego de esto aparecerá una ventanita llamada &#8220;Event Tester&#8221; que es la que &#8220;siente&#8221; todo lo que haga sobre ella el mouse y el teclado, mientras que en en la terminal desde donde la hemos lanzado van apareciendo los eventos.</p>
<p>Teniendo seleccionado el Event Tester vamos presionando los botones multimedia uno a uno y viendo lo que sale en la terminal. En mi caso al presionar el boton &#8220;Play&#8221;:<br />
<code>KeyRelease event, serial 31, synthetic NO, window 0x2e00001,<br />
root 0x63, subw 0x0, time 1412932703, (92,-5), root:(163,415),<br />
state 0x10, <strong>keycode 162</strong> (keysym 0x0, <strong>NoSymbol</strong>), same_screen YES,<br />
XLookupString gives 0 bytes:<br />
XFilterEvent returns: False</code></p>
<p>Como ven aparece el <strong>keycode 162</strong> y además <strong>NoSymbol</strong>, esto significa que no se ha definido ninguna acción o caractér para el botón. Ahora lo que falta hacer es que el sistema interprete de alguna forma estos códigos.</p>
<h3>Segundo: Definiendo los símbolos para los keycodes usando xmodmap.</h3>
<p>xmodmap es una sencilla aplicacion de consola que permite modificar &#8216;al vuelo&#8217; el mapa de caracteres del teclado para las X (agregando, eliminando o intercambiando símbolos).</p>
<p>Primero creamos un fichero de texto sin formato que contenga los keycodes y sus respectivos símbolos, uno por línea, de la siguiente forma:<br />
<code><br />
keycode N = símbolo</code></p>
<p><code></code>Donde N es el número de keycode que obtuvimos con xev, y símbolo es cualquier nombre con el que querramos identificar al botón en cuestión.</p>
<p>Ojo que debe ser un fichero de texto plano sin formato, no vale hacerlos con opeoffice, koffice y demás editores que insertan formatos raros a los documentos, debe ser texto puro y sin formatos especiales (pueden hacerse por ejemplo con kate, gedit, vi, etc.).</p>
<p>El fichero lo guardamos con el nombre <code>.xmodmap</code> o <code>.xmodmaprc</code> en nuestro directorio home, en realidad el nombre puede ser cualquiera que se os antoje, pero si lleva alguno de estos es posible que los entornos de escritorio y/o dependiendo de la distro que usemos, sea detectado y aplicado automáticamente al próximo inicio de sesión.</p>
<p>Noten que el nombre del fichero comienza con un punto, esto significa que estará oculto y no nos estorbará al ver los archivos guardados en nuestro home.</p>
<p>Como ejemplo les dejo mi .xmodmaprc:<br />
<code><br />
keycode 144 = XF86AudioPrev<br />
keycode 153 = XF86AudioNext<br />
keycode 160 = XF86AudioMute<br />
keycode 161 = XF86Calculator<br />
keycode 162 = XF86AudioPlay<br />
keycode 164 = XF86AudioStop<br />
keycode 174 = XF86AudioLowerVolume<br />
keycode 176 = XF86AudioRaiseVolume<br />
keycode 178 = XF86HomePage<br />
keycode 222 = XF86PowerDown<br />
keycode 223 = XF86Sleep<br />
keycode 227 = XF86WakeUp<br />
keycode 229 = XF86Search<br />
keycode 230 = XF86Favorites<br />
keycode 231 = XF86Refresh<br />
keycode 232 = XF86Stop<br />
keycode 233 = XF86Forward<br />
keycode 234 = XF86Back<br />
keycode 235 = XF86MyComputer<br />
keycode 236 = XF86Mail<br />
keycode 237 = XF86AudioMedia<br />
</code></p>
<p>Si se preguntan de donde saqué esos nombres para los botones &#8230;¡que tan raros que se ven!, &#8230;. bueno pues están definidos en el fichero <code>/usr/include/X11/XF86keysym.h</code> y si utilizamos estos pues tenemos la ventaja de que muchas aplicaciones traen predefinidos los atajos de teclas con estos nombres, por lo que no tenderemos que configurarlas después de terminar con esta guía <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<h3> Aplicando las configuraciones</h3>
<p>Para terminar y ver los resultados de todo lo que hemos hecho hasta ahora pues es tiempo de aplicar los cambios:<br />
<code>~$ xmodmap .xmodmaprc</code> (sustituyan el .xmodmap por el nombre de su fichero en caso de haberle puesto otro)<br />
Ahora solo falta probar las teclas de nuevo con el xev, despues de aplicar los cambios con xmodmap el resultado de presionar alguna tecla especial (en mi caso):<br />
<code><br />
KeyRelease event, serial 31, synthetic NO, window 0x2e00001,<br />
root 0x63, subw 0x0, time 1418716437, (102,-28), root:(106,413),<br />
state 0x0, <strong>keycode 174</strong> (keysym 0x1008ff11, <strong>XF86AudioLowerVolume</strong>), same_screen YES,<br />
XLookupString gives 0 bytes:<br />
XFilterEvent returns: False<br />
</code><br />
Como ven ahora aparece que el símbolo XF86AudioLowerVolume está asignado al keycode 174, muy bien, ¿no creen? <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<h4>Haciendo que se apliquen los cambios al iniciar sesión.</h4>
<p>El problema ahora es que los cambios solo se mantienen mientras no salgan de la sesión, en algunos casos (como he escrito arriba) se autodetectará el fichero de configuración y se aplicará sin problemas, si esto no ocurre tenemos la opción de hacerlo a mano todas las veces (con una simple llamada a xmodmap y pasándole como argumento el fichero que hemos creado), o incluír el comando de llamada a xmodmap en el autoarranque del escritorio que utilicemos (KDE, GNOME, Xfce, Fluxbox, Blackbox, etc.) &#8230;en esta guía solo diere <strong>cómo hacerlo para KDE</strong>:</p>
<p>Creamos otro fichero de texto en el directorio ~/.kde/Autostart/ que contenga el comando hemos utilizado para aplicar los cambios.</p>
<p>Si al fichero de los keycodes le han puesto el nombre que sugería (.xmodmaprc) el contenido de este otro fichero sería:</p>
<p><code>#!/bin/bash<br />
xmodmap .xmodmaprc<br />
exit</code></p>
<p><strong>Nota:</strong> Este fichero debe escribirse en texto plano y tener la extensión .sh (script para sh/bash), un ejemplo de nombre para este archivo podría ser <code>Script_teclas.sh</code>. Además este fichero ha de tener permisos de ejecución, para dar permisos de ejecución a cualquier fichero se puede usar  el comando <code>$ chmod +x Fichero</code>.</p>
<p>Luego ya solo queda configurar las aplicaciones que querramos lanzar con con los botones, en kde se puede hacer desde Centro de Control &#8211;&gt; Regionalidad y accesibilidad &#8211;&gt; Accesos rápidos de teclado.<br />
Para controlar aplicaciones como amarok, las configuraciones se hacen en el mismo programa, donde se le puedan indicar accesos rápidos globales de teclado.</p>
<p>Si se quiere controlar algún programa que no posea accesos globales se puede optar por realizar un script (cosa que va mas allá de los alcances de esta guía) y configurar un acceso rápido desde el Centro de control para lanzarlo.</p>
<p>Espero que esta guía le sirva a alguien (si es que alguien la lee <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  ) y que comenten acerca de como les ha parecido y también si tienen alguna sugerencia para mejorarla.<br />
Saludos.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/denjohx.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/denjohx.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/denjohx.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/denjohx.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/denjohx.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/denjohx.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/denjohx.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/denjohx.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/denjohx.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/denjohx.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/denjohx.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/denjohx.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=denjohx.wordpress.com&blog=1734098&post=4&subd=denjohx&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://denjohx.wordpress.com/2007/09/29/configurando-un-teclado-multimedia-en-debian-gnulinux/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/24e56784d5057d83da577392f2fa3093?s=96&#38;d=identicon&#38;r=R" medium="image">
			<media:title type="html">denjohx</media:title>
		</media:content>
	</item>
	</channel>
</rss>