<?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>Cloud Connected &#187; personnalisation</title>
	<atom:link href="http://www.cloudconnected.fr/tag/personnalisation/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cloudconnected.fr</link>
	<description>Thoughts of a french web developer</description>
	<lastBuildDate>Wed, 01 Feb 2012 08:53:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>SciTE : l&#8217;éditeur indispensable</title>
		<link>http://www.cloudconnected.fr/2005/11/11/scite-l-editeur-indispensable/</link>
		<comments>http://www.cloudconnected.fr/2005/11/11/scite-l-editeur-indispensable/#comments</comments>
		<pubDate>Fri, 11 Nov 2005 13:39:00 +0000</pubDate>
		<dc:creator>Rémi</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[Logiciels libres]]></category>
		<category><![CDATA[personnalisation]]></category>

		<guid isPermaLink="false">http://pre.the-asw.com/?p=57</guid>
		<description><![CDATA[Dans le monde des éditeurs de texte, le choix est plutôt difficile. Les utilisateurs de Microsoft Windows en savent quelque chose, puisqu&#8217;avec un Bloc-notes aphatique et un WordPad pathétique, on a du mal à imaginer que l&#8217;informatique a évoluée depuis les années 70&#8230; Heureusement il y a Scite, un éditeur de texte libre (évidemment), portable [...]]]></description>
			<content:encoded><![CDATA[<p>Dans le monde des éditeurs de texte, le choix est plutôt difficile. Les utilisateurs de Microsoft Windows en savent quelque chose, puisqu&#8217;avec un <em>Bloc-notes</em> aphatique et un <em>WordPad</em> pathétique, on a du mal à imaginer que l&#8217;informatique a évoluée depuis les années 70&#8230; Heureusement il y a Scite, un éditeur de texte libre (évidemment), portable (qui fonctionne sous Windows et sous Linux, entre autres) et incroyablement performant tout en restant leger comme une plume&nbsp;! Alors, vous qui cherchez depuis des années un éditeur à tout faire, supportant à la fois le HTML, le CSS, mais aussi le PHP, le C ou encore le C++, ça vous dirait d&#8217;entrer dans le XXI<sup>e</sup> siècle ?</p>
<p><span id="more-57"></span></p>
<h3>Présentation</h3>
<p>SciTE signifie <em>Scintilla Text Editor</em>. Scintilla est un composant d&#8217;édition de code source aux fonctionnalités impressionantes, utilisé dans <a href="http://scintilla.sourceforge.net/ScintillaRelated.html" hreflang="en">de nombreux projets</a>, comme Anjuta ou Notepad2. Ok, super, nous voila bien avancé ! Mais qu&#8217;est-ce qu&#8217;il permet de faire au juste ?</p>
<p>Comme tous les éditeurs de texte, SciTE permet d&#8217;éditer n&#8217;importe quel fichier texte (code source, fichier de configuration ou simple fichier texte), dans n&#8217;importe quel encodage (il gère parfaitement l&#8217;UTF-8). Il offre de nombreuses fonctionnalités en terme d&#8217;édition pure (recherche et remplace à base de regexp, selection en colonnes, &#8230;) et se débrouille à merveille comme éditeur de code (coloration syntaxique, intégration des API des langages permettant l&#8217;autocomplétion des fonctions, possibilité de «&nbsp;replier&nbsp;» du code, possibilité de compiler directement depuis l&#8217;éditeur, &#8230;). En plus, il dispose d&#8217;onglets (tabs) et connait un nombre impressionnant de langages. Bref, le couteau suisse idéal pour tout programmeur ! Ca vous tente ? Alors passons à l&#8217;installation&#8230;</p>
<div id="attachment_212" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.cloudconnected.fr/wp-content/uploads/2009/02/scite1.png"><img src="http://www.the-asw.com/wp-content/uploads/2005/11/scite1-300x232.png" alt="SciTE" title="scite1" width="300" height="232" class="size-medium wp-image-212" /></a><p class="wp-caption-text">SciTE</p></div>
<h3>Installation</h3>
<p>Les utilisateurs de Linux devraient trouver SciTE packagé dans leur distribution. Les utilisateurs de Windows pourront trouver sur <a href="http://scintilla.sourceforge.net/SciTEDownload.html" hreflang="en">la page de download</a> plusieurs versions :</p>
<ul>
<li>Les <em>Windows Executable</em> ne demandent pas d&#8217;installation, mais n&#8217;offrent pas toutes les fonctionnalités. A utiliser lorsqu&#8217;on n&#8217;est pas sur son ordinateur (surtout le <em>single file executable</em> vraiment pratique).</li>
<li>Les <em>Windows Installers</em> s&#8217;intègrent parfaitement à Windows (vous pourrez donc faire clic droit sur un fichier, puis «&nbsp;Editer dans SciTE&nbsp;»). Je vous conseille <a href="http://gisdeveloper.tripod.com/scite.html" hreflang="en">l&#8217;installeur de Bruce Dodson</a>, light et très complet.</li>
</ul>
<h3>Utilisation</h3>
<p>SciTE fonctionne comme n&#8217;importe quel éditeur de texte (ou presque). Il peut ouvrir plusieurs fichiers simultanément grâce à la gestion des onglets (<em>tabs</em>).</p>
<h4>Les raccourcis claviers standards</h4>
<p>Ce sont pratiquement tous les mêmes que dans la plupart des autres logiciels, aussi bien sous Windows que sous Linux.</p>
<table cellpadding="0" cellspacing="0" width="100%">
<thead>
<tr>
<th style="width: 170px;">Combo</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<tr>
<td><kbd>Ctrl + O</kbd></td>
<td>Ouvre un fichier.</td>
</tr>
<tr>
<td><kbd>Ctrl + W</kbd></td>
<td>Ferme le fichier en cours.</td>
</tr>
<tr>
<td><kbd>Ctrl + N</kbd></td>
<td>Nouveau fichier (nouvel onglet).</td>
</tr>
<tr>
<td><kbd>Ctrl + S</kbd></td>
<td>Enregistrer le fichier.</td>
</tr>
<tr>
<td><kbd>Ctrl + Shift + S</kbd></td>
<td>Enregistrer le fichier sous un autre nom.</td>
</tr>
<tr>
<td><kbd>Ctrl + Tab</kbd></td>
<td>Passer à l&#8217;onglet de droite.</td>
</tr>
<tr>
<td><kbd>Ctrl + Shift + Tab</kbd></td>
<td>Passer à l&#8217;onglet à gauche.</td>
</tr>
<tr>
<td><kbd>Ctrl + F</kbd></td>
<td>Rechercher (<em><strong>f</strong>ind</em>).</td>
</tr>
<tr>
<td><kbd>F3</kbd></td>
<td>Trouver le résultat suivant (après avoir commencé une recherche).</td>
</tr>
<tr>
<td><kbd>Shift + F3</kbd></td>
<td>Trouver le résultat précédent (après avoir commencé une recherche).</td>
</tr>
<tr>
<td><kbd>Ctrl + H</kbd></td>
<td>Rechercher &amp; Remplacer.</td>
</tr>
<tr>
<td><kbd>Ctrl + G</kbd></td>
<td>Aller à la ligne&#8230; (<em><strong>g</strong>oto</em>)</td>
</tr>
<tr>
<td><kbd>Ctrl + C</kbd></td>
<td>Copier.</td>
</tr>
<tr>
<td><kbd>Ctrl + X</kbd></td>
<td>Couper.</td>
</tr>
<tr>
<td><kbd>Ctrl + V</kbd></td>
<td>Coller.</td>
</tr>
<tr>
<td><kbd>Ctrl + Z</kbd></td>
<td>Annuler.</td>
</tr>
<tr>
<td><kbd>Ctrl + Y</kbd></td>
<td>Refaire (après une annulation ratée).</td>
</tr>
<tr>
<td><kbd>Ctrl + A</kbd></td>
<td>Sélectionner tout le contenu du fichier.</td>
</tr>
<tr>
<td><kbd>Ctrl + P</kbd></td>
<td>Imprimer.</td>
</tr>
</tbody>
</table>
<h4>Les raccourcis claviers d&#8217;édition</h4>
<table cellpadding="0" cellspacing="0" width="100%">
<thead>
<tr>
<th style="width: 170px;">Combo</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<tr>
<td><kbd>Ctrl + Shift + A</kbd></td>
<td>Afficher les espaces et les tabs.</td>
</tr>
<tr>
<td><kbd>Ctrl + Shift + D</kbd></td>
<td>Afficher les caractères <em>End of Line</em> (fin de ligne).</td>
</tr>
<tr>
<td><kbd>Ctrl + U</kbd></td>
<td>Transforme la sélection en minuscules.</td>
</tr>
<tr>
<td><kbd>Ctrl + Shift + U</kbd></td>
<td>Transforme la sélection en majuscules.</td>
</tr>
<tr>
<td><kbd>Ctrl + L</kbd></td>
<td>Coupe la ligne en cours</td>
</tr>
<tr>
<td><kbd>Ctrl + Shift + T</kbd></td>
<td>Copie la ligne en cours</td>
</tr>
<tr>
<td><kbd>Ctrl + Shift + L</kbd></td>
<td>Supprime la ligne en cours</td>
</tr>
<tr>
<td><kbd>Ctrl + D</kbd></td>
<td>Duplique la ligne en cours.</td>
</tr>
<tr>
<td><kbd>Ctrl + T</kbd></td>
<td>Inverse la ligne en cours avec celle au dessus (<em><strong>t</strong>ranspose</em>).</td>
</tr>
<tr>
<td><kbd>Ctrl + &lt;-</kbd> ou <kbd>-&gt;</kbd></td>
<td>Se déplacer d&#8217;un mot entier vers la gauche ou vers la droite (attention, parfois il se trompe avec les accents).</td>
</tr>
<tr>
<td><kbd>Shift + </kbd> une flèche directionnelle, <kbd>PageUp</kbd>, <kbd>PageDown</kbd>, <kbd>Home</kbd> ou <kbd>End</kbd></td>
<td>Se déplacer en sélectionnant.</td>
</tr>
<tr>
<td><kbd>Ctrl + Shift + &lt;-</kbd> ou <kbd>-&gt;</kbd></td>
<td>Sélectionner un mot entier vers la gauche ou vers la droite.</td>
</tr>
<tr>
<td><kbd>Ctrl + Backspace</kbd></td>
<td>Supprime du début du mot jusqu&#8217;au curseur</td>
</tr>
<tr>
<td><kbd>Ctrl + Suppr</kbd></td>
<td>Supprime du curseur jusqu&#8217;à la fin du mot</td>
</tr>
<tr>
<td><kbd>Ctrl + Shift + Backspace</kbd></td>
<td>Supprime du début de la ligne jusqu&#8217;au curseur</td>
</tr>
<tr>
<td><kbd>Ctrl + Shift + Suppr</kbd></td>
<td>Supprime du curseur jusqu&#8217;à la fin de la ligne</td>
</tr>
</tbody>
</table>
<h4>Les raccourcis claviers spéciaux pour les codeurs</h4>
<table cellpadding="0" cellspacing="0" width="100%">
<thead>
<tr>
<th style="width: 170px;">Combo</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<tr>
<td><kbd>Tab</kbd></td>
<td>Indente le bloc sélectionné</td>
</tr>
<tr>
<td><kbd>Shift + Tab</kbd></td>
<td>Dé-indente le bloc sélectionné</td>
</tr>
<tr>
<td><kbd>Ctrl + E</kbd></td>
<td>Déplace le curseur jusqu&#8217;à la parenthèse/accolade ouvrante ou fermante.</td>
</tr>
<tr>
<td><kbd>Ctrl + Shift + E</kbd></td>
<td>Sélectionne tout ce qui est contenu entre 2 parenthèses/accolades.</td>
</tr>
<tr>
<td><kbd>Ctrl + Q</kbd></td>
<td>Commente/Décommente la/les ligne(s) en cours en mode <em>Block</em>, selon le langage. Exemple en C++ :
<pre>//~ string truc("PONG :" + c.getWhat());//~ s.send(truc); </pre>
</td>
</tr>
<tr>
<td><kbd>Ctrl + Shift + B</kbd></td>
<td>Commente les lignes selectionnées en mode <em>Box</em>. Exemple en C++ :
<pre>/*  	string truc("PONG :" + c.getWhat()); * 	s.send(truc);  */</pre>
</td>
</tr>
<tr>
<td><kbd>Ctrl + Shift + Q</kbd></td>
<td>Commente les lignes selectionnées en mode <em>Stream</em>. Exemple en C++ :
<pre>/* string truc("PONG :" + c.getWhat());s.send(truc);  */</pre>
</td>
</tr>
<tr>
<td><kbd>Ctrl + I</kbd></td>
<td>Propose des choix d&#8217;autocomplétion pour le mot en cours (à condition que l&#8217;API du langage soit installée, voir <a href="#api">comment faire</a>). Exemple, taper <code>str</code> puis <kbd>Ctrl + i</kbd> en C donnera &nbsp;:</p>
<p><div id="attachment_223" class="wp-caption aligncenter" style="width: 305px"><img src="http://www.cloudconnected.fr/wp-content/uploads/2009/02/scite_ctrli.png" alt="Scite Ctrl+i" title="scite_ctrli" width="295" height="211" class="size-full wp-image-223" /><p class="wp-caption-text">Scite Ctrl+i</p></div>
</td>
</tr>
<tr>
<td><kbd>Ctrl + Shift + Espace</kbd></td>
<td>Réaffiche la <em>Calltip</em> de la fonction en cours (à condition que l&#8217;API du langage soit installée, voir <a href="#api">comment faire</a>)&nbsp;:</p>
<div id="attachment_221" class="wp-caption aligncenter" style="width: 365px"><img src="http://www.cloudconnected.fr/wp-content/uploads/2009/02/scite_api.png" alt="Site Calltip" title="scite_api" width="355" height="145" class="size-full wp-image-221" /><p class="wp-caption-text">Site Calltip</p></div>
</td>
</tr>
<tr>
<td><kbd>F7</kbd></td>
<td>Lance la compilation du fichier dans l&#8217;<em>output pane</em> (voir <a href="#pane">ci-dessous</a>)</td>
</tr>
<tr>
<td><kbd>Ctrl + F7</kbd></td>
<td>Lance la construction du projet auquel appartient le fichier (voir <a href="#pane">ci-dessous</a>)</td>
</tr>
<tr>
<td><kbd>F5</kbd></td>
<td>Lance le binaire compilé ou le logiciel permettant de visualiser le fichier (navigateur web en cas de fichier HTML par exemple)</td>
</tr>
</tbody>
</table>
<p>Voici les raccourcis clavier dont je me sert régulièrement. Mais il existe des tas d&#8217;autres, et si vous ne trouvez pas votre bonheur ici, essayer de regarder dans <a href="http://scintilla.sourceforge.net/SciTEDoc.html" hreflang="en">la doc</a>, rubrique <em>Keyboard commands</em>.</p>
<p>Enfin, pour les gens vraiment très exigeants, sachez qu&#8217;il est possible de définir ses propres raccourcis clavier, via la propriété <code>user.shortcuts</code> (voir ci-après pour la configuration de SciTE). N&#8217;en ayant jamais eu besoin, je ne peux malheureusement pas en dire plus là dessous. Je vous conseille donc d&#8217;aller lire <a href="http://scintilla.sourceforge.net/SciTEDoc.html" hreflang="en">la doc de SciTE</a> si cette fonctionnalité vous interresse.</p>
<h3>Configuration</h3>
<p>SciTE a un défaut : il n&#8217;offre pas d&#8217;interface pour paramétrer les options. Tout se fait via l&#8217;édition des fichiers de configuration. Même si la syntaxe n&#8217;est pas difficile, c&#8217;est un peu contraignant, voire parfois rebutant pour certains. Mais ne vous inquiétez, voici une rapide présentation du fonctionnement de l&#8217;engin, et vous allez voir, c&#8217;est très simple !</p>
<p>Il y a 3 niveaux de fichiers : Global, User et Local. Local est prioritaire sur User qui est prioritaire sur Global. Par exemple, si une option est présente à la fois dans Global et dans User, c&#8217;est la valeur de User qui sera retenue.</p>
<p>Les fichiers sont accessibles via le menu Options, puis <em>Open Global Options File</em> ou <em>Open User Options File</em> (ou encore <em>Open Local Options File</em>).</p>
<ul>
<li>Le fichier Global définit les options globales par défaut de SciTE (c&#8217;est à dire, celles qui s&#8217;appliqueront à tous les utilisateurs). Sous Linux, le Global est en général quelque part dans <code>/usr/share/scite/</code> et n&#8217;est pas accessible par l&#8217;utilisateur (seulement le root). Il vaut mieux laisser ce fichier intact, d&#8217;abord parcequ&#8217;il vous permettra de retrouver facilement les options par défaut en cas de soucis, mais surtout parcequ&#8217;il sera écrasé à chaque mise à jour de SciTE, et donc il faudra refaire toutes les modifs&#8230;</li>
<li>Le fichier User est donc celui qu&#8217;il vous faut pour définir toutes les options que vous voulez. Sous Linx, il est dans <code>~/.SciTEUser.properties</code> alors que sous Windows il se balade quelque part dans le profil. Il est vide par défaut, alors on peut soit le remplir au fur et à mesure, soit recopier le fichier global dedans et le modifier après ; c&#8217;est une question de goût.</li>
<li>Le fichier Local sert à définir des paramètres particuliers pour un dossier. Il doit se trouver dans le même dossier que les fichiers auxquels on veut appliquer ces paramètres (par exemple : mode d&#8217;indentation, wrap des lignes, options du compilateur, etc.).</li>
</ul>
<p>Pour connaitre tous les détails des fichiers de configuration de SciTE, vous pouvez lire <a href="http://scintilla.sourceforge.net/SciTEDoc.html" hreflang="en">la doc</a>, rubrique <em>Properties files</em>.</p>
<p>Dans la suite de cet article, toutes les options seront à rajouter au <em>User Options File</em>.</p>
<h3 id="pane">L&#8217;<em>output pane</em>, ou comment transformer SciTE en <acronym title="Integrated Development Environment">IDE</acronym></h3>
<p>Vous avez peut-être remarqué une petite fenêtre, sur la gauche ou en bas de la fenêtre d&#8217;édition ? C&#8217;est <em>l&#8217;output pane</em>, là où sont affichés les résultats de la compilation du fichier ou du projet&#8230;</p>
<p>Et oui, car SciTE peut executer la compilation du fichier (<em>compile</em>) ou de tout le projet (<em>build</em>), et lancer le résultat obtenu (<em>go</em>). Pour cela, il faut le configurer grâce aux propriétés <code>command.go</code>, <code>command.build</code> et <code>command.compile</code>.</p>
<p>Voici par exemple ma configuration personnalisée pour les fichiers C/C++ (sous Linux) :</p>
<pre>command.compile.*.c=gcc -Wall $(FileNameExt) -o $(FileName)
command.compile.*.cpp=g++ -Wall $(FileNameExt) -o $(FileName)

command.build.*.c=make
command.build.*.cpp=make

command.go.*.c=$(FileName)
command.go.*.cpp=$(FileName)
command.go.needs.*.c=gcc -Wall $(FileNameExt) -o $(FileName)
</pre>
<p>Lorsque des erreurs s&#8217;affichent dans l&#8217;<em>output pane</em>, un double clic sur la ligne vous amenera directement à la ligne concernée, comme sur le screenshot ci-dessous :</p>
<div id="attachment_214" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.cloudconnected.fr/wp-content/uploads/2009/02/scite_compile.png"><img src="http://www.the-asw.com/wp-content/uploads/2005/11/scite_compile-300x155.png" alt="Compilation dans SciTE" title="scite_compile" width="300" height="155" class="size-medium wp-image-214" /></a><p class="wp-caption-text">Compilation dans SciTE</p></div>
<p>Ce système est très très (très) largement configurable, notamment via l&#8217;utilisation des fichiers de configuration <em>Local Options File</em>, qui permettent de définir des paramètres de compilation différents selon le dossier. Je conseille à ceux qui sont interressés par ces fonctionnalités d&#8217;aller lire <a href="http://scintilla.sourceforge.net/SciTEDoc.html" hreflang="en">la doc de SciTE</a>, rubrique <em>Standard Editing</em> et <em>Defined variables in properties files</em>.</p>
<h3>Trucs, astuces et options utiles</h3>
<p>SciTE regorge d&#8217;options utiles, mais souvent (trop) bien cachées. Pour vous donner une idée, j&#8217;utilise SciTE depuis 3 ans bientôt, et j&#8217;en découvre encore regulièrement ! Voici un condensé des options que j&#8217;utilise.</p>
<h4>Sélection en colonnes</h4>
<p>Sélectionner du texte en appuyant sur <kbd>Ctrl</kbd> sous Linux ou <kbd>Alt</kbd> sous Windows.</p>
<p>Pour ceux qui ne connaissent pas, la sélection en colonnes ça permet de faire selectionner du texte comme ça :</p>
<div id="attachment_215" class="wp-caption aligncenter" style="width: 252px"><img src="http://www.cloudconnected.fr/wp-content/uploads/2009/02/scite_col.png" alt="Selection en colonnes" title="scite_col" width="242" height="192" class="size-full wp-image-215" /><p class="wp-caption-text">Selection en colonnes</p></div>
<h4>Tabs</h4>
<p>La barre des onglets (<em>tabbar</em>) n&#8217;est pas toujours activée par défaut, ou alors le nombre de fichiers que l&#8217;on peut ouvrir en même temps (<em>buffers</em>) est limité à 1. Voici les propriétés utiles :</p>
<pre>
tabbar.visible=1
tabbar.hide.one=0
tabbar.multiline=1
buffers=100
</pre>
<p>Pour afficher le numéro du fichier dans la barre de titre (<em>[2 of 4]</em> par exemple), il faut utiliser la propriété : </p>
<pre>
title.show.buffers=1
</pre>
<h4>Numéros de lignes</h4>
<p>C&#8217;est pas toujours activé par défaut, alors il faut faire :</p>
<pre>
line.margin.visible=1
line.margin.width=4
</pre>
<h4>Fonts</h4>
<p>Sous Linux, elles sont très très moches par défaut. En plus, SciTE utilise des fonts qui ne sont pas <em>monospace</em> (c&#8217;est à dire que chaque caractère n&#8217;utilise pas exactement le même nombre de pixel &#8211; cas de la plupart des polices destinées à la rédaction de documents), ce qui est une très mauvaise idée pour le codage. Personnellement, je remplace donc toutes les fonts par <em>Fixed</em> en taille 10 ou 12. Voici mes paramètres :</p>
<pre>
if PLAT_GTK
	font.base=font:fixed,size:12
	font.small=font:fixed,size:10
	font.comment=font:fixed,size:12
	font.code.comment.box=$(font.comment)
	font.code.comment.line=$(font.comment)
	font.code.comment.doc=$(font.comment)
	font.text=font:fixed,size:12
	font.text.comment=font:fixed,size:12
	font.embedded.base=font:fixed,size:12
	font.embedded.comment=font:fixed,size:12
	font.monospace=font:fixed,size:12
	font.vbs=font:Lucida Sans Unicode,size:10
</pre>
<h4>Fermer automatiquement les tags XML et (X)HTML</h4>
<p>Par exemple, je tape <code>&lt;p&gt;</code> et ça donne <code>&lt;p&gt;&lt;/p&gt;</code> avec le curseur entre les deux balises.</p>
<pre>xml.auto.close.tags=1</pre>
<h4>Remplacer dans tous les fichiers ouverts</h4>
<p>D&#8217;après la documentation de SciTE, il faudrait ajouter cette propriété :</p>
<pre>find.replace.advanced=1</pre>
<p>Elle ferait apparaitre un bouton <em>Replace in Buffers</em> qui permettrait de remplacer dans tous les fichiers ouverts. Malheureusement, je n&#8217;ai encore jamais réussi à faire apparaître ce bouton&#8230; Esperons que ce bug sera rapidement corrigé !</p>
<h4>Les boutons Home et End utilisent les lignes visuelles au lieu des lignes logiques</h4>
<p>Lorsqu&#8217;on active l&#8217;option <em>Wrap</em> (via le menu <em>Options</em> ou via la propriété <code>wrap=1</code>), les lignes trop longues s&#8217;arrettent au bord de l&#8217;écran et reviennent à la ligne, au lieu de continuer (et d&#8217;obliger l&#8217;utilisateur à défiler horizontalement). La ligne trop longue en question est appellé ligne «&nbsp;logique&nbsp;» et forme alors plusieurs lignes dites «&nbsp;virtuelles&nbsp;», car il n&#8217;y a pas physiquement de caractère de fin de ligne : c&#8217;est juste un effet visuel. Un moyen de s&#8217;en rendre compte est de constater que ces lignes virtuelles ne sont pas numérotées, comme le montre le screenshot ci-dessous :</p>
<div id="attachment_216" class="wp-caption aligncenter" style="width: 294px"><img src="http://www.cloudconnected.fr/wp-content/uploads/2009/02/scite_wrap.png" alt="SciTE Wrap" title="scite_wrap" width="284" height="185" class="size-full wp-image-216" /><p class="wp-caption-text">SciTE Wrap</p></div>
<p>Par défaut, les touches <kbd>Home</kbd> et <kbd>End</kbd> déplacent le curseur au début et à la fin de la ligne <em>logique</em>. Pour changer se comportement afin qu&#8217;elles déplacent le curseur sur la ligne visuelle, c&#8217;est la propriété :</p>
<pre>wrap.aware.home.end.keys=1</pre>
<h4>Configurer l&#8217;aspect du <em>folding</em></h4>
<p>Le <em>folding</em> permet de «&nbsp;replier&nbsp;» des morceaux de codes, par exemple le corps d&#8217;une fonction ou bien une ligne d&#8217;un tableau HTML entre 2 balises <code>&lt;tr&gt;</code>.</p>
<p>Pour cela, il suffit de cliquer sur les icones qui apparaissent dans la marge spéciale (ou utiliser le raccourci clavier <kbd>Ctrl + *</kbd> (du pavé numérique). Au cas où ça ne serait pas activé par défaut, il faut rajouter les options :</p>
<pre>
fold=1
fold.compact=0
fold.flags=16
fold.symbols=1
fold.comment=1
fold.preprocessor=1
fold.html=1
</pre>
<p>Le paramètre <code>fold.symbols</code> permet de définir l&#8217;aspect des icones de folding. Voici les différents valeurs :</p>
<div id="attachment_217" class="wp-caption aligncenter" style="width: 271px"><img src="http://www.cloudconnected.fr/wp-content/uploads/2009/02/scite_fold0.png" alt="fold.symbols=0" title="scite_fold0" width="261" height="264" class="size-full wp-image-217" /><p class="wp-caption-text">fold.symbols=0</p></div>
<div id="attachment_218" class="wp-caption aligncenter" style="width: 254px"><img src="http://www.cloudconnected.fr/wp-content/uploads/2009/02/scite_fold1.png" alt="fold.symbols=1" title="scite_fold1" width="244" height="245" class="size-full wp-image-218" /><p class="wp-caption-text">fold.symbols=1</p></div>
<div id="attachment_219" class="wp-caption aligncenter" style="width: 268px"><img src="http://www.cloudconnected.fr/wp-content/uploads/2009/02/scite_fold2.png" alt="fold.symbols=2" title="scite_fold2" width="258" height="246" class="size-full wp-image-219" /><p class="wp-caption-text">fold.symbols=2</p></div>
<div id="attachment_220" class="wp-caption aligncenter" style="width: 247px"><img src="http://www.cloudconnected.fr/wp-content/uploads/2009/02/scite_fold3.png" alt="fold.symbols=3 (mon préféré)" title="scite_fold3" width="237" height="242" class="size-full wp-image-220" /><p class="wp-caption-text">fold.symbols=3 (mon préféré)</p></div>
<h4>Utiliser les icones Gnome pour la toolbar (parceque celles par défaut sont vraiment moches)</h4>
<p>Uniquement sous Linux.</p>
<pre>toolbar.usestockicons=1</pre>
<h4>Repère visuel à 80 caractères</h4>
<pre>edge.column=80edge.mode=1edge.colour=#C0DCC0</pre>
<p>Note : Un bug sur ma version (1.66) fait que la ligne est tracée <em>par dessus</em> le texte. C&#8217;est assez désagréable.</p>
<h4 id="api">Intégration des API</h4>
<p>Les fichiers API peuvent être téléchargé sur <a href="http://scintilla.sourceforge.net/SciTEExtras.html" hreflang="en">le site officiel</a>, ou créé par des scripts, mais là il faut aller lire <a href="http://scintilla.sourceforge.net/SciTEDoc.html" hreflang="en">la doc</a> parceque j&#8217;ai jamais essayé. Ils permettent l&#8217;autocomplétion des fonctions, ainsi que l&#8217;affichage des <em>calltips</em> indiquant les paramètres et la description des fonctions.</p>
<p><img src="http://www.cloudconnected.fr/wp-content/uploads/2009/02/scite_api.png" alt="scite_api" title="scite_api" width="355" height="145" class="aligncenter size-full wp-image-221" /></p>
<p>Dans les propriétés, il faut indiquer le chemin des fichiers. Exemple :</p>
<pre>
api.*.c=/usr/share/scite/c.api
api.*.cpp=/usr/share/scite/c.api
api.*.php=/usr/share/scite/php.api
</pre>
<h4>Indentation</h4>
<p>Comme je l&#8217;expliquais dans <a href="http://www.the-asw.com/articles/2005/10/14/53-vous-avez-dit-coding-style">l&#8217;article sur les coding style</a>, il est préferable d&#8217;utiliser des tabulations pour l&#8217;indentation, et d&#8217;en choisir la taille. Avec SciTE, ça se configure comme ça (exemple avec des tabs qui font 8 caractères) :</p>
<pre>
tabsize=8
indent.size=8
use.tabs=1
</pre>
<h4>Ouvrir les fichiers HTML dans Firefox</h4>
<p>Par défaut, lorsqu&#8217;on fait <em>Go</em> (touche F5) sur un fichier HTML, SciTE ouvre Internet Explorer, ou Netscape sous Linux. Pour ouvrir le fichier dans une nouvelle tab d&#8217;un Firefox déjà lancé, il suffit d&#8217;ajouter :</p>
<pre>command.go.*.html=firefox -remote "openurl(file://$(FilePath),new-tab)"</pre>
<h4>Utiliser SciTE pour l&#8217;UTF-8</h4>
<p>SciTE est capable de détecter l&#8217;encodage du fichier en se basant sur les commentaires en début de fichier. Par exemple, un fichier XML débutant par :</p>
<pre>&lt;?xml version='1.0' encoding='utf-8'?&gt;</pre>
<p>ou n&#8217;importe quel fichier source débutant par :</p>
<pre># -*- coding: utf-8 -*-</pre>
<p>sera reconnu.</p>
<p>Si pour une raison ou pour une autre ce n&#8217;est pas le cas, vous pouvez changer l&#8217;encodage du fichier en cours via le menu <em>File</em>, <em>Encoding</em>.</p>
<ul>
<li><em>UTF-8</em> encodera le fichier avec un caractère spécial au début, invisible tant qu&#8217;on reste avec SciTE, mais qui risque de géner si le fichier est déstiné à être utilisé avec d&#8217;autres éditeurs qui ne le gère pas.</li>
<li><em>UTF-8 Cookie</em> encodera le fichier sans ce caractère spécial, mais en contrepartie, il n&#8217;y aura aucun moyen de détecter qu&#8217;il est en UTF-8. Il faudra préciser à chaque ouverture que ce fichier est en UTF-8</li>
</ul>
<h3>Liens</h3>
<ul>
<li>Le <a href="http://scintilla.sourceforge.net/" hreflang="en">site officiel</a> du projet Scintilla.</li>
<li>La <a href="http://sourceforge.net/projects/scintilla" hreflang="en">page sur SourceForge</a>.</li>
<li>Mon <a href="http://files.the-asw.com/dev/SciTEUser.properties">fichier de configuration</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.cloudconnected.fr/2005/11/11/scite-l-editeur-indispensable/feed/</wfw:commentRss>
		<slash:comments>44</slash:comments>
		</item>
		<item>
		<title>Comment avoir des belles fonts sous Debian ?</title>
		<link>http://www.cloudconnected.fr/2005/08/01/comment-avoir-des-belles-fonts-sous-debian/</link>
		<comments>http://www.cloudconnected.fr/2005/08/01/comment-avoir-des-belles-fonts-sous-debian/#comments</comments>
		<pubDate>Mon, 01 Aug 2005 20:58:00 +0000</pubDate>
		<dc:creator>Rémi</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[personnalisation]]></category>

		<guid isPermaLink="false">http://pre.the-asw.com/?p=7</guid>
		<description><![CDATA[S&#8217;il a bien une chose que je trouve particulièrement moche sous Linux, c&#8217;est le système de font par défaut : les polices sont laides et antialisées dans tous les sens. Sans parler des fonts TrueType, qui sont complètement inexistantes ; ou encore des dizaines de méthodes différentes pour installer des fonts&#8230; Voici comment remédier à [...]]]></description>
			<content:encoded><![CDATA[<p>S&#8217;il a bien une chose que je trouve particulièrement moche sous Linux, c&#8217;est le système de font par défaut : les polices sont laides et antialisées dans tous les sens. Sans parler des fonts <a href="http://fr.wikipedia.org/wiki/TrueType" hreflang="fr">TrueType</a>, qui sont complètement inexistantes ; ou encore des dizaines de méthodes différentes pour installer des fonts&#8230; Voici comment remédier à ça !</p>
<p><span id="more-7"></span></p>
<h3>Le système de font</h3>
<p>Honnêtement je ne suis pas sûr d&#8217;avoir tout compris sur la façon dont sont gérées les fonts sous Linux. Beaucoup de noms sont souvent cités mais à quoi servent-ils vraiment ? Voici les informations que j&#8217;ai réussi à glaner :</p>
<ul>
<li> <strong>le serveur X</strong> (xfree 4.x ou x.org) peut gérer des fonts si on lui indique le(s) chemin(s) où chercher. Ces infos se trouvent dans le fichier de configuration (exemple : <code>/etc/X11/xorg.conf</code>), section <code>Files</code>, directives <code>FontPath</code>. </li>
<li> <strong>xfs</strong> : (X Font Server) fourni des polices à X. Il est lancé à part et peut faire des trucs très fun comme fournir des fonts à un X distant via le reseau. En général il est activé dans le fichier de conf de X via la directive :
<pre>FontPath	"unix/:7100"</pre>
<p> Là se posent les premières questions : à quoi sert xfs si le serveur X peut gérer les fonts tout seul comme je viens de le dire ci-dessus ? Un element de réponse dans l&#8217;avant dernier post de <a href="http://forum.hardware.fr/hardwarefr/OSAlternatifs/XFree86-Could-init-font-path-element-unix-7100-sujet-35058-1.htm#t448347" hreflang="fr">ce topic sur HFR</a>. En le virant mon X fonctionne tout aussi bien&#8230; </li>
<li> <strong>xfstt</strong> et <strong>xfs-xtt</strong> sont des alternatives à xfs capables de gérer les polices TrueType à l&#8217;époque où, ni xfs, ni X, ne le pouvait. En gros, à oublier. </li>
<li> <strong>FreeType</strong> (actuellement en version 2) est un moteur de rendu pour, entre autres, les fonts TrueType. Il est disponible sous forme de librairie (paquets <code>libfreetype*</code>). D&#8217;après ce que j&#8217;ai compris, c&#8217;est l&#8217;avenir (mais l&#8217;avenir de quoi ?). Voir le site <a href="http://www.freetype.org/" hreflang="en">http://www.freetype.org/</a> </li>
<li> <strong>fontconfig</strong> est un outil permettant aux applications de trouver les fonts et de les configurer correctement. Seules les applications récentes (GTK 2 par exemple) l&#8217;utilisent. Voir le site <a href="http://www.fontconfig.org/" hreflang="en">http://www.fontconfig.org/</a> pour la doc. </li>
<li> <strong>defoma</strong> (DEbian FOnt MAnager) est l&#8217;outil magique de Debian pour uniformiser et gérer automatiquement tout ce bazar, et faire surement pleins d&#8217;autres trucs cools dont je me secoue le cocotier pour l&#8217;instant. Je sais pas comment il fonctionne, mais il fonctionne et c&#8217;est l&#8217;essentiel :) </li>
</ul>
<h3>Les packages qui vont bien</h3>
<p>Voici les packages à installer (si ce n&#8217;est pas déjà fait). Tout d&#8217;abord, les logiciels/libraires :</p>
<ul>
<li><code>libfreetype6</code> et <code>libttf2</code> pour FreeType</li>
<li><code>fontconfig</code> et <code>libfontconfig1</code> pour fontconfig</li>
<li><code>defoma</code> et <code>x-ttcidfont-conf</code>, les deux packages magiques de Debian</li>
</ul>
<p>Ensuite, pour avoir des fonts sympas :</p>
<ul>
<li>Tous les packages <code>xfonts-*</code> que vous voulez pour avoir des fonts sous X (pas TrueType), et surtout :
<ul>
<li><code>xfonts-100dpi</code></li>
<li><code>xfonts-100dpi-transcoded</code></li>
<li><code>xfonts-75dpi</code></li>
<li><code>xfonts-75dpi-transcoded</code></li>
<li><code>xfonts-base</code></li>
<li><code>xfonts-base-transcoded</code></li>
<li><code>xfonts-scalable</code></li>
</ul>
<p> J&#8217;ai déjà eu des problèmes vraiment bizarres (segfault de certaines applications, ou polices illisibles) si ces packages manquent&#8230; </li>
<li><code>msttcorefonts</code> (disponible dans contrib), pour avoir les fonts Microsoft standards (Verdana, Arial, Times New Roman, Courier New, &#8230;) Indispensable pour surfer correctement !</li>
<li>Tous les packages <code>ttf-*</code> que vous voulez pour avoir des fonts TrueType.</li>
</ul>
<h3>Configuration</h3>
<p>Normalement dpkg doit envoyer un mail à l&#8217;administrateur avec les informations nécessaires pour la configuration du bousin. Si ce n&#8217;est pas le cas, regardez <a href="http://www.fr.debian.org/doc/manuals/reference/ch-tune.fr.html#s-xfs-tt" hreflang="fr">le chapitre &#8220;Polices TrueType dans X&#8221;</a> dans le guide de référence Debian.</p>
<p>Voir également <a href="http://egads.ertius.org/%7Erob/font_guide.txt">cet autre site</a> pour plus d&#8217;informations.</p>
<p>A partir de cette étape, les polices devraient être gérées &#8220;correctement&#8221;, c&#8217;est à dire que, quelque soit l&#8217;application (gtk1 ou gtk2 par exemple), vous aurez toujours les mêmes fonts disponibles (dont les fonts TrueType).</p>
<h3>Antialias et polices par défaut : fontconfig est ton ami</h3>
<p>Première chose qui me semble vital pour avoir un bureau joli : virer les fonts toutes moches fournies par défaut pour les remplacer par leur équivalent Microsoft (je sais, c&#8217;est mal), c&#8217;est à dire :</p>
<table summary="Présentation des familles de caractères et des polices par défaut sous Windows">
<caption>Polices par défaut sous Windows</caption>
<thead>
<tr>
<th>Famille</th>
<th>Windows</th>
<th>Linux</th>
</tr>
</thead>
<tbody>
<tr>
<th>serif</th>
<td>Times New Roman</td>
<td>?</td>
</tr>
<tr>
<th>sans-serif</th>
<td>Verdana</td>
<td>?</td>
</tr>
<tr>
<th>monospace</th>
<td>Courier New</td>
<td>?</td>
</tr>
</tbody>
</table>
<p>Pour ce faire, il faut l&#8217;expliquer à fontconfig. Créez un fichier <code>/etc/fonts/local.conf</code> contenant :</p>
<pre>
&lt;?xml version="1.0"?&gt;
&lt;!DOCTYPE fontconfig SYSTEM "fonts.dtd"&gt;
&lt;fontconfig&gt;
	&lt;!-- Voir la doc de defoma --&gt;
        &lt;dir&gt;/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType&lt;/dir&gt;

        &lt;!-- Alias certaines fonts "connues" par les fonts Microsoft --&gt;
        &lt;alias&gt;
                &lt;family&gt;Times&lt;/family&gt;
                &lt;prefer&gt;&lt;family&gt;Times New Roman&lt;/family&gt;&lt;/prefer&gt;
                &lt;default&gt;&lt;family&gt;serif&lt;/family&gt;&lt;/default&gt;
        &lt;/alias&gt;
        &lt;alias&gt;
                &lt;family&gt;Helvetica&lt;/family&gt;
                &lt;prefer&gt;&lt;family&gt;Verdana&lt;/family&gt;&lt;/prefer&gt;
                &lt;default&gt;&lt;family&gt;sans-serif&lt;/family&gt;&lt;/default&gt;
        &lt;/alias&gt;
        &lt;alias&gt;
                &lt;family&gt;Courier&lt;/family&gt;
                &lt;prefer&gt;&lt;family&gt;Courier New&lt;/family&gt;&lt;/prefer&gt;
                &lt;default&gt;&lt;family&gt;monospace&lt;/family&gt;&lt;/default&gt;
        &lt;/alias&gt;

        &lt;!-- Utiliser de preference les fonts Microsoft --&gt;
        &lt;alias&gt;
                &lt;family&gt;serif&lt;/family&gt;
                &lt;prefer&gt;&lt;family&gt;Times New Roman&lt;/family&gt;&lt;/prefer&gt;
        &lt;/alias&gt;

        &lt;alias&gt;
                &lt;family&gt;sans-serif&lt;/family&gt;
                &lt;prefer&gt;&lt;family&gt;Verdana&lt;/family&gt;&lt;/prefer&gt;
        &lt;/alias&gt;

        &lt;alias&gt;
                &lt;family&gt;monospace&lt;/family&gt;
                &lt;prefer&gt;&lt;family&gt;Courier New&lt;/family&gt;&lt;/prefer&gt;
        &lt;/alias&gt;
&lt;/fontconfig&gt;
</pre>
<p>Exemple trouvé dans la doc de fontconfig, <a href="http://fontconfig.org/fontconfig-user.html">par là</a>.</p>
<p>Ensuite, personnellement, je trouve que l&#8217;anti-alising (<a href="http://fr.wikipedia.org/wiki/Anticr%C3%A9nelage">fr</a>, <a href="http://en.wikipedia.org/wiki/Antialiasing">en</a>) sur (certaines) petites fonts (disons celles inférieures à 14 pouces), c&#8217;est absolument immonde. Les polices apparaissent &#8220;grasses&#8221; et visuellement j&#8217;aime pas du tout.</p>
<p>Pour vous faire une idée, voici ce que ça donne visuellement (avec un Mozilla Firefox fraichement installé) :</p>
<div id="attachment_342" class="wp-caption aligncenter" style="width: 310px"><img src="http://www.cloudconnected.fr/wp-content/uploads/2009/02/fonts_aa_mini.png" alt="Avec anti-aliasing" title="fonts_aa_mini" width="300" height="300" class="size-full wp-image-342" /><p class="wp-caption-text">Avec anti-aliasing</p></div>
<div id="attachment_343" class="wp-caption aligncenter" style="width: 310px"><img src="http://www.cloudconnected.fr/wp-content/uploads/2009/02/fonts_aa2_mini.png" alt="Sans anti-aliasing" title="fonts_aa2_mini" width="300" height="300" class="size-full wp-image-343" /><p class="wp-caption-text">Sans anti-aliasing</p></div>
<p>Mon réglage de l&#8217;anti-aliasing est (toujours dans le fichier <code>/etc/fonts/local.conf</code>) :</p>
<pre>
&lt;!-- L'anti aliasing sur certaines font c'est une horreur... --&gt;
&lt;match target="font"&gt;
	&lt;test name="family"&gt;
		&lt;string&gt;Verdana&lt;/string&gt;
		&lt;string&gt;Arial&lt;/string&gt;
		&lt;string&gt;Times New Roman&lt;/string&gt;
		&lt;string&gt;Courier New&lt;/string&gt;
		&lt;string&gt;Helvetica&lt;/string&gt;
	&lt;/test&gt;
	&lt;test name="size" compare="less"&gt;
		&lt;int&gt;14&lt;/int&gt;
	&lt;/test&gt;

	&lt;edit name="antialias" mode="assign"&gt;
		&lt;bool&gt;false&lt;/bool&gt;
	&lt;/edit&gt;
&lt;/match&gt;
&lt;!--
	et une regle pour firefox, une...
	apparement le nom de la regle a change entre size et pixelsize, a voir
--&gt;
&lt;match target="font"&gt;
	&lt;test name="family"&gt;
		&lt;string&gt;Verdana&lt;/string&gt;
		&lt;string&gt;Arial&lt;/string&gt;
		&lt;string&gt;Times New Roman&lt;/string&gt;
		&lt;string&gt;Courier New&lt;/string&gt;
		&lt;string&gt;Helvetica&lt;/string&gt;
	&lt;/test&gt;
	&lt;test qual="any" name="pixelsize" compare="less_eq"&gt;
		&lt;double&gt;18&lt;/double&gt;
	&lt;/test&gt;
	&lt;edit name="antialias" mode="assign"&gt;
		&lt;bool&gt;false&lt;/bool&gt;
	&lt;/edit&gt;
&lt;/match&gt;
</pre>
<p>Avec tous ces reglages, j&#8217;ai enfin les fonts que j&#8217;aime, et surtout je n&#8217;ai plus à me casser la tête entre les applis gtk1, gtk2 et compagnie ! Après libre à vous d&#8217;adapter ces reglages comme bon vous semble.</p>
<h3>Liens annexes</h3>
<ul>
<li>Un <a href="http://linuxfr.org/forums/15/2132.html" hreflang="fr">journal sur DLFP</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.cloudconnected.fr/2005/08/01/comment-avoir-des-belles-fonts-sous-debian/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>L&#8217;EFREI@home 2 : Place au mode graphique</title>
		<link>http://www.cloudconnected.fr/2005/01/28/efrei-home-2-place-au-mode-graphique/</link>
		<comments>http://www.cloudconnected.fr/2005/01/28/efrei-home-2-place-au-mode-graphique/#comments</comments>
		<pubDate>Fri, 28 Jan 2005 16:01:00 +0000</pubDate>
		<dc:creator>Rémi</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[EFREI]]></category>
		<category><![CDATA[personnalisation]]></category>
		<category><![CDATA[réseaux]]></category>

		<guid isPermaLink="false">http://pre.the-asw.com/?p=59</guid>
		<description><![CDATA[Comme je l&#8217;ai expliqué dans l&#8217;EFREI@home, il est possible d&#8217;accéder à son compte Unix et à n&#8217;importe quelle machine Linux via SSH depuis chez soi. Mais, à part pour les aficionados de la console (vim, mutt, slrn et compagnie), il faut bien avouer que ce n&#8217;est pas très pratique ! Tenez par l&#8217;exemple, pour faire [...]]]></description>
			<content:encoded><![CDATA[<p>Comme je l&#8217;ai expliqué dans <a href="http://www.the-asw.com/articles/2005/11/12/55-efrei-home-ssh-screen-et-choam">l&#8217;EFREI@home</a>, il est possible d&#8217;accéder à son compte Unix et à n&#8217;importe quelle machine Linux via SSH depuis chez soi. Mais, à part pour les <em>aficionados</em> de la console (vim, mutt, slrn et compagnie), il faut bien avouer que ce n&#8217;est pas très pratique ! Tenez par l&#8217;exemple, pour faire mon <em>public_html</em>, j&#8217;aime bien utiliser <a href="http://www.the-asw.com/articles/2005/11/11/54-scite-l-editeur-indispensable">SciTE</a>, qui est un éditeur en mode graphique&#8230; Alors comment faire ?</p>
<p><span id="more-60"></span></p>
<p>Cet article s&#8217;adresse aux heureux utilisateurs de Linux. Il existe peut-être des solutions équivalentes sous Microsoft Windows, mais je ne les connais pas.</p>
<h3>Export display</h3>
<p>L&#8217;<em>export display</em> consiste à lancer une application graphique sur une machine de telle façon qu&#8217;elle s&#8217;affiche sur une autre&#8230; Dans notre cas, il s&#8217;agit de lancer un application sur une des machines Linux de l&#8217;école de façon à ce qu&#8217;elle s&#8217;affiche sur l&#8217;ordinateur local.</p>
<p>C&#8217;est possible, en enchainant deux <code>ssh -X</code>. Par exemple, pour se connecter directement sur <code>buffy</code> :</p>
<pre>ssh -X toto@choam.efrei.fr -t ssh -X buffy</pre>
<p>Essayez de lancer une application graphique (<code>scite</code> par exemple), allez vous chercher un café (parceque la connexion de l&#8217;EFREI est à peut pret aussi rapide qu&#8217;un modem 56K asthmatique) et admirez le résultat ! Ensuite, fermez parceque c&#8217;est complètement inutilisable tellement ça rame.</p>
<h3>Monter son home en local</h3>
<p>L&#8217;export display étant totalement inutilisable à cause de la bande passante minable, l&#8217;autre solution est de monter son home de telle manière que les applications locales puissent y acceder. Pour ça, il faut utiliser un système de fichier qui permet de monter des repertoires via SSH.</p>
<h4>Avec SHFS</h4>
<p><a href="http://shfs.sourceforge.net/" hreflang="en">SHFS</a>, pour <em>(Secure) SHell FileSystem</em>, se présente comme un module noyau (<code>shfs</code>) et un utilitaire (<code>shfsmount</code> et <code>shfsumount</code>). L&#8217;installation est tout ce qu&#8217;il y a de plus simple : il suffit de compiler le module, le charger, et monter son home !</p>
<h5>Installation du module</h5>
<p>Les utilisateurs de Debian peuvent installer le paquet <code>shfs-source</code>. La compilation du module façon debian (à condition d&#8217;avoir déjà les sources d&#8217;un noyau <a href="http://www.us.debian.org/doc/manuals/reference/ch-kernel.fr.html#s-kernel-debian" hreflang="fr">compilé à la sauce Debian</a>) se résume ça :</p>
<pre>
$ cd /usr/src/
$ tar xjvf shfs.tar.bz2
$ cd linux
$ fakeroot make-kpkg modules_image
$ cd ..
# dpkg -i shfs-module-[...].deb
</pre>
<p>Les autres devraient chercher dans les packages de leur distribution, ou aller télécharger les sources du module noyau sur le site officiel. Je vous conseille de lire le <a href="http://shfs.sourceforge.net/install.html" hreflang="en">guide d&#8217;installation</a> très bien fait du site officiel (même moi j&#8217;ai réussi en moins de 5 minutes, c&#8217;est pour dire&#8230;).</p>
<h5>Installation des outils</h5>
<p>Il suffit d&#8217;installer le paquet <code>shfs-utils</code> pour Debian, ou de chercher pour les autres distributions. Il faut mettre le bit suid root à <code>shfsmount</code> et <code>shfsumount</code> pour qu&#8217;ils fonctionnent pour un utilisateur classique (non root). Normalement, <code>dpkg</code> pose la question (il suffit de répondre <em>Yes</em>). Sinon, utilisez <code>chmod +s</code>.</p>
<h5>Utilisation</h5>
<p>Une fois le module noyau compilé et installé, il reste à le charger, avec un <code>modprobe shfs</code> par exemple.</p>
<p>Et voila, maintenant vous pouvez monter votre compte Unix en local (par exemple sur <code>~/efrei</code>) via une commande du type :</p>
<pre>shfsmount -s login@choam.efrei.fr ~/efrei</pre>
<p>Avec <code>login</code> à remplacer par votre login EFREI.</p>
<p>Note : Le site officiel de SHFS : <a href="http://shfs.sourceforge.net/">http://shfs.sourceforge.net/</a></p>
<h4>Avec FUSE (kernel &gt;= 2.6.14)</h4>
<p>Il parait que FUSE (Filesystem USErland), inclu dans les noyau Linux à partir de la version 2.6.14, doit plus ou moins remplacer SHFS. Je n&#8217;ai personnellement pas testé, mais s&#8217;il y a des gens interessés, l&#8217;adresse est : <a href="http://fuse.sourceforge.net/sshfs.html" hreflang="en">http://fuse.sourceforge.net/sshfs.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cloudconnected.fr/2005/01/28/efrei-home-2-place-au-mode-graphique/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ma Divxbox : Configurer la sortie TV</title>
		<link>http://www.cloudconnected.fr/2004/05/17/ma-divxbox-configurer-la-sortie-tv/</link>
		<comments>http://www.cloudconnected.fr/2004/05/17/ma-divxbox-configurer-la-sortie-tv/#comments</comments>
		<pubDate>Mon, 17 May 2004 11:21:00 +0000</pubDate>
		<dc:creator>Rémi</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[matériel]]></category>
		<category><![CDATA[personnalisation]]></category>

		<guid isPermaLink="false">http://pre.the-asw.com/?p=10</guid>
		<description><![CDATA[Configurer la sortie TV est l&#8217;étape la plus importante (et aussi la plus difficile) dans la réalisation de la divxbox. Les enjeux sont énormes : Sans sortie TV pas de divxbox :) La sortie TV doit permettre d&#8217;utiliser correctement la carte vidéo pour lire les vidéos, par exemple la vo xv de mplayer pour soulager [...]]]></description>
			<content:encoded><![CDATA[<p>Configurer la sortie TV est l&#8217;étape la plus importante (et aussi la plus difficile) dans la réalisation de la divxbox. Les enjeux sont énormes :</p>
<ul>
<li>Sans sortie TV pas de divxbox :)</li>
<li>La sortie TV doit permettre d&#8217;utiliser correctement la carte vidéo pour lire les vidéos, par exemple la vo xv de mplayer pour soulager le cpu</li>
<li>La sortie TV doit être de bonne qualité, parceque regarder un film avec un affichage tout pourri , ça gache tout&nbsp;!</li>
</ul>
<p>J&#8217;ai personnellement bien lutté pour obtenir une sortie TV correcte, mais bon je n&#8217;ai jamais eu beaucoup de chance avec Linux. Donc tout ce que je peux vous souhaiter c&#8217;est de trouver la bonne carte du premier coup&nbsp;!</p>
<p><span id="more-10"></span></p>
<h3>NVidia GeForce 2 MX 400</h3>
<p>Mon premier essai est avec une ancienne GeForce 2 MX 400 équipée d&#8217;une sortie TV composite. Au boot, la sortie TV s&#8217;active toute seule et reste à peut près potable pour le mode console pur et dur.</p>
<p>Le framebuffer par défaut active egalement la sortie TV sans problème. Il faut juste regler la résolution dans le fichier <code>/etc/lilo.conf</code> avec le paramètre <code>vga</code>. Par exemple <code>vga=789</code> pour un affichage 800&#215;600 en 16 millions de couleurs. Ci-après le tableau de tous les codes (il me semble que certains ne fonctionnent qu&#8217;avec <a href="http://www.bootsplash.org">bootsplash</a>).</p>
<pre>
Colors-----640x480-----800x600-----1024x768-----1280x1024
256----------769---------771----------773----------775
32000--------784---------787----------790----------793
65000--------785---------788----------791----------794
16.7 Mill.---786---------789----------792----------795 </pre>
<p>Pour XFree 4.3 maintenant, c&#8217;est une autre paire de manches à tordre. Les drivers libres (&#8220;nv&#8221;) sont, d&#8217;après ce que j&#8217;ai pu tester, incapables de gerer tout seul la sortie TV (sans parler du fait qu&#8217;il n&#8217;y aura aucune acceleration 3D). Donc il faut installer les <a href="http://www.nvidia.com/object/linux.html">drivers propriétaires</a> et configurer XFree. Heureusement, les drivers de NVidia, malgré leurs nombreux défauts, sont relativement bien documentés concernant la sortie TV (voir APPENDIX J: CONFIGURING TV-OUT dans le README des drivers).</p>
<p>En résumé, il faut ajouter des sections screen et monitor correspondantes à la télé :</p>
<pre>
Section "Monitor"
        Identifier      "TV"
        HorizSync       30-50
        VertRefresh     60
EndSection
Section "Screen"
        Identifier  "tvout800"
        Device      "geforce"
        Monitor     "TV"
        DefaultDepth 24
        Option "TVStandard" "PAL-N"
        Option "ConnectedMonitor" "TV"
        Option "TVOutFormat" "COMPOSITE"
        Option "NoLogo" "on"
        Subsection "Display"
                Depth       24
                Modes       "800x600"
                ViewPort    0 0
        EndSubsection
EndSection
</pre>
<p>Mon fichier de config complet pour XFree 4.3 est disponible <a href="/files/linux/XF86Config-4.nvidia">par ici</a>.</p>
<p>Un programme permet également de bidouiller la sortie TV des cartes nvidia : <code>nvtv</code>. Honnêtement j&#8217;ai toujours pas compris comment il fonctionne, comment on enregistre la configuration, etc&#8230; Et puis comme les drivers proprios donnent de bons résultats j&#8217;ai laissé tomber.</p>
<p>Pour lancer Xfree sur la télé j&#8217;utilise la commande :</p>
<pre>startx -- -screen tvout800</pre>
<p>Ensuite je peux lancer mplayer, mais c&#8217;est là que ça se gâte. La vo x11 fonctionne bien mais, comme elle n&#8217;utilise pas du tout les possibilités de la carte graphique, pompe la quasi-totalité du CPU (surtout en plein écran à cause du redimensionnement). Bref inutilisable. L&#8217;idéal est la vo xv, mais là suprise, alors que sur un écran ça fonctionne, sur la télé il y a des bandes bleu vif sur la gauche et sur le haut du film !</p>
<div id="attachment_375" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.cloudconnected.fr/wp-content/uploads/2009/02/nvidia_xv.jpg" rel="lightbox" title="Nvidia avec xv"><img src="http://www.the-asw.com/wp-content/uploads/2004/05/nvidia_xv-300x225.jpg" alt="Nvidia avec xv" title="nvidia_xv" width="300" height="225" class="size-medium wp-image-375" /></a><p class="wp-caption-text">Nvidia avec XV</p></div>
<p>Pour l&#8217;instant je n&#8217;ai rien trouvé sur le net se rapportant à ce problème, après plusieurs nuits blanches j&#8217;ai donc décidé de laisser tomber cette carte. Cela dis si une star en Linux connait la solution à ce problème, je suis toujours preneur :)</p>
<h3>ATI Rage 128</h3>
<p>En cherchant un peu suite à mes déboires avec la GeForce2, j&#8217;ai vu ça et là que les sorties TV des cartes ATI était censé être beaucoup mieux que les NVidia. Bah ça tombe bien j&#8217;ai une ATI Rage 128 AGP sous la main&#8230;</p>
<p>Comme précedemment, la console standard et le framebuffer s&#8217;activent sans problème (à condition que la sortie TV soit branchée au boot).</p>
<p>Par contre, les drivers <code>r128</code> par défaut de XFree n&#8217;affichent rien du tout sur la télé, et pire, si la sortie TV est branchée au boot, l&#8217;affichage sur l&#8217;écran déconne&nbsp;! Bon il existe un programme, <code>atitvout</code>, qui est censé activer les sorties télé des cartes ATI&#8230; Manque de bol avec ma carte il ne fonctionne pas, et comme il n&#8217;est plus maintenu par l&#8217;auteur il ne faut pas trop esperer&#8230;</p>
<p>Je me suis ensuite tourné vers les drivers <a href="http://gatos.sf.net">Gatos</a>, qui sont censés faire des miracles et notamment activer la sortie TV des Rage 128. Encore une fois manque de bol avec ma carte ils ne fonctionnent pas.</p>
<p>En dernier recours, j&#8217;ai tenté les drivers <code>vesa</code>. Évidemment ils fonctionnent bien mais :</p>
<ol>
<li>Aucune acceleration 3D</li>
<li>Aucune vo performante disponible pour mplayer (uniquement <code>vesa</code>)</li>
<li>La qualité des films en vo vesa n&#8217;est pas top (problème de rafraichissement je suppose)</li>
</ol>
<p>Sur <a href="http://www.lahiette.com/biboobox/?Freevo/La+sortie+TV">le site de BibooBox</a> il y a d&#8217;autres solutions proposées, mais aucune d&#8217;entre elles ne fonctionnaient avec mon modèle de Rage 128. Bref c&#8217;est inutilisable, alors j&#8217;ai laissé tomber cette carte.</p>
<h3>NVidia GeForce 4 MX 440</h3>
<p>N&#8217;ayant plus aucune vieille carte disponible sous la main, et n&#8217;ayant plus rien à perdre, j&#8217;ai pris une GeForce 4 MX 440 (les cartes pas chères pour bureautique de NVidia) d&#8217;un PC qui ne servait plus trop pour la tester sur la DivxBox&#8230;</p>
<p>J&#8217;ai utilisé exactement la même config que pour la GeForce 2 MX 400, sauf que là, surprise, pas de bandes bleues sur la sortie xv ! La vidéo est niquelle, et (seulement) 25% du CPU sont utilisés pour lire un divx (vo xv rulez !)</p>
<p>Bon il faut bien l&#8217;admettre, mettre une GeForce 4 (même si c&#8217;est une MX) dans un p3 500 je trouve que c&#8217;est un peu du gâchis parce que j&#8217;avais des vieilles cartes à recycler. Mais ça faisait déjà trop longtemps que je cherchais à faire fonctionner une sortie TV correcte, alors maintenant que ça fonctionne je garde !</p>
<h3>Autres pistes : Carte de décompression MPEG (dxr3)</h3>
<p>J&#8217;ai retrouvé dans les placards une vieille carte de décompression MPEG2 (dvd) &#8220;Hollywood +&#8221;, équipée d&#8217;une sortie TV S-VIDEO ainsi que d&#8217;une sortie Audio. Après quelques recherches, j&#8217;ai découvert que ce type de carte était bien gérée sous Linux. Chouette !</p>
<p>Liens :</p>
<ul>
<li><a href="http://lea-linux.org/hardware/xine_dxr3.html">Tutorial sur Lea Linux</a></li>
<li><a href="http://dxr3.sourceforge.net/">Le projet dxr3 et Hollywood Plus</a></li>
</ul>
<p>Encore une fois je remercie cette merveilleuse distribution qu&#8217;est Debian, puisque des paquets sont dispo pour configurer très facilement cette carte. Leur nom commence par <code>em8300</code>. L&#8217;un deux installe tout ce qu&#8217;il faut (device, fichier de conf, etc&#8230;) et un autre contient les sources pour compiler un module noyau (à la sauce debian, c&#8217;est à dire <code>make-kpkg module-image</code> dans les sources du noyau). Bref si on est un peu à l&#8217;aise avec les méthodes de Debian ça se fait très facilement (même moi j&#8217;ai réussi tout seul, c&#8217;est pour dire !)</p>
<p>Je n&#8217;ai toutefois pas pousser plus loin cette solution, pour plusieurs raisons :</p>
<ul>
<li>La sortie TV en S-Video, ça suxor un peu quand on a pas de quoi la convertir en Composite ou Peritel (seules prises gérée par ma télé :)</li>
<li>Il faut recompiler mplayer avec le support dxr3. Et pour utiliser Freevo il faut également recompiler la libSDL comme indiquée sur <a href="http://freevo.sourceforge.net/cgi-bin/doc/Hardware/DXR3">la doc de Freevo</a></li>
<li>Les applications qui n&#8217;utilisent pas la libSDL pour l&#8217;affichage ne pourront pas s&#8217;afficher sur la sortie dxr3 (en tous cas je n&#8217;ai pas trouvé comment)</li>
</ul>
<p>Malgré ça, l&#8217;utilisation d&#8217;une carte de décompression présente des avantages non négligeable :</p>
<ul>
<li>Permet de lire des DVD sur des petites machines</li>
<li>La mienne possède une sortie audio, gérée par OSS, donc pas besoin de carte son supplémentaire à priori&#8230;</li>
<li>Pareil pour la carte graphique, il serait surement possible de s&#8217;en passer&#8230;</li>
</ul>
<p>A toi de voir&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cloudconnected.fr/2004/05/17/ma-divxbox-configurer-la-sortie-tv/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

