<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Artisan Numérique</title>
  <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1177"/>
  <link rel="self" type="application/atom+xml" href="http://artisan.karma-lab.net/node/1177/atom/feed"/>
  <id>http://artisan.karma-lab.net/node/1177/atom/feed</id>
  <updated>2008-10-02T19:54:36+02:00</updated>
  <entry>
    <title>Rendre utilisable FireFox sous KDE</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1177" />
    <id>http://artisan.karma-lab.net/node/1177</id>
    <published>2007-09-26T00:10:00+02:00</published>
    <updated>2008-10-02T19:54:36+02:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="FireFox" />
    <category term="Aucun" />
    <category term="OK" />
    <category term="Tutoriel" />
    <summary type="html"><![CDATA[<p>
  Oui, FireFox est <i>déjà</i> utilisable sous KDE mais dieu que c'est mal intégré. Alors pour ne pas noyer le bébé avec l'eau du bain, j'ai tenté de customiser un peu le monstre pour qu'il soit plus intégré au reste de KDE et plus en phase avec les performances de konqueror. 
</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>
  Oui, FireFox est <i>déjà</i> utilisable sous KDE mais dieu que c'est mal intégré. Alors pour ne pas noyer le bébé avec l'eau du bain, j'ai tenté de customiser un peu le monstre pour qu'il soit plus intégré au reste de KDE et plus en phase avec les performances de konqueror. 
</p>
<!--break-->
<H2>Améliorer le Look de FireFox</H2>
<h3>Synchroniser GTK avec KDE</H3>
<p>
	Le look par défaut de FireFox est franchement horrible sous Linux/KDE. Et à mon humble avis, l'utilisation de thèmes aggrave encore les choses pour ceux qui aiment que l'ensemble des applications se ressemble. 
</p>
<p>
  Comme dit plus haut, par défaut, FireFox utilise le look de GTK. Il existe certains styles comme ClearLook qui ont été portés à la fois sur GTK et sur Qt. Mais la "vraie" solution réside plutôt d'ans l'utilisation de <kbd>gtk-qt</kbd>. <kbd>Qt-Gtk</kbd> est en réalité un thème pour GTK qui a la particularité de copier celui qui est en court d'utilisation sous Qt. En utilisant ce style, les applications GTK (FireFox, mais aussi Gimp, Evolution, etc...) deviennent alors d'un coup de baguette magique compatible avec le look général de KDE. 
</p>
<p>
	Pour l'installer sous Mandriva
	
  <div class='code-block code-block-fragment'>
  <div class='container'>
  urpmi gtk-qt-engine
  </div>
  
  </div>
</p>
<p>
  Ceci fait, il fait paramétrer GTK pour utiliser notre nouveau style. Et là il y a quelques mystères... J'ai remarqué que pour un look quasi parfait de toutes les applications, j'ai besoin de trois choses.
</p>
<p>
  Tout d'abord, d'aller dans le panneau de configuration de KDE, dans la section <kbd>Apparence/Style et Police GTK</kbd>, de choisir <kbd>Use my KDE style in GTK applications</kbd>, <kbd>Use my KDE fonts in GTK applications</kbd>, de clicker sur <kbd>Install scrollbar fix...</kbd>, puis sur <kbd>Appliquer</kbd>. 
</p>
<p>
  Ensuite, je vais régler, en plus, le style GTK par l'application <kbd>gtk-chtheme</kbd>. Elle aussi se trouve dans votre distribution sans aucun doute. Une fois lancée, vous cherchez le style <kbd>Qt</kbd> et vous le sélectionnez. 
</p>
<p>
  Dernier point, installer le <kbd>gnome-settings-deamon</kbd>. Cet utilitaire semble important pour que le style passe bien sur certaines applications comme... firefox, mais aussi Eclipse. Le plus simple est d'installer le package <kbd>gnome-control-center</kbd>. Ceci fait, il faut simplement créer un lien symbolique dans votre dossier AutoStart :
	
  <div class='code-block code-block-fragment'>
  <div class='container'>
  <a target="blank" href="http://pwet.fr/man/linux/commandes/ln"><span class="kw2">ln</span></a> -s <span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>gnome-settings-daemon ~<span class="sy0">/</span>.kde<span class="sy0">/</span>Autostart
  </div>
  
  </div>
</p>
<p>
	Ceci fait, pour le lancer la première fois et pour re-re-re-configurer le style GTK, lancez <kbd>gnome-control-center</kbd>, clickez sur <kbd>Thème</kbd> puis <kbd>Personnaliser...</kbd>, sélectionnez dans la liste de l'onglet <kbd>Contrôles</kbd> le style <kbd>Qt</kbd>, puis clickez sur <kbd>Fermer/Fermer</kbd>
</p>
<p>
	Voilà, ça devrait être bon, vérifiez à l'aide de la commande <kbd>ps -edaf</kbd> que le démon est bien lancé, quittez firefox et relancez le, normalement il devrait avoir le style Qt, même pour les onglets...
</p>


<H3>Modifier l'interface utilisateur</H3>
<p>
  L'interface de FireFox est très ouvertes car écrite en XUL (nous verrons cela plus en détail avec les extensions), un format de description hérité du XML qui emprunte beaucoup de ses comportements au couple DOM/Javascript. Cette particularité rend possible la modification de l'interface même de firefox à travers l'utilisation de simples feuilles de style. Et c'est très simple comme vous allez le voir.
</p>
<p>
  Prenons un exemple. Sous KDE, j'utilise une fonte très particulière pour les menus, la <kbd>Square721 BT</kbd>, en 12pt. Et malheureusement, Firefox n'en a cure. Malgrès l'utilisation de GTK/QT, il décide d'afficher le tout a sa sauce.
</p>
<p>
  La solution se trouve dans votre dossier <kbd>./mozilla/firefox/XXXXX.defaults/chrome</kbd>. Vous trouverez là, deux fichiers <kbd>userChrome.css</kbd>. S'il n'existe pas il faut le créer. Ce fichier est ni plus ni moins qu'une feuille de style classique à la différence près qu'il ne modifie pas l'apparence d'une page web, mais de l'interface de FireFox. La syntaxe est strictement la même, seul les tags changent, car XUL est plus riche que HTML et contient par exemple des balises <kbd>bookmarks-tree</kbd>, <kbd>tabs</kbd> ou <kbd>menubar</kbd>. Nous alons donc ajouter un bloc de CSS pour modifier la fonte et la taille de celle-ci pour l'ensemble (ou presque) de firefox. 

  <div class='code-block code-block-fragment'>
  <div class='container'>
  <span class="re0">#main-window</span>, <span class="re0">#toolbar-menubar</span>, menubar &gt; menu, <span class="re0">#bookmarks-menu</span>, tabs, <span class="re0">#bookmarksPanel</span>, bookmarks-tree, menubar &gt; menu &gt; menu<br />
<span class="br0">&#123;</span><br />
&nbsp; <span class="kw1">font-family</span><span class="sy0">:</span><span class="st0">&quot;Square721 BT&quot;</span> !important <span class="sy0">;</span><br />
&nbsp; <span class="kw1">font-size</span><span class="re2">:<span class="re3">12px</span></span><span class="sy0">;</span><br />
<span class="br0">&#125;</span>
  </div>
  
  </div>
</p>
<p>
Le mot clef <kbd>!important</kbd> est très... important <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/smile.gif" title="Smiling" alt="Smiling" class="smiley-content"/> En effet, il va indiquer à firefox que ce n'est pas la peine d'utiliser une autre police, c'est celle là que l'on veut. Bien évidement, il faut redémarrer firefox pour voir le résultat (vous pouvez remplacer "ma" fonte par n'importe quelle autre police de votre goût). 
</p>
<p>
Alors oui ce système est très puissant mais aussi assez obscure. Je n'ai en effet pas réussi à mettre la main sur une documentation complète et/ou à jour sur les balises et les IDs utilisables. Le bon moyen pour trouver votre voie, est d'utiliser le men <kbd>DOM Inspector</kbd> et de saisir l'URL <kbd>chrome://browser/content/browser.xul</kbd> dans l'inspecteur. Là il vous faut naviguer pour trouver votre bonheur et le reporter dans la feuille de style.
</p>
<div class='inline-box note'>
Petit gag amusant, tapez la même URL (<kbd>chrome://browser/content/browser.xul</kbd>) non pas dans le DOM inspector, mais dans firefox directement <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/>
</div>
<H3>Modifié le rendu des pages</H3>
<p>
Maintenant que l'interface nous convient mieux, il est temps de s'attaquer aux pages elle-mêmes. En effet il y a plusieurs choses qui ne vont pas. Les bordures des zones d'édition et des boutons sont épaisses et laides, les boutons cubiques, les radios et les combos semblent venir d'un autre âge. 
</p>
Alors nous pourions appliquer le même principe que pour l'interface en modifiant cette fois le fichier <kbd>userContent.css</kbd> qui se trouve au même endroit que <kbd>userChrome.css</kbd>. Par exemple si je veux que toutes les zones d'édition aient une bordure grise, il me suffit d'ajouter :

  <div class='code-block code-block-fragment'>
  <div class='container'>
  textArea<br />
<span class="br0">&#123;</span><br />
&nbsp; <span class="kw1">border</span><span class="sy0">:</span> <span class="re3">1px</span> <span class="kw2">solid</span> <span class="kw2">gray</span> !important<span class="sy0">;</span><br />
<span class="br0">&#125;</span>
  </div>
  
  </div>
</p>
<p>
Après redémarrage, toutes les zones de textes sont ainsi modifiées, quel que soit le site visité. Cette solution permet avec un peu d'effort de régler tous les problèmes. Mais l'avantage est que quelqu'un a déjà fait cela pour nous en fournissant un kit complet transformat tous les contrôles firefox avec un look kde. Cela s'apelle <a class='external' target='_blank' href='http://www.kde-apps.org/content/show.php/show.php?content=64392&amp;vote=good&amp;tan=88705725&amp;PHPSESSID=def9661e2a761bc1a37bb007784b20bd' >FireFox Form Widgets</a>. Une fois que vous avez téléchargé cette archive, il suffit de la décompresser, d'aller dans le dossier KDEWidgets, et de copier tout son contenu (5 images et une feuille css) dans le dossier <kbd>/usr/lib/firefox/res/</kbd>. Après redémarrage de firefox, tout les formulaires sont maintenant visuellement compatibles avac KDE. 
</p>


	<a name='chapter_1'></a>
  <h2>Améliorer l'intégration avec KDE</h2>
	
<p>
  L'intégration à KDE est à prendre au sens large du terme. Il s'agit autant de remplacer les dialogues GTK par ceux de KDE (ex. Impression) que de pouvoir appeler certaines applications KDE en lieu et place des fonctions internes de FireFox (ex. Téléchargement). 
</p>

<H3>Utiliser KPrint pour l'impression</H3>
<p>
   GTK et l'impression c'est un roman. Linus Torvald lui-même avait pété le plomb sur ce sujet tant l'équipe Gnome avait simplifié à outrance les dialogues au point de les rendre absolument inutilisable dans certains cas (avec deux imprimantes par exemple). KDE, en revanche, a un magnifique moteur d'impression nommé kprint. Nous allons donc tenter de l'utiliser. Pour cela il faut aller dans la boîte de dialogue d'impression de firefox (Fichier/Imprimer). Cliquer sur "propriétés". Dans la zone "commande", videz ce qui existe et saisissez juste <kbd>kprinter --stdin<kbd>. Validez et tentez une impression, vous devriez enfin déboucher sur la fenêtre d'impression de kde. simple et efficace (idée originale trouvé <a class='external' target='_blank' href='http://www.granneman.com/webdev/browsers/mozillafirefoxnetscape/linuxspecific/kdeprintinginmozilla/' >ici</a>)
</p>

<H3>Ajouter les flux RSS dans akregator</H3>
<p>
  Pour réaliser cela, il faut utiliser <a class='external' target='_blank' href='/node/1215' >ce script</a>. Vous pouvez sauver ce script en <kbd>/usr/bin/xdg-addrss</kbd> et le rendre exécutable (<kbd>chmod +x /usr/bin/xdg-addrss</kbd>).Ensuite, dans les préférences de FireFox 3, allez dans l'onglet <kbd>Applications</kbd>, cherchez <kbd>Flux WEB</kbd>/<kbd>Autres..</kbd> et sélectionnez votre nouveau script. 
</p>

<p>
	Comme souvent, l'effet est immédiat, il suffit d'aller sur un site disposant de flux, de cliquer sur l'icône orange dans la barre d'url et de sélectionner votre flux pour qu'il apparaisse sous akregator. Une bonne chose de faite, passons à la suite <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/>
</p>


<h3>Appeler des programmes externes à partir de FireFox</h3>
<p>
  Pour rendre FireFox encore un peu plus intégré à KDE, j'avais besoin de deux choses. Tout d'abord un menu contextuel sur un lien dans une page permettant de transférer l'URL vers Agregator. L'idée est d'exploiter pour se simplifier la vie, les fils discussion au format RSS, de plus en plus nombreux. Ce menu devra exécuter le script présenté plus haut pour ajouter la conversation à akregator.
</p>
<p>
  La deuxième chose qui me manque est l'archivage des pages web. L'idée est d'avoir un menu dans la barre principale appelant un script qui va télécharger la page avec ses images, ses styles, etc... et bien sur compresser l'ensemble en un fichier .war. Ses fichiers .war sont directement lisibles par konqueror et me servent à garder trace de tous les articles qui vont un jour ou l'autre disparaître de la toile. Je peux garder konqueror pour les relire, mais je dois pouvoir les créer avec FireFox. 
</p>
<p>
  Alors aussi étrange cela puisse paraître, ajouter un menu pour Firefox, c'est la croix et la bannière. En réalité il n'existe aucun mécanisme standard permettant de faire cela simple (comme un simple fichier .desktop sous konqueror). Pour y arriver, la seule possibilité est de faire une extension... Sacré programme pour un bête menu <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/arf.gif" title="Arf" alt="Arf" class="smiley-content"/>
</p>
<h3>Création d'un plugin basique</h3>
<p>
  Heureusement, après avoir passé quelque temps à tenter de créer un plugin, j'ai découvert un <a class='external' target='_blank' href='http://ted.mielczarek.org/code/mozilla/extensionwiz/' >magnifique assistant qui fabrique cela tout seul</a>. Il suffit de la paramétrer pour lui demander de nous générer un fichier xpi contenant un squelette fonctionnel.
</p>
<p>
  Dans notre cas nous allons donner les valeurs suivantes :
	<ul>
		<li><b>Your Name: </b>Votre nom <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/></li>
		<li><b>Extension Name: </b>le nom du plugin, par exemple, handleit</li>
		<li><b>Short Name: </b>handleit</li>
		<li><b>Extension: </b>handleit A.T. _bad_karmalab.net</li>
		<li>Cocher <kbd>Create options dialog and preferences</kbd></li>
		<li>Cocher <kbd>Create context menu item</kbd></li>
		<li>Cocher <kbd>Create custom about box</kbd></li>
	</ul>
</p>
<p>
	Vous pouvez en mettre plus si cela vous tente mais c'est tout ce qui est nécessaire. Il ne reste plus qu'à cliquer sur <kbd>Create Extension</kbd> pour télécharger le fichier squelette <kbd>handleit.zip</kbd>
</p>
<p>
	Ce fichier contient tout ce qu'il faut pour fabriquer un XPI mais pour l'instant, nous allons l'utiliser tel quel sous FireFox. Première étape, localiser votre dossier de profile. Il se trouve normalement dans le dossier <kbd>~/.mozilla/firefox</kbd> et porte un nom ésotérique avec l'extension <kbd>.default</kbd>. J'imagine que c'est pour des raisons de sécurité. S'il vous en avez plusieurs, trouvez le bon en vous aidant du contenu du fichier <kbd>bookmark.html</kbd> qui se trouve à l'intérieur.</p>
<p>
	Dans ce dossier, que nous appellerons à partir de maintenant <kbd>nrz806.default</kbd>, se trouve un dossier <kbd>extensions</kbd>. Et dans ce sous-dossier sont stockés tous les plugins que vous avez installés. Pour utiliser notre plugin en cours de fabrication, nous allons donc procéder de la manière suivante :
	
  <div class='code-block code-block-fragment'>
  <div class='container'>
  <span class="kw3">cd</span><br />
<a target="blank" href="http://pwet.fr/man/linux/commandes/mkdir"><span class="kw2">mkdir</span></a> workspace<br />
<span class="kw3">cd</span> workspace<br />
<a target="blank" href="http://pwet.fr/man/linux/commandes/unzip"><span class="kw2">unzip</span></a> ~<span class="sy0">/</span>Desktop<span class="sy0">/</span>handleit.<a target="blank" href="http://pwet.fr/man/linux/commandes/zip"><span class="kw2">zip</span></a><br />
<span class="kw3">cd</span> handleit<br />
<span class="kw3">echo</span> <span class="re1">$PWD</span><span class="sy0">/</span> <span class="sy0">&gt;</span> ~<span class="sy0">/</span>.mozilla<span class="sy0">/</span>firefox<span class="sy0">/</span>nrz806.default<span class="sy0">/</span>extensions<span class="sy0">/</span>handleit\<span class="sy0">@</span>karmalab.net
  </div>
  
  </div>
</p>
<p>
	Ceci va créer un \"faux plugin\" dans le dossier des extensions qui pointe sur le plugin que l'on est en train de développer. Pour continuer, je vous conseille d'installer l'extension <external href=\"https://addons.mozilla.org/en-US/firefox/addon/1249\">Restart FireFox</a>. En effet, redémarrer firefox est le seul moyen de tester les modifications dans le plugin, youpi <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/smile.gif" title="Smiling" alt="Smiling" class="smiley-content"/>
</p>
<p>
	De toute façon, l'installation de cette extension va logiquement impliquer... de redémarrer FireFox. Lorsque ce dernier sera revenu à lui, vous aurez un nouveau menu <kbd>Restart FireFox</kbd> dans <kbD>Fichier</kbd>, un menu <kbd>En rouge</kbd> dans <kbd>Outils</kbD> et un nouveau menu dans votre click-droit. Les deux derniers ont été ajoutés par votre plugin. 
</p>

<p>
	Pour modifier les libélés, allez simplement changer leur valeur dans <kbd>~/workspace/handleit/locale/en-US/handleit.dtd</kbd>. Mettez <kbd>Archiver la page courante</kbd> comme valeur à <kbd>handleit.label</kbd>, et <kbd>Ajouter la conversation à Akregator</kbd> dans <kbd>handleitContext.label</kbd>. Ceci fa22it, redémarrez FireFox pour admirez votre premier résultat. 
</p>

<p>
	Les plugins sont en javascript, pour modifier le comportement de nos deux menus (qui pour l'instant disent "hello world"), il faut modifier le fichier <kbd>/home/yoran/workspace/handleit/content/overlay.js</kbd>. Il nous faut tout d'abord y ajouter une fonction qui exécute une commande externe à FireFox (et oui, c'est possible...). Pour cela, ajoutez après la fonction <kbd>onLoad:fuchions(){...},</kbd> le code suivante :
	
  <div class='code-block code-block-fragment'>
  <div class='container'>
  execute<span class="sy0">:</span><span class="kw2">function</span><span class="br0">&#40;</span>command<span class="sy0">,</span>args<span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; <span class="kw2">var</span> targetFile <span class="sy0">=</span> Components.<span class="me1">classes</span><span class="br0">&#91;</span><span class="st0">'@mozilla.org/file/local;1'</span><span class="br0">&#93;</span>.<span class="me1">createInstance</span><span class="br0">&#40;</span>Components.<span class="me1">interfaces</span>.<span class="me1">nsILocalFile</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; targetFile.<span class="me1">initWithPath</span><span class="br0">&#40;</span>command<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; <span class="kw2">var</span> process <span class="sy0">=</span> Components.<span class="me1">classes</span><span class="br0">&#91;</span><span class="st0">'@mozilla.org/process/util;1'</span><span class="br0">&#93;</span>.<span class="me1">getService</span><span class="br0">&#40;</span>Components.<span class="me1">interfaces</span>.<span class="me1">nsIProcess</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; process.<span class="me1">init</span><span class="br0">&#40;</span>targetFile<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; process.<span class="me1">run</span><span class="br0">&#40;</span><span class="kw2">false</span><span class="sy0">,</span> args<span class="sy0">,</span> args.<span class="me1">length</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><span class="sy0">,</span>
  </div>
  
  </div>
</p>
<p>
	La virgule finale est importante !! Ceci fait, nous allons vider le corps de la fonction <kbd>onMenuItemCommand</kbd> pour la faire coller à nos besoins. En l'occurence il s'agit d'exécuter deux commandes différentes en fonction du type d'appel (par le menu principal ou par le menu contextuel), cela nous donne :
	
  <div class='code-block code-block-fragment'>
  <div class='container'>
  <span class="kw1">if</span> <span class="br0">&#40;</span>gContextMenu<span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; <span class="kw2">var</span> args <span class="sy0">=</span> <span class="br0">&#91;</span>gContextMenu.<span class="me1">getLinkURL</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span><span class="st0">'conversation'</span><span class="br0">&#93;</span><span class="sy0">;</span><br />
&nbsp; handleit.<span class="me1">execute</span><span class="br0">&#40;</span><span class="st0">'/usr/bin/xdg-addrss'</span><span class="sy0">,</span>args<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="kw1">else</span><br />
<span class="br0">&#123;</span><br />
&nbsp; <span class="kw2">var</span> pos<span class="sy0">=</span>document.<span class="me1">title</span>.<span class="me1">indexOf</span><span class="br0">&#40;</span><span class="st0">&quot;-&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; <span class="kw2">var</span> title<span class="sy0">=</span>document.<span class="me1">title</span>.<span class="me1">substring</span><span class="br0">&#40;</span><span class="nu0">0</span><span class="sy0">,</span>pos<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; <span class="kw2">var</span> args <span class="sy0">=</span> <span class="br0">&#91;</span>window.<span class="me1">content</span>.<span class="me1">document</span>.<span class="me1">location</span>.<span class="me1">href</span><span class="sy0">,</span> title<span class="sy0">,</span>document.<span class="me1">characterSet</span><span class="br0">&#93;</span><span class="sy0">;</span><br />
&nbsp; handleit.<span class="me1">execute</span><span class="br0">&#40;</span><span class="st0">'/usr/bin/xdg-war-archive'</span><span class="sy0">,</span>args<span class="br0">&#41;</span><span class="sy0">;</span>&nbsp; &nbsp; &nbsp; <br />
<span class="br0">&#125;</span>
  </div>
  
  </div>
</p>
<p>
	Notez que comparé à l'utilisation précédente, nous passons un paramètre en plus à <kbd>xfg-addrss</kbD> pour spécifier de mettre ce que l'on ajoute dans le dossier <kbD>conversations</kbd> d'Akregator. 
</p>
<p>
	Il ne nous reste maintenant plus qu'à créer le script <kbd>/usr/bin/xdg-war-archive</kbd> disponible <a class='external' target='_blank' href='/node/1216' >ici</a>
</p>
<p>
	Ce script va donc poser sur le bureau de l'utilisateur qui le lance un fichier portant comme nom, le tire de la page. Il consistera en une archive tar.gz complète au format .war lisible donc par konqueror. N'oubliez pas de faire un <kbd>chmod +x /usr/bin/xdg-war-archive</kbd>. 
</p>
<p>
	Il ne reste maintenant plus qu'à redémarer FireFox pour tester tout cela. Si cela coince, il doit y avoir une faute de frappe, vous pouvez mettre des boites de dialogue dans le code pour tester pas à pas :
	
  <div class='code-block code-block-fragment'>
  <div class='container'>
  <span class="kw2">var</span> promptService <span class="sy0">=</span> Components.<span class="me1">classes</span><span class="br0">&#91;</span><span class="st0">&quot;@mozilla.org/embedcomp/prompt-service;1&quot;</span><span class="br0">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span class="me1">getService</span><span class="br0">&#40;</span>Components.<span class="me1">interfaces</span>.<span class="me1">nsIPromptService</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
promptService.<span class="kw3">alert</span><span class="br0">&#40;</span>window<span class="sy0">,</span> <span class="st0">&quot;Debugger&quot;</span><span class="sy0">,</span><span class="st0">&quot;Message d'alerte&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp;
  </div>
  
  </div>
</p>

<p>
	Maintenant si vous voulez supprimer le faux plugin et installer "pour de vrai" votre création (ou pourquoi pas, la redistribuer, il y a de quoi être fier <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/>, la marche à suivre est la suivante :

  <div class='code-block code-block-fragment'>
  <div class='container'>
  <span class="kw3">cd</span> ~<span class="sy0">/</span>workspace<span class="sy0">/</span>handlit<br />
<a target="blank" href="http://pwet.fr/man/linux/commandes/chmod"><span class="kw2">chmod</span></a> +x build.<a target="blank" href="http://pwet.fr/man/linux/commandes/sh"><span class="kw2">sh</span></a><br />
.<span class="sy0">/</span>build.<a target="blank" href="http://pwet.fr/man/linux/commandes/sh"><span class="kw2">sh</span></a>
  </div>
  
  </div>
</p>
<p>
	Vous pouvez maintenant supprimer le faux plugin de votre profile, et installer le fichier XPI fraîchement généré. 
</p>    ]]></content>
  </entry>
</feed>
