<?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>Julien Pecqueur - Ingénieur CNAM &#187; Hack</title>
	<atom:link href="http://www.julienpecqueur.com/wordpress/tag/hack/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.julienpecqueur.com/wordpress</link>
	<description>Unix, code &#38; web from Picardie!</description>
	<lastBuildDate>Thu, 29 Jul 2010 21:19:07 +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>wmii &#124; statusbar &#8211; suite&#8230;</title>
		<link>http://www.julienpecqueur.com/wordpress/2009/01/wmii-statusbar-suite/</link>
		<comments>http://www.julienpecqueur.com/wordpress/2009/01/wmii-statusbar-suite/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 21:38:16 +0000</pubDate>
		<dc:creator>Julien</dc:creator>
				<category><![CDATA[Archlinux]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MSI Wind U100 & U100x]]></category>
		<category><![CDATA[wmii]]></category>
		<category><![CDATA[Hack]]></category>

		<guid isPermaLink="false">http://www.julienpecqueur.com/wordpress/?p=141</guid>
		<description><![CDATA[Hier je vous ai presenté un début de hack pour une barre de statut personalisée&#8230; J&#8217;ai ajouté quelques éléments incontournables pour un laptop : le reseau wifi sur lequel on est connecté et la qualité du signal. Continuons donc sur &#8230; <a href="http://www.julienpecqueur.com/wordpress/2009/01/wmii-statusbar-suite/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hier je vous ai presenté un début de hack pour une barre de statut personalisée&#8230; J&#8217;ai ajouté quelques éléments incontournables pour un laptop : le reseau wifi sur lequel on est connecté et la qualité du signal.</p>
<p><a href="http://julienpecqueur.com/uploads/wmii_statusbar.png"><img class="alignnone" style="border: 0pt none;" title="wmii statusbar" src="http://julienpecqueur.com/uploads/wmii_statusbar1.png" alt="wmii statusbar" width="539" height="17" /></a></p>
<p><a href="http://www.julienpecqueur.com/wordpress/wp-content/uploads/2009/01/wmii_statusbar.png"> </a></p>
<p><strong>Continuons donc sur notre lancée et détaillons le bout de code : la fonction status.</strong></p>
<div class="wp-caption alignnone" style="width: 510px"><a href="http://julienpecqueur.com/uploads/wmii_code.png"><img title="Vim - code editor" src="http://julienpecqueur.com/uploads/wmii_code.png" alt="Vim - code editor" width="500" height="237" /></a><p class="wp-caption-text">Vim - code editor</p></div>
<p>La commande <em>&#8220;echo -n&#8221;</em> englobe le reste des commandes qui suivent (les <em>&#8220;\&#8221;</em> permettent d&#8217;aller à la ligne sur l&#8217;éditeur sans sortir de la commande).</p>
<p style="text-align: left;"><span style="text-decoration: underline;"><strong><code>'Cpu:' `{cpufreq-info -f | sed 's/000//;'} 'MHz' '|' \</code></strong></span></p>
<p>Comme nous somme dans la commande echo, pour afficher du texte <em>&#8216;Cpu:</em>&#8216; il suffit de le placer dans des tildes &#8216;. Suite à ce morceau de texte, nous trouvons une série de commandes de placées dans un conteneur<strong>`{</strong>commande1 <strong>|</strong> commande2<strong>}</strong>. Les commandes sont séparées par un <em>|. </em>C&#8217;est un principe de base des commandes UNIX.</p>
<p>La première commande <em>&#8220;cpufreq-info -f&#8221;</em> . <em>cpufreq-info</em> est un programme qu&#8217;il faut installer sur le système et qui permet d&#8217;afficher les infos sur le processeur. Ici, utilisé avec le paramètre <em>&#8220;-f&#8221;</em> il nous retourne la fréquence en kHz.</p>
<p>La seconde commande &#8220;sed &#8216;s/000//;&#8217;&#8221; appelle sed un editeur de texte vieux comme le monde afin de supprimer une chaine de &#8217;000&#8242; car la fréquence retournée est en kHz (100000kHz = 100MHz).</p>
<p style="text-align: left;"><span style="text-decoration: underline;"><strong><code>'Temp:' `{cat /proc/acpi/thermal_zone/THRM/temperature | grep 'temperature' | sed 's/.*://;'} '|' \</code></strong></span></p>
<p>Nous passons directement aux nouveaux éléments <em>&#8220;cat /proc/acpi/thermal_zone/THRM/temperature&#8221;</em> suivi de <em>&#8220;grep &#8216;temperature&#8217;&#8221;</em> et enfin la commande <em>&#8220;sed&#8221; </em>pour mettre en forme la chaine de caractère.</p>
<p>La commande cat est une commande du système de base Linux et permet d&#8217;afficher un fichier de texte. Ici elle affiche le contenu du fichier système <em>&#8220;/proc/acpi/thermal_zone/THRM/temperature&#8221;</em>. Le noyeau Linux maintient à jour de nombreux pseudo-fichiers pour communiquer avec le reste du système (plus de détails <a title="http://okki666.free.fr/docmaster/articles/linux070.htm" href="http://okki666.free.fr/docmaster/articles/linux070.htm" target="_blank">ici</a> par exemple).</p>
<p style="text-align: left;">Comme la commande cat nous sort plusieurs lignes, la commande grep permet d&#8217;afficher la première qui contient &#8216;temperature&#8217;. A ce stade il ne reste qu&#8217;a nettoyer la ligne restante avec l&#8217;éditeur sed.</p>
<p style="text-align: left;"><span style="text-decoration: underline;"><strong><code>'Bat:' `{cat /proc/acpi/battery/BAT1/state | grep remaining | sed 's/.*://;'} '/' `{cat /proc/acpi/battery/BAT1/info | grep 'design capacity:' | sed 's/.*://;'} '|' \</code></strong></span></p>
<p>Cette suite de commandes reprend exactement le même principe que celle pour la température.</p>
<p style="text-align: left;"><span style="text-decoration: underline;"><strong><code>'Wifi:' `{iwconfig wlan0 | grep 'ESSID:' | sed 's/.*://;'} `{iwconfig wlan0 | grep Quality | sed 's/.*y=//;' | sed 's/.100.*//;'} '% |' \</code></strong></span></p>
<p>A ce stade vous devez être en mesure de comprendre globalement le principe de cette suite de commandes.<em> iwconfig</em> permet d&#8217;afficher ou modifier les infos des cartes wireless (ici la carte wlan0). Nous récupérons la ligne contenant le &#8216;ESSID&#8217; et nous la nettoyons. Même procédure pour la qualité du signal. A noter qu&#8217;ici nous appelons 2 fois la commande sed car il y a des chaines de caractères à enlever avant et après le champ désiré!</p>
<p style="text-align: left;"><span style="text-decoration: underline;"><strong><code>`{date}</code></strong></span></p>
<p>Enfin, la commande la plus simple &#8211; on aurait du commencer par elle <img src='http://www.julienpecqueur.com/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  &#8211; date qui retourne la date complète.</p>
<p>Alors à vos hacks !!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.julienpecqueur.com/wordpress/2009/01/wmii-statusbar-suite/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
