<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
    "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" >

<article id="index.html" lang="fr">

<articleinfo>

<title>Guide pratique de l'utilisateur de X Window</title>
<subtitle>Version française du <foreignphrase lang="en">The X Window User HOWTO</foreignphrase></subtitle>

<releaseinfo>Version : 3.1.fr.1.0</releaseinfo>

<pubdate>3 Octobre 2006</pubdate>

<authorgroup>
 <author>
  <firstname>Hal</firstname>
  <surname>Burgiss</surname>
   <affiliation>
    <address>
     <email>hal@foobox.net</email>
    </address>
   </affiliation>
 </author>
</authorgroup>

<othercredit role="traduction" class="translator">
  <firstname>Yann</firstname>
  <surname>Mombrun</surname>
  <contrib>Adaptation française</contrib>
  <email>yann POINT mombrun CHEZ insa TIRET rouen POINT fr</email>
</othercredit>

<!-- À compléter, puis à décommenter par le relecteur

<othercredit role="relecture" class="translator">
  <firstname>Alice</firstname>
  <surname>Martin</surname>
  <contrib>Relecture de la version française</contrib>
  <email>alice CHEZ ouebe POINT org</email>
</othercredit>

-->

<othercredit role="publication" class="copyeditor">
  <firstname>Jean-Philippe</firstname>
  <surname>Guérard</surname>
  <contrib>Préparation de la publication de la v.f.</contrib>
  <email>fevrier CHEZ tigreraye POINT org</email>
</othercredit>

<revhistory>
  <revision>
   <revnumber>3.1.fr.1.0</revnumber>
    <date>2006-10-03</date>

    <!-- Le XXX doit être remplacé par les initiales du relecteur -->

    <authorinitials>YM, XXX, JPG</authorinitials>

     <revremark>
      Première traduction française. Conversion au format docbook 4.2.
     </revremark>
  </revision>
 <revision>
   <revnumber>v3.1</revnumber>
    <date>2002-10-10</date>
    <authorinitials>HB</authorinitials>
     <revremark>
      Quelques petits ajouts et mises à jour. <emphasis lang="en">(Some minor additions and updates.)</emphasis>
     </revremark>
  </revision>
 <revision>
   <revnumber>v3.0</revnumber>
    <date>2002-03-06</date>
    <authorinitials>HB</authorinitials>
     <revremark>
       Réécriture du document original. Convertion au format DocBook. Très nombreuses modifications. <emphasis lang="en">(Rewrite of the original document. Convert to DocBook. Many, many changes.)</emphasis>
     </revremark>
  </revision>
</revhistory>

<keywordset>
 <keyword>X</keyword>
 <keyword>X11</keyword>
 <keyword>XFree</keyword>
 <keyword>XFree86</keyword>
 <keyword>X Window</keyword>
 <keyword>GUI</keyword>
 <keyword>windows</keyword>
 <keyword>desktop</keyword>
 <keyword>display</keyword>
 <keyword>display manager</keyword>
 <keyword>xdm</keyword>
 <keyword>affichage</keyword>
 <keyword>bureau</keyword>
 <keyword>gestionnaire d'affichage</keyword>
</keywordset>

<abstract>

<!--

<para>
 <remark>
Changements pour la v4.x :

- tag artheader changé en articleinfo
- le tag graphic devient à éviter dans DocBook 5.x. Pour nous y préparer, nous devons utiliser le tag mediaobject à la place.
- le format de fichier pour imagedate doit être en lettres capitales.
- ajout de la compatibilité avec le PNG (notation dans la DTD)


  -s+ [ser@metalab.unc.edu]
  
 aspell -H -c ~/ldp/x-user/LDP/howto/docbook/XWindow-User-HOWTO.sgml
 submit@linuxdoc.org
 
 export CVSROOT=:pserver:hal@cvs.linuxdoc.org:/cvsroot
 cvs -d $CVSROOT login
 pword: XXXXXXXXXXXXXX

 $cvs get LDP/howto/docbook/XWindow-User-HOWTO.sgml

 téléchargement vers le serveur...
 $ cvs commit XWindow-User-HOWTO.sgml      vvvvvvvvvvvvvvvvvvvvvv!
 (depuis le répertoire LDP/howto/docbook/)

vérifier ici : http://cvs.pld.org.pl/LDP/howto/docbook/XWindow-User-HOWTO.sgml

====================================
Début 3.1 :
 &Agrave; faire :

Changements:
    http://www.plig.org/xwinman (plus freshmeat)
    Comparaison entre VNC et X du point de vue de la performance sur le réseau.
    lbxproxy, performance.
    Ajout de la fluxbox.

Début de réécriture le 13 janvier 2002 par Hal Burgiss.

Changements:
 Conversion vers DocBook
 Réécriture ! Réécriture! 
 Des tonnes de changement.

&Agrave; faire :
 $DISPLAY
 http://www.superant.com/cgi-bin/smalllinux.pl?smallX
 http://www.linuxgazette.com/issue27/kaszeta.html (xdm)
 http://linux.daphnis.com/RedHat/Custom-X-Tips.html#toc4 (Xclients, etc.)
 http://www.linuxjournal.com/print.php?sid=5304 (configuration de X, etc.)
 fichier journal
 
http://www.linux.gr/cgi-bin/man2html/usr/X11R6/man/man7/X.7.gz
http://www.x-docs.org/

startx &amp;> log

_X11TransSocketUNIXConnect: Can't connect: errno = 111 giving up.
xinit:  Connection refused (errno 111):  unable to connect to X server
xinit:  No such process (errno 3):  Server error.

## Fichier Makefile pour construire le document en HTML ou en TXT ####################

# Fichier Makefile du guide pratique de l'utilisateur de X Window
#
# Hal Burgiss hal@foobox.net
#

TITLE = XWindow-User-HOWTO
EXT = sgml
SRC_DIR = LDP/howto/docbook
HTML_DIR = X-USER
SRC = $(SRC_DIR)/$(TITLE).$(EXT)

BUILD = jade -t sgml -ihtml -d /usr/lib/sgml/stylesheets/ldp.dsl\#html
BUILD_TXT = jade -t sgml -i html -d /usr/lib/sgml/stylesheets/ldp.dsl\#html -V nochunks
SPELL_CMD = aspell -H -c
LINKS_CMD = /usr/bin/linkchecker *html
EDIT_CMD = /usr/bin/vim -g
TBROWSER = w3m
TMP_TXT = __tmp.sgml
WWW=/var/www/html/ldp/x-user
SRC_URL = http://feenix.burgiss.net/ldp/x-user/$(TITLE).$(EXT).gz

all: doc txt

doc: html

html:
	rm -fr $(HTML_DIR)
	mkdir -p __tmp_htmls
	mv -f *.html __tmp_htmls 2>/dev/null || :
	mkdir -p $(HTML_DIR) 
	$(BUILD) $(SRC) ||\
	 (rm -f *.html &amp;&amp; mv -f __tmp_htmls/* . || : &amp;&amp; rm -rf __tmp_htmls &amp;&amp; false)
	mv -f *html $(HTML_DIR)
	mv -f __tmp_htmls/* .  2>/dev/null || :
	rm -fr __tmp_htmls

clean:
	rm -fr $(HTML_DIR) *~  __tmp_htmls

edit:
	$(EDIT_CMD) $(SRC)


spell:
	$(SPELL_CMD) $(SRC)

spellchecker: spell


links:
	cd $(HTML_DIR) &amp;&amp; $(LINKS_CMD)

linkchecker: links

linkcheck: links

txt:
	$(BUILD_TXT) $(SRC) > $(TMP_TXT).html 
	$(TBROWSER) -dump $(TMP_TXT).html > $(TITLE).txt &amp;&amp; gzip -f $(TITLE).txt &amp;&amp; rm -f $(TMP_TXT).html

text: txt

www:
	cp -fv $(HTML_DIR)/* $(TITLE).txt.gz $(SRC) $(WWW)
	gzip -f $(WWW)/$(TITLE).sgml
	rsync -auv $(WWW)/* feenix://$(WWW)/

submit:
	@echo "Updated and ready:  $(SRC_URL)" |\
	mail -s "$(TITLE) update" submit@linuxdoc.org &amp;&amp;\
	echo " $(TITLE) Submitted!"

 </remark>
</para>

-->

<para>
Ce document donne aux utilisateurs de Linux les informations de base pour comprendre et configurer le système X-Window. Le document est sensé être de niveau débutant. On part du principe que les bases en configuration de logiciels sont acquises, et que le système X Window est installé et fonctionne.
</para>

</abstract>

</articleinfo>



<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect1 id="intro">
<title>Introduction</title>

<para>
Le <emphasis>système X-Window</emphasis> est un environnement avancé, de traitement graphique et de réseau, qui a été conçu depuis le début comme système multi-utilisateurs. La première version de <application>X</application>  est sortie en 1984. Si vous ne connaissez pas les concepts de base qui s'appliquent à <application>X</application> et aux composants associés, il faut d'abord lire le <citetitle><foreignphrase lang="en">X Window System Architecture Overview HOWTO</foreignphrase></citetitle>, <ulink url="http://linuxdoc.org/HOWTO/XWindow-Overview-HOWTO/index.html"> http://linuxdoc.org/HOWTO/XWindow-Overview-HOWTO/index.html</ulink>, pour avoir une idée de la façon dont les divers composants s'assemblent. On y trouvera également des propositions de définitions de divers termes relatifs à <application>X-Window</application> dans <link linkend="terms">l'annexe</link>, si les concepts tels que <quote>affichages</quote> [<foreignphrase lang="en">displays</foreignphrase>] ou <quote>clients X</quote> vous posent problème dans ce contexte.
</para>

<para>
Dans ce document, nous aborderons la configuration et l'utilisation de base de <application>X-Window</application> sous <application>Linux</application>. Nous regarderons également la façon la plus courante de lancer <application>X</application> avec <application>Linux</application>, et comment on peut configurer le démarrage, ainsi que les questions qui s'y rattachent. Nous n'étudierons ni la configuration du gestionnaire de fenêtre (par exemple <application>fvwm</application>) ni celle de l'environnement graphique (<application>KDE</application> et <application>GNOME</application>). Il y a bien trop de variables et les changements sont trop fréquents. Bien évidement l'utilisateur interagit beaucoup plus directement avec ces composants que le <application>serveur X</application> lui-même ; des lectures complémentaires seraient donc bien utiles. Etudiez la documentation fournie en local et consultez les pages web respectives pour obtenir plus d'informations.
</para>

<para>
Voici quelques autres points importants à retenir&nbsp;:
</para>

<para>
 <itemizedlist>

 <listitem>
 <para><application>X</application> est un système client-serveur et multi-utilisateur à tout point de vue, et pas uniquement une interface graphique.</para>
 </listitem> 
 
 <listitem>
 <para><application>X</application> n'est pas intégré dans le système d'exploitation, il s'installe au-dessus, comme les autres serveurs.</para>
 </listitem> 

 <listitem>
 <para><application>X</application> est un standard ouvert, et tourne sur de nombreuses plateformes.</para>
 </listitem> 

 <listitem>
  <para>Ce que vous voyez en fait à l'écran est le résultat de divers composants, fonctionnant tous ensemble : le système d'exploitation, <application>X</application>, le gestionnaire de fenêtres, et le cas échéant, un environnement graphique comme <application>GNOME</application> ou <application>KDE</application>. Ceux-ci sont des composants prêts à l'emploi [<foreignphrase lang="en">plug-and-play</foreignphrase>], c'est-à-dire qu'il est possible de remplacer un composant particulier sans toucher aux autres.</para>
 </listitem> 

 <listitem>
     <para>Chacun de ces composants a sa propre configuration. Cela donne un système très souple et potentiellement très robuste. Cela ajoute également de la complexité.</para>
 </listitem> 

 </itemizedlist>
</para>

<para>
L'intérêt sera ici uniquement porté sur <application>X</application> tel qu'il est implémenté par le projet <ulink url="http://xfree86.org">le projet XFree86,</ulink>, sous Linux. Il existe d'autres implémentations, notamment des versions commerciales. XFree86 v4.x est sortie depuis longtemps maintenant, nous parlerons donc de cette version. La majorité du document s'applique également à la version précédente (3.x), mais il peut y avoir parfois quelques différences.
</para>

<para>
Il est également à noter qu'il y a peut-être de nombreuses façons de démarrer <application>X</application> et de configurer un système Linux. Nous nous concentrerons sur les méthodes courantes que l'on trouve dans les distributions Linux. En outre, les revendeurs peuvent faire varier l'emplacement des fichiers de configuration et leur nom. Gardez ceci en tête si vous rencontrez de telles anomalies dans ce document. Si cela pose problème, votre revendeur a sûrement sa propre documentation. Et comme toujours, espérons que les pages de man correspondront à votre installation.
</para>

<para>
Nous verrons également de nombreux fichiers de configuration dans les sections suivantes. Ce sont tous des fichiers de type texte,  vous pouvez les éditer avec votre éditeur préféré. Faites toujours une copie de sauvegarde avant d'éditer les fichiers importants, vu que les ennuis arrivent toujours quand on ne les attend pas (<quote>par exemple  cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4.bak</quote>).
</para>

<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect2>
<title>Nouvelles version et journal des changements</title>

<para>
 La version officielle actuelle de ce guide est disponible sur le site du projet de documentation Linux (<foreignphrase lang="en">Linux Documentation Project </foreignphrase> <ulink url="http://www.linuxdoc.org/HOWTO/XWindow-User-HOWTO.html">http://www.linuxdoc.org/HOWTO/XWindow-User-HOWTO.html</ulink>). Des versions béta peuvent être périodiquement disponibles sur <ulink
 url="http://feenix.burgiss.net/ldp/x-user/">http://feenix.burgiss.net/ldp/x-user/</ulink>. 
</para>

<para>
 v3.1&nbsp;: uniquement quelques petites modifications mineures. Comporte un lien vers <ulink url="http://www.plig.org/xwinman/">http://www.plig.org/xwinman/</ulink> qui est très utile pour l'achat de gestionnaires de fenêtre. Ajout d'un lien vers la fluxbox, un gestionnaire de fenêtres avec onglets. Ajout d'une courte section sur l'amélioration des performances en réseau. Vérification du fonctionnement de tous les liens.
</para>

<para>
 v3.0&nbsp;: document largement remanié avec de nombreuses nouvelles sections. Certaines sections ont été supprimées, pour se concentrer maintenant exclusivement sur <application>X</application> proprement dit (et non plus les clients comme les gestionnaires de fenêtre).
 Nouveau responsable de la maintenance également :-)
</para>

<para>
 v2.0&nbsp;: comporte des corrections de Guus Bosch, Brian J. Miller, et de moi-même, ainsi que de nombreuses nouvelles mises à jour et informations.
</para>

<para>
 v1.4&nbsp;: comporte des corrections de Anthony J., et quelques très bon conseils pour la sécurité de Tomasz Motylewski.
</para>

</sect2>

<!--  ~  Fin section  ~  -->



<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect2>
<title>&Agrave; faire</title>

<para>
Une partie <quote>résolution des problèmes</quote> toute simple. Probablement pour la v3.2.
</para>

</sect2>

<!--  ~  Fin section  ~  -->


<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect2>
<title>Retour d'information</title>

<para>
Si vous avez des questions ou des commentaires à propos de ce document, n'hésitez pas à me contacter par courriel, Hal Burgiss, <email>hal@foobox.net</email>. Toutes suggestions, corrections ou ajouts sont les bienvenus. S'il y a des informations que vous souhaitez voir dans les prochaines versions, ou si vous souhaitez participer à une prochaine version, envoyez moi un message.
</para>

</sect2>

<!--  ~  Fin section  ~  -->


<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect2>
<title>Au secours&nbsp;!! </title>

<para>
  J'ai assuré la maintenance de ce document parce qu'elle avait été abandonnée et un jour j'ai voulu faire une proposition de modification. Eh bien, pour faire court, cela a mené à une refonte majeure. Vous pouvez aider à l'amélioration de ce document en corrigeant les inexactitudes, en clarifiant les points obscurs et en proposant des améliorations. Il y a beaucoup de choses sur ce sujet que je ne connais peut-être pas ou que j'ai mal expliquées. Avec votre aide, nous améliorerons ce document et aiderons les autres utilisateurs. Ce document <emphasis>a besoin</emphasis> de votre aide&nbsp;!
</para>

</sect2>

<!--  ~  Fin section  ~  -->

<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect2>
<title>Remerciements</title>

<para>
Merci à l'équipe de développement de XFree86 pour les efforts dépensés à fournir un GUI flexible et robuste.
Merci également à toute la communauté de GNU/Linux et Open Source pour avoir permis cela.
 </para>

<para>
 Merci également à l'auteur original, Ray Brigleb.
</para>

<para>
 Un certain nombre d'utilisateurs de comp.os.linux.x qui m'ont aidé d'une certaine façon, qu'il le sache ou non.
 </para>

<para>
 Finalement, <ulink url="http://google.com/linux">http://google.com/linux</ulink>, qui m'a sauvé de nombreuses fois avec leur incroyable référentiel d'informations. Utilisez le pour répondre aux questions non traités ici&nbsp;!
 
</para>

</sect2>

<!--  ~  Fin section  ~  -->



<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect2>
<title>Copyright</title>

<para>
 Copyright &copy; 2002, Hal Burgiss. 
</para>

<para>
Sauf indication contraire, les guides pratiques de Linux sont couverts par leurs droits d'auteur respectifs. Les guides pratiques de Linux peuvent être reproduits et distribués entièrement ou partiellement, avec tout média physique ou électronique, tant que cette notification de copyright est maintenue sur toutes les copies. La redistribution commerciale est permise et encouragée&nbsp;; cependant, l'auteur voudrait être avisé de telles distributions. 
</para>

<para>
Toutes les traductions, produits dérivés, ou des travaux d'agrégat incorporant n'importe quel guide pratique de Linux doivent être couverts sous cette notification de copyright. C'est-à-dire, vous ne pouvez pas produire un travail dérivé à partir d'un guide pratique et imposer des restrictions additionnelles à sa distribution. Il est possible d'accorder des exceptions à ces règles sous certaines conditions&nbsp;; veuillez contacter le coordonnateur des guides pratiques de Linux pour plus d'information. 
</para>

<para>
En bref, nous souhaitons favoriser la diffusion de cette information par autant de canaux que possibles. Cependant, nous souhaitons maintenir copyright sur les guides pratiques, et voudrions être avisés de tout projet pour redistribuer les guides pratiques, celui-ci en particulier&nbsp;! 
</para>

<para>
Certaines des termes mentionnés dans ce document sont des noms de marque. Sauf indication contraire, toutes les marques déposées appartiennent à leurs propriètaires respectifs. 
</para>

<para>
 <quote>X Window System</quote> est une marque déposée par le X Consortium, Inc [devenu le OpenGroup&nbsp;?].

</para>

<para>
 <quote>XFree86</quote> est une marque déposée par <quote><ulink url="http://xfree86.org">The
 XFree86 Project, Inc</ulink></quote>.

</para>

<para>
 <quote>Linux</quote> est une marque déposée de Linus Torvalds.
</para>

</sect2>

<!--  ~  Fin section  ~  -->



<!--   ~~~~~       Nouvelle section      ~~~~~     -->
<sect2>
<title>Avertissement d'usage</title>
<para>
 Les informations et exemples donnés ici le sont à titre d'illustration. A utiliser à vos risques et périls. On a fait le maximum pour s'assurer que le contenu de ce document était exact. Si vous trouvez des inexactitudes, veuillez m'envoyer les modifications à faire. 
</para>

<para>
Toute référence à une compagnie, un produit ou un nom de marque particulier ne doit pas être interprétée comme une forme de publicité. 
</para>

</sect2>

</sect1>

<!--  ~  Fin section  ~  -->



<!--   ~~~~~~~~       Entète nouvelle section    ~~~~~~~~~     -->

<sect1 id="xfree86">
<title>XFree86</title>
<para>
Quasiment toutes les distributions Linux sont fournies avec une implémentation du <application>système X-Window</application> de XFree86. C'est un projet qui nous fournit évidemment le serveur X, mais qui comporte également une suite étendue d'utilitaires et d'applications pour permettre l'implémentation d'un environnement entièrement fonctionnel de l'interface graphique.
</para>

<para>
 En fait, la liste serait tout simplement trop longue s'il fallait énumérer tout ce qui est fourni avec XFree86. En plus du serveur X lui-même, voici quelques-uns des utilitaires les plus remarquables :
</para>

<simplelist>
 <member>
   <command>xdm</command> le gestionnaire d'affichage de X.
 </member>
</simplelist>

<simplelist>
 <member>
   <command>xfs</command> - le serveur de police de X.
 </member>
</simplelist>

<simplelist>
 <member>
  <command>twm</command> - gestionnaire de fenêtre léger.
 </member>
</simplelist>

<simplelist>
 <member>
  <command>xterm</command> - l'émulateur de terminal le plus connu. Egalement, <command>xterm3d</command> et <command>nxterm</command>.
 </member>
</simplelist>

<simplelist>
 <member>
  <command>xwd</command> - utilitaire pour faire les captures d'écran et de fenêtre.
 </member>
</simplelist>

<simplelist>
 <member>
  <command>xf86config</command> - utilitaire de configuration du serveur X.
 </member>
</simplelist>

<simplelist>
 <member>
  <command>xdpyinfo</command> -utilitaire donnant des informations sur X. Il montre des informations très détaillées sur le serveur <application>X</application>.
 </member>
</simplelist>

<simplelist>
 <member>
  <command>xlsclients</command> - liste des clients actuellement connectés au serveur X.
 </member>
</simplelist>

<simplelist>
 <member>
  <command>xlsfonts</command> - liste des polices disponibles pour X.
 </member>
</simplelist>

<simplelist>
 <member>
  <command>appres</command> - liste des <quote>ressources</quote> X qu'un programme va utiliser.
 </member>
</simplelist>

<simplelist>
 <member>
  <command>xfontsel</command> - application permettant de voir ou de choisir les polices.
 </member>
</simplelist>

<simplelist>
 <member>
  <command>xprop</command> - outil pour afficher les propriétés de la fenêtre, comme par exemple le nom de la classe du client.
 </member>
</simplelist>

<simplelist>
 <member>
  <command>xset</command> - paramètre les préférences de l'utilisateur pour beaucoup de choses, y compris la souris, le clavier ou le son (sonnerie, sonnette)...
 </member>
</simplelist>

<simplelist>
 <member>
  <command>xsetroot</command> - programme pour changer l'aspect de la <quote>fenêtre root</quote>, par exemple changer la couleur de fond.
 </member>
</simplelist>

<simplelist>
 <member>
  <command>xvidtune</command> - application pour adapter les modes vidéo du serveur X et les paramètres liés à l'écran.
 </member>
</simplelist>

<simplelist>
 <member>
  <command>xwininfo</command> - affichage d'informations sur une <quote>fenêtre</quote> sélectionnée.
 </member>
</simplelist>

<simplelist>
 <member>
  <command>xmodmap</command> - utilitaire pour manipuler les valeurs/affectations des touches du clavier et celles des boutons de la souris
 </member>
</simplelist>

<simplelist>
 <member>
   Enormément de polices. Et pas mal de documentation également.
 </member>
</simplelist>


<para>
 Il y a en beaucoup d'autres. Nous n'aborderons que quelques uns de ces utilitaires ici. Mais n'hésitez pas à tester les autres. La plupart doivent avoir leurs propres pages de man. 
</para>


<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect2>
<title>Matériel</title>

<para>
Le serveur X commande les dispositifs d'entrée (clavier, souris, etc.) et de rendu (affichage, écran). 
</para>

<para>
 La compatibilité matérielle est un sujet difficile, puisque c'est toujours très évolutif. Nous sommes forcés ici d'éviter les détails, puisqu'ils auront sûrement changés avant que vous ayez lu ceci. Et ce serait long et fastidieux de toute façon. 
</para>

<para>
Commençons donc par quelques généralités. La <emphasis>plupart</emphasis> du matériel de type PC est compatible à un degré ou à un autre. Très utile ; -)
</para>

<para>
 Principe de base : s'il s'agit d'un système qui utilise un protocole de longue date et banal (par exemple PS/2), la compatibilité devrait être bonne. Réciproquement, s'il utilise quelque chose de relativement nouveau, avec de la technologie innovante, il risque d'y avoir des problèmes. C'est dans la nature de la bête, avec d'un côté le développement des logiciels libres et de l'autre les fabricants qui s'intéressent surtout aux plateformes les plus répandues. Quelques fabricants sont plus coopératifs que d'autres aussi. 
</para>

<para>
Maintenant, quelques indications générales: 
</para>

<para>
 <itemizedlist>

  <listitem>
   <para>
    Les écrans - c'est simple. Intrinsèquement Linux n'a pas besoin vraiment d'être compatible avec l'écran. C'est le travail de la carte vidéo. N'importe quel moniteur compatible avec votre carte graphique fera l'affaire. Y compris les écrans plats. 
   </para>
  </listitem> 

  <listitem>
   <para>
Les cartes graphiques - c'est beaucoup plus dur. La compatibilité avec le serveur X dépend du chipset. Nombre d'entre elles sont compatibles. Mais inévitablement il y a toujours des cartes plus récentes, ou même des cartes modifiées, qui ne le sont pas. De plus, certaines peuvent avoir une meilleure compatibilité et une meilleure optimisation que d'autres. Les dispositifs avancés tels que les sorties multiples d'affichages, la 3D, la sortie TV, le DRI, etc., ont une certaine compatibilité également, bien qu'il faudrait vérifier cela en priorité, car la compatibilité peut être limitée. Une liste des cartes compatibles est disponible ici : <ulink url="http://xfree86.org/cardlist.html">http://xfree86.org/cardlist.html</ulink>.
   </para>

   <para>
Les pilotes open sources sont souvent développés incrémentalement. Par exemple, une carte particulière peut fonctionner correctement pour l'affichage de base, mais les dispositifs spécialisés tels que la 3D peuvent ne venir que beaucoup plus tard dans le cycle de développement. C'est un cycle de développement tout à fait différent des pilotes propriétaires provenant du fabricant. 

   </para>
  </listitem> 

  <listitem>
   <para>
Les claviers -- Tout clavier standard de type PC devrait aller très bien, y compris le PS/2, l'USB et beaucoup de systèmes infrarouges. De même pour beaucoup de <quote>non standard</quote> probablement ; -) 

   </para>
  </listitem> 

  <listitem>
   <para>
Les souris et autres dispositifs de pointeur -- La plupart devraient être compatibles notamment le PS/2, le bus, le <quote>série</quote>, l'USB et beaucoup de dispositifs infrarouges. Les souris optiques également. Unix a longtemps préféré les souris à trois boutons, même si les souris avec plus de boutons sont également compatibles. Beaucoup de souris à boule sont compatibles avec le serveur X par l'intermédiaire du <quote>IMPS/2</quote> (IntelliMouse), ou d'autres protocoles spécifiques, cependant certaines applications peuvent exiger une configuration supplémentaire. (Voir la section <link linkend="links">liens</link>.) 
   </para>
 </listitem> 

 <listitem>
  <para>
Les ordinateurs portables ont leurs problèmes bien particuliers puisque le matériel tend à être très spécialisé, et souvent différent de ce qu'on trouve généralement sur les systèmes d'ordinateur de bureau. <application>X</application> est compatible avec beaucoup. Voir les informations sur <ulink url="http://www.linux-laptop.net/">http://www.linux-laptop.net/</ulink>.
  </para>
 </listitem> 

 </itemizedlist>
</para>

<para>
Vous pouvez vérifier <quote>la liste de compatibilité matérielle</quote> sur le site Web de votre distribution également. Ceci devrait donner une idée assez précise de ce qui <emphasis>devrait</emphasis> fonctionner avec votre version. </para>

<para>
Les nouvelles versions de XFree86 auront évidemment une meilleure compatibilité matérielle. Si vous utilisez une version plus ancienne de Linux et n'avez pas la compatibilité matérielle totale, il faudrait regarder comment mettre à jour XFree86. Vérifiez d'abord si votre distribution a des mises à jour pour votre version. 
</para>

</sect2>

<!--  ~  Fin section  ~  -->


<!--   ~~~~~       Nouvelle section      ~~~~~     -->
<sect2>
<title>XF86Config</title>
<para>
Le fichier principal de configuration pour XFree86 est <filename>XF86Config</filename>, qui peut exister sur votre système sous le nom de <filename>XF86Config-4</filename> pour XFree86 v4.x, ou peut-être d'autres variantes (voir la page de man). Il est en général placé dans <filename>/etc/X11/XF86Config</filename>, bien que, encore une fois, le chemin puisse varier. Si un <filename>XF86Config-4</filename> et <filename>XF86Config</filename> existent, XFree86 v4.x utilisera le premier. C'est un fichier indispensable.
</para>

<para>
Le fichier <filename>XF86Config</filename> définit les dispositifs matériels, et d'autres composants cruciaux de l'environnement du serveur X. 
</para>

<para>
Alors qu'il s'agit d'un fichier texte, et qu'il est modifiable, il est le plus souvent créé pendant l'installation par tout utilitaire que votre éditeur utilise dans ce but. XFree86 inclut également l'utilitaire <command>xf86config</command> pour faire cela, mais beaucoup de distributions ont leurs propres utilitaires similaires. Ces utilitaires peuvent être lancés après l'installation si besoin est, pour changer la configuration, ou si un nouveau matériel est installé. Commencez par lire la documentation installée en local. Si vous essayez d'éditer à la main ce fichier, n'oubliez surtout pas de faire d'abord une copie de sauvegarde puisque <application>X</application> ne démarrera pas si ce fichier n'est pas à son goût ; -) 
</para>

<para>
Ce fichier contient diverses <quote>sections</quote>. Chaque section définit un certain aspect fondamental de XFree86, tel que <quote>InputDevice</quote> (souris, clavier, joystick, etc.), <quote>moniteur</quote>, ou <quote>écran</quote>. La page de man de <filename>XF86Config</filename> décrit les sections et les valeurs communes pour chacun d'eux. Notez que les valeurs énumérées dans la page de man n'est pas une liste exhaustive. Il y a beaucoup d' <quote>options</quote> spécifiques à chaque dispositif. Visitez le site <ulink url="http://xfree86.org">http://xfree86.org</ulink> où vous trouverez des notes et des astuces pour votre matériel. 
</para>

<para>
Le <filename>XF86Config-4</filename> actuel de l'auteur, tel qu'il a été généré par le programme d'installation de RedHat pour XFree86 4.1 :
</para>

<para>
 <screen>
Section "ServerLayout"
	Identifier "XFree86 Configured"
	Screen      0  "Screen0" 0 0
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
   # L'emplacement de la base de données RGB.
   RgbPath     "/usr/X11R6/lib/X11/rgb"

   # Les entrées multiples de FontPath sont permises, elles sont
   # concaténées.
   # Par défaut, Red Hat 6.0 et suivantes utilisent maintenant un serveur de polices
   # indépendant du serveur X pour rendre les polices.
   FontPath "unix/:7100"
EndSection

# Section chargement des modules

Section "Module"
	Load  "dbe"		# Double mise en mémoire tampon
	Load  "GLcore"		# Support de OpenGL
	Load  "dri"		# Infrastucture de rendu direct
	Load  "glx"		# Interface pour le protocole OpenGL X
	Load  "extmod"		# Diverses extensions requises
	Load  "v4l"		# Vidéo pour Linux
#    Load  "fbdevhw"
     Load  "pex5"
     Load  "record"
     Load  "xie"
EndSection


Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "keyboard"
	Option      "XkbLayout"	"us"

#    Option  "AutoRepeat"    "500 5"

# Si vous utilisez XQUEUE, commentez la ligne ci-dessus, et décommentez la 
# ligne suivante.
#    Option  "Protocol"      "Xqueue"

# Spécifiez quelles diodes électroluminescentes du clavier peuvent être contrôlées par
# l'utilisateur (par exemple, avec xset(1))
#    Option  "Xleds"         "1 2 3"

# Pour désactiver l'extension XKEYBOARD, décommentez XkbDisable.
#    Option  "XkbDisable"

# Pour personnaliser les paramètres XKB en fonction de votre clavier, modifiez les lignes
# ci-dessous (qui sont par défaut).  Par exemple, pour un clavier non U.S.
# vous allez probablement utiliser :
#   Option  "XkbModel"      "pc102"
# Si vous avec un clavier US Microsoft Natural, vous pouvez utiliser :
#   Option  "XkbModel"      "microsoft"
EndSection

Section "InputDevice"
	Identifier  "Mouse0"
	Driver      "mouse"
	Option      "Device" "/dev/mouse"
	Option      "Protocol" "IMPS/2"
	Option      "Emulate3Buttons" "off"
	Option      "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
	Identifier "Sylvania F74"
	VendorName "Unknown"
	ModelName  "Unknown"
	HorizSync   30 - 70
	VertRefresh 55 - 120
	Option "dpms"
#    Le bloc Modeline s'insère ici si nécessaire. Utilisez xvidtune pour
#    obtenir les bonnes valeurs.
EndSection

Section "Device"
	Identifier "ATI Rage 128"
	Driver "r128"
	BoardName "Unknown"
EndSection

Section "Device"
	Identifier "Linux Frame Buffer"
	Driver "fbdev"
	BoardName "Unknown"
EndSection

Section "Screen"
	Identifier "Screen0"
	Device "ATI Rage 128"
	Monitor "Sylvania F74"
	DefaultDepth 24
	Subsection "Display"
		Depth 24
		Modes "1400x1050" "1280x1024" "1152x864" "1024x768" "800x600"
	EndSubSection
	Subsection "Display"
		Depth 16
		Modes "1600x1200" "1400x1050" "1280x1024" "1152x864" "1024x768" "800x600"
	EndSubSection
	Subsection "Display"
		Depth 8
		Modes "1024x768" "800x600" "640x480"
	EndSubSection
EndSection

Section "DRI"
	Mode 0666
EndSection
 </screen>
</para>

<para>
Le vôtre peut paraître tout à fait différent. Il s'agit juste d'une configuration possible avec des commentaires ajoutés gracieusement par RedHat (et par moi), et ce, pour une installation assez ordinaire. Il n'y a rien d'exotique ici, comme des écrans ou affichages multiples.
</para>

<para>
Il n'entre pas dans le cadre de ce document de donner des explications détaillées. Jetez un oeil à la page de man de <filename>XF86Config</filename>. Et en outre, pensez à visiter <ulink url="http://xfree86.org">xfree86.org</ulink> et à y rechercher les options spécifiques qui pourraient s'appliquer à votre carte ou à tout autre matériel.
</para>

<para>
Juste une petite note à propos de la section <quote>Screen</quote> ci-dessus. Remarquez qu'elle se décompose en trois sous-sections, identifiées par <quote>Display</quote>. Chaque sous-section a une <quote>Depth [profondeur]</quote> différente indiquée (il y a un autre nom : ColorDepth). Les <quote>Modes</quote> varient également légèrement selon leur paramètre respectif de <quote>Depth</quote>. La sous-section active de <quote>Display</quote> qui sera utilisée, est déterminée par le paramètre <quote>DefaultDepth</quote> (sauf s'il est surchargé en ligne de commande). La valeur par défaut définie dans cet exemple est <quote>24</quote>, c'est donc la première sous-section qui sera utilisée. En outre, le <quote>Mode</quote> le plus élevé cité dans cette sous-section sera le mode par défaut (résolution), qui ici est le premier cité. Le premier mode cité détermine également la zone d'écran visualisable, qui peut être plus petite que le mode (résolution) lui-même. Dans ce cas, vous auriez un bureau virtuel qui serait plus grand que l'écran visualisable. Pour faire concorder la résolution et l'écran visualisable, choisissez la plus grande valeur comme première valeur énumérée dans chaque <quote>Mode</quote>.
</para>

<para>
Voici une deuxième note sur les <quote>Modes</quote> : ce que vous voyez est le résultat de mes choix pendant la configuration de <command>Xconfigurator</command> de RedHat. Ce sont des résolutions standard, mais ce n'est pas obligatoire ! La seule limite est ce que votre matériel peut accepter. Et il n'est pas obligatoire non plus d'utiliser des rapports standard hauteur/largeur. Quelque chose du genre <literal>1355x1112</literal> constitue un paramètrage valide (si votre matériel l'accepte et que vogue le navire !).
</para>

<para>
Le serveur de X rejettera tous les <quote>Modes</quote> qu'il juge erronés/invalides. Vous pouvez faire un tour des modes valides pour changer la résolution d'écran avec <literal>Ctrl+Alt++</literal> et <literal>Ctrl+Alt+-</literal> (avec les touches + et - du clavier).
</para>

<para>
Dans les versions précédant la v4.x, vous verriez également beaucoup de blocs <quote>Modeline</quote> qui permettaient de définir les possibilités du moniteur. Ces blocs pourraient ressembler à ceci :
</para>

<para>
 <screen>
 # 1024x768 @ 100Hz, 80.21 kHz hsync
 Modeline "1024x768"  115.5  1024 1056 1248 1440  768  771  781  802 -HSync -VSync
 </screen>
</para>

<para>
La définition explicite du <quote>Modeline</quote> n'est plus requise depuis les versions de 4.x ;-) Il fallait parfois éditer à la main pour obtenir les valeurs optimales dans des versions antérieures de XFree86, cela n'est généralement plus nécessaire avec v4.x. <citetitle>Le guide pratique des synchronisations vidéo sous XFree86</citetitle>, <ulink url="http://www.linuxdoc.org/HOWTO/XFree86-Video-Timings-HOWTO/index.html">http://www.linuxdoc.org/HOWTO/XFree86-Video-Timings-HOWTO/index.html</ulink> en propose une explication intéressante, mais assez technique.
</para>

<para>
Si l'utilitaire de configuration que vous employez, quel qu'il soit, n'identifie pas automatiquement votre carte vidéo ou les caractéristiques de votre écran correctement, vous avez peu de chances d'obtenir une configuration optimale. Dans ce cas, il vous faudra peut-être entrer manuellement les valeurs correctes. Ca devrait se trouver dans votre manuel de l'utilisateur (que vous avez gardé, hein ?). Sinon, jetez un oeil au site Web du fabricant. 

</para>

<para>
Encore une fois, l'édition manuelle du fichier est généralement inutile. Si vous pensez qu'il faut tout de même le faire, faites attention. Une toute petite erreur peut faire planter <application>X</application>. Toute modification de ce fichier nécessitera de redémarrer <application>X</application> pour qu'elle prenne effet.
</para>

<para>
Utiliser le fichier du <filename>XF86Config</filename> de quelqu'un d'autre, est généralement une mauvaise idée puisqu'il est peu probable qu'il ait exactement le même matériel que vous.
</para>

</sect2>

<!--  ~  Fin section  ~  -->


<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect2>
<title>xvidtune et le réglage des fréquences de l'écran</title>

<para>
Vous voulez probablement obtenir le meilleur de votre matériel. Si <application>X</application> n'est pas configuré de façon optimale, pensez à réexécuter l'utilitaire de configuration de <application>X</application> de votre fournisseur pour essayer d'obtenir de meilleurs résultats. Il est très peu probable que vous puissiez endommager quoi que ce soit en faisant des essais. La plupart des écrans modernes ont maintenant des protections qui permettent d'éviter la fusion/l'accident nucléaire ; -)
</para>

<para>
Si vous en faites un peu trop cependant, <application>X</application> peut ne pas pouvoir démarrer. Pour cette raison, je préfère employer la commande <quote>startx</quote> pour démarrer <application>X</application> (voir ci-dessous) pendant les <quote>essais</quote>. De cette façon si <application>X</application> plante, le gestionnaire d'affichage (connexion de l'interface graphique) ne fera pas une boucle en vous donnant des maux de tête épouvantables. La commande <command>startx</command> va juste tranquillement retourner à un écran de console texte, où un message d'erreur sera affiché.
</para>

<para>
Une autre manière de peaufiner les paramètres associés à cet écran est d'utiliser le programme <command>xvidtune</command> de XFree86. Il est interactif et peut être utilisé pour ajuster divers paramètres (voir la page de man). La boîte de dialogue simple possède des glisseurs et boutons qui permettent à l'utilisateur d'entrer des paramètres et de les régler. La partie supérieure gauche permet de faire le paramètrage horizontal de l'écran, et celle de droite le paramètrage vertical. Les boutons juste au-dessous des glisseurs peuvent être utilisés pour les régler. .
</para>

<para>
On l'utilise parfois pour ajuster la zone d'écran visualisable, par exemple pour la centrer, ou augmenter sa taille jusqu'à la bordure de l'écran. Quand le <command>xvidtune</command> est lancé, il prend par défaut les paramètres en cours. 
</para>

<para>
Le coin inférieur gauche possède les boutons nécessaires pour appliquer [<quote>Apply</quote>] de nouveaux paramètres, pour tester [<quote>Test</quote>] de nouveaux paramètres, ou pour montrer [<quote>Show</quote>] les paramètres (c.-à-d. les afficher à l'écran), entre autres. Aucun changement fait ici n'est enregistré. Si les nouveaux paramètres sont <quote>appliqués</quote>, ils le sont juste pour la session courante. Exemple de résultat donné par <quote>Show</quote> de <command>xvidtune</command> : 
</para>

<para>
 <screen>
 Vendor: Unknown, Model: Unknown
 Num hsync: 1, Num vsync: 1
 hsync range 0:  30.00 -  70.00
 vsync range 0:  55.00 - 120.00
 "1400x1050"   122.00   1400 1488 1640 1880   1050 1052 1064 1082 +hsync +vsync
 </screen>
</para>

<para>
La dernière ligne est le <quote>Modeline</quote> employé pour piloter l'écran courant. Voir <citetitle>Le guide pratique des synchronisations vidéo sous XFree86</citetitle>, <ulink url="http://www.linuxdoc.org/HOWTO/XFree86-Video-Timings-HOWTO/index.html">http://www.linuxdoc.org/HOWTO/XFree86-Video-Timings-HOWTO/index.html</ulink>, pour en savoir plus sur les <quote>Modelines</quote>. 
</para>

<para>
Vous pouvez tester les modifications, et les appliquer à la session courante. Pour que les modifications deviennent permanentes, elles devront être ajoutées manuellement dans la section <quote>Monitor</quote> de <filename>XF86Config</filename> (ou de <filename>XF86Config-4</filename> pour v.4.x) avec un éditeur de texte. 
</para>

<para>
  <command>xvidtune</command> va dûment vous avertir des risques liés au jeu avec les paramètres de l'écran. Il est peu probable que vous endommagiez quelque chose avec les écrans modernes. Mais il est préférable de ne l'utiliser que pour faire des ajustements mineurs. A utiliser à vos risques et périls ! 
</para>

</sect2>

</sect1>

<!--  ~  Fin section  ~  -->




<!--   ~~~~~~~~       Entête Nouvelle section    ~~~~~~~~~     -->

<sect1 id="runningx">
<title>Faire tourner X</title>

<para>
Le démarrage d'une session de <application>X</application> peut se faire de deux manières : soit on démarre la session de <application>X</application> via un gestionnaire d'affichage (comme <command>xdm</command>), et l'utilisateur se connecte via un écran d'interface graphique. Soit l'utilisateur démarre <application>X</application> manuellement en se connectant via une console texte, ce qui se fait, de manière classique, avec la commande <command>startx</command>, qui est un script shell simple contenant un <command>xinit</command>. <application>X</application> tourne avec les droits de superutilisateur dans les deux cas, puisqu'il a besoin de l'accès direct au matériel. 
</para>

<para>
Il faut savoir que le choix de la méthode utilisée dépend du système <quote>runlevel</quote>. Le runlevel par défaut qui se lance au démarrage se trouve généralement dans <filename>/etc/inittab</filename> sous Linux : 
</para>

<para>
 <screen>
# Lancer xdm en runlevel 5
x:5:respawn:/etc/X11/xdm ~nodaemon
 </screen>
</para>

<para>
Cela lancera <command>xdm</command>, et donc <application>X</application>, avec le runlevel 5. Il redémarrera s'il meurt ou s'arrête quelle qu'en soit la raison. On peut également utiliser la commande <command>init</command> pour changer de runlevel sans redémarrer (voir la page de man). 
</para>

<para>
Voyons brièvement les deux approches, puis un peu de configuration supplémentaire pour paramètrer l'environnement de travail de l'utilisateur.
</para>

<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect2>
<title>startx</title>

<para>
 <command>startx</command> démarrera <application>X</application> en appelant d'abord <command>xinit</command>. En soit, cette action vous donnera un bureau vide, flou et réduit au strict minimum sans qu'aucun gestionnaire de fenêtres n'ait été chargé. A la base, xinit prend deux ensembles d'arguments en ligne de commande : les caractéristiques du client (les programmes qui vont être lancés, etc.), et les caractéristiques du serveur (les options du serveur <application>X</application>), séparés par <quote>--</quote>. Si aucun programme de client n'est indiqué dans la ligne de commande, <command>xinit</command> cherchera un fichier <filename>.xinitrc</filename> dans le répertoire local de l'utilisateur, à exécuter comme script shell. S'il le trouve, celui-ci, à son tour, exécutera les commandes personnalisées de l'utilisateur nécessaires pour configurer son environnement, ou lancera les programmes que le fichier contient. Si ce fichier n'existe pas, <command>xinit</command> emploiera la commande initiale suivante :
</para>

<para>
 <screen>
 xterm -geometry +1+1 -n login -display :0
 </screen>
</para>

<para>
Si aucun <filename>.xserverrc</filename> n'est trouvé dans le répertoire local de l'utilisateur, <application>X</application> lui-même sera lancé par la commande suivante :
</para>

<para>
 <screen>
 X :0
 </screen>
</para>

<para>
Comme vous voyez, ce n'est pas très utile car il ne lance qu'un seul <application>xterm</application>. <command>startx</command> fournit plus de fonctionnalité et de souplesse à <command>xinit</command>. <command>startx</command> appellera <command>xinit</command> pour nous, et fournira également quelques options simples de configuration. Vous pouvez également lancer des commandes telles que la suivante, par exemple :
</para>

<para>
 <screen>
 startx -- -dpi 100 -depth 16   #pousse X à 100 points par pouces
                                #et la profondeur de couleur à 16 (syntaxe X v4)
 </screen>
</para>

<para>
Tout ce qu'il y a après les doubles tirets est passé comme argument directement au serveur <application>X</application> par l'intermédiaire de <command>xinit</command>. Dans cet exemple, vous pouvez forcer <application>X</application> à la résolution de votre choix, mais il continuera quand même à utiliser les fichiers de configuration dont nous parlerons plus tard dans ce document. Voir la page de man de Xserver pour plus d'options en ligne de commande.
</para>

<para>
Au lieu de lancer la même ligne de commande à chaque fois, il est plus facile d'utiliser les fichiers de configuration pour qu'ils nous stockent ce type d'information. 
</para>

<para>
Si on jette un coup d'oeil au script <command>startx</command> (<filename>/usr/X11R6/bin/startx</filename> sur mon système), on voit qu'il emploie deux fichiers de configuration par défaut pour permettre d'établir l'environnement de <application>X</application> : <filename>xinitrc</filename> et <filename>xserverrc</filename>. Il regarde d'abord dans <filename>/etc/X11/xinit/</filename>, pour les gros fichiers systèmes. Il cherche ensuite dans le répertoire local de l'utilisateur des fichiers semblables, qui seront prioritaires s'il les trouve. Notez que ces derniers sont des fichiers <quote>point</quote> de type Unix (par exemple <filename>~/.xinitrc</filename>), et sont des scripts shell exécutables.
</para>

<para>
Normalement on n'aura pas besoin d'éditer les gros fichiers systèmes, mais si on veut on peut les copier dans le répertoire local comme point de départ, ou simplement démarrer à partir de zéro. Comme vous pouvez le deviner grâce aux noms, l'un permet de configurer  le serveur X, et l'autre configure <command>xinit</command> en exécutant des commandes, en préparant l'environnement et éventuellement en lançant des programmes client comme <command>xterm</command> ou un gestionnaire de fenêtres (oui, c'est un client également).
</para>



<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect3>
<title>xserverrc</title>
<para>
Comme avec tous les fichiers de configuration de XFree86, c'est un fichier texte. Il s'agit habituellement d'une simple ligne de commande pour mettre en marche le serveur <application>X</application>. Il peut contenir n'importe quelle option en ligne de commande valide acceptée par votre installation de <application>X</application>. Si vous démarrez toujours <application>X</application> avec vos propres options, ça devrait être plus facile que de taper les options à chaque fois. Voici un <filename>~/.xserverrc</filename> possible : 
</para>

<para>
 <screen>
 exec X :0 -dpi 100 -nolisten tcp
 </screen>
</para>

<para>
Ca démarrera <application>X</application> sur le display 0, le premier <quote>affichage</quote>, avec une résolution de 100 points par pouces et désactive les connexions TCP. Voir la page de man de Xserver pour d'autres options valides. Ceci n'est qu'un exemple. 
</para>

</sect3>

<!--  ~  Fin section  ~  -->



<!--   ~~~~~       Nouvelle section      ~~~~~     -->
<sect3>
<title>xinitrc</title>
<para>
<filename>xinitrc</filename> s'emploie pour établir un environnement <application>X</application> approprié, et pour lancer d'autres programmes, qu'on appelle aussi des <quote>clients</quote> que l'on souhaitera peut-être avoir disponibles dès le démarrage de <application>X</application>. Vous avez probablement un fichier système <filename>xinitrc</filename> pour démarrer un ensemble prédéfini de programmes. Pour personnaliser, créez votre propre fichier dans votre répertoire local. Nommez le <filename>.xinitrc</filename>, assurez- vous que c'est un script exécutable, et faites <command>chmod +x</command>. Un exemple (à partir de l'original sur mon système, légèrement modifié) :
</para>

<para>
 <screen>
#!/bin/sh
# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap

# fusionne les événements de touche par défaut avec les personnalisées
if [ -f $userresources ]; then
    xrdb -merge $userresources
fi

if [ -f $usermodmap ]; then
    xmodmap $usermodmap
fi

if [ -z "$BROWSER" ] ; then
	# nous avons besoin d'un navigateur sur le système
	BROWSER=`which netscape`
	if [ -z "$BROWSER" ] || [ ! -e "$BROWSER" ] ; then
	# pas encore trouvé
		BROWSER=
	fi
fi
if [ -z "$BROWSER" ] ; then
	# nous avons besoin d'un navigateur sur le système
	BROWSER=`which lynx`
	if [ -z "$BROWSER" ] || [ ! -e "$BROWSER" ] ; then
	# pas encore trouvé
		BROWSER=
	else
		BROWSER="xterm -font 9x15 -e lynx"
	fi
fi

export BROWSER

# Démarre quelques programmes sympas
if [ -f $HOME/.Xclients ]; then
    exec $HOME/.Xclients
else
    xclock -geometry 50x50-1+1 &amp;
    xterm -geometry 80x50+494+51 &amp;
    if [ -f /usr/X11R6/bin/fvwm ]; then
        exec fvwm
    else
        exec twm
    fi
fi

#eof 
 </screen>
</para>

<para>
Voici en deux mots ce que fait ce script : il installe notre environnement de travail, avec le <command>xmodmap</command> (clavier) et le <command>xrdb</command> (paramètres des ressources d'application). Nous en dirons plus un peu plus bas. Ensuite la variable <literal>$BROWSER</literal> du shell est affectée pour un environnement à interface graphique (Netscape dans cet exemple) de sorte que toutes les applications qui pourraient avoir besoin de celle-ci aient à leur disposition un choix raisonnable. Ensuite la présence du fichier <filename>Xclients</filename> est vérifiée, dans les dossiers systèmes ainsi que dans le répertoire local de l'utilisateur. Dans notre exemple, c'est dans ce fichier que toutes les applications clientes sont démarrées, y compris un gestionnaire de fenêtre (voir ci-dessous). Elles auraient pu tout aussi bien démarrer ici si nous l'avions voulu. Si un fichier <filename>Xclients</filename> ne peut être trouvé, un gestionnaire de fenêtre est démarré pour nous. <command>fvwm</command> si disponible, sinon <command>twm</command>, le gestionnaire de fenêtre minimaliste de  XFree86. Si pour une raison ou pour une autre, aucun des deux  ne pouvait être démarré, le script se fermerait, et <application>X</application> ne démarrerait pas.
</para>

</sect3>

<!--  ~  Fin section  ~  -->

<sect3>
<title>Xclients</title>

<para>
Jusque là, le déroulement de l'ensemble des opérations s'est effectué d'une façon tout à fait classique et prévisible. Pour récapituler, nous avons appelé <command>startx</command>, qui a à son tour appelé <command>xinit</command>, qui a analysé le <filename>xinitrc</filename> pour les paramètres initiaux. La plupart des Linux devraient suivre cet ordre-là, bien que les différents valeurs et paramètres puissent différer. 
</para>

<para>
Nous sommes maintenant au dernier maillon de la chaîne où l'utilisateur aura normalement indiqué ses préférences, y compris le gestionnaire de fenêtres et/ou l'environnement graphique à utiliser. Le système fournira par défaut des scripts raisonnables, bien que probablement inintéressants, si l'utilisateur ne l'a pas fait. C'est sans doute pourquoi vous êtes ici ; -) 
</para>

<para>
Le gestionnaire de fenêtres, ou environnement graphique, est tout le temps l'application qui démarre en dernier. Si vous voulez qu'il y ait d'autres programmes à démarrer (comme <command>xterm</command>), ils doivent être démarrés avant le gestionnaire de fenêtres et mis en arrière-plan avec un  <quote>&#38;</quote>. Ceci peut être fait dans le <filename>~/.xinitrc</filename> de l'utilisateur. Ou bien, comme dans l'exemple ci-dessus, les applications en question sont démarrées à partir d'encore un autre script. En voici un court à titre d'exemple, <filename>.Xclients</filename> :
</para>

<para>
 <screen>
#!/bin/bash
# ~/.Xclients, démarre mes programmes

xset s off s noblank
xset m 30/10 4
xset r rate 200 40

xscreensaver &amp; 
rxvt -geometry 80x50-50+150 &amp;

echo Démarrage du gestionnaire de fenêtres...

if [ -x /usr/X11R6/bin/wmaker ]; then
  echo `date` : Essai de /usr/X11R6/bin/wmaker... |tee -a ~/.wm-errors 2>&amp;1
  exec /usr/X11R6/bin/wmaker >> ~/.wm-errors 2>&amp;1
fi 

echo `date`: Echec, essai de fvwm... |tee -a ~/.wm-errors 2>&amp;1

# Essayons maintenant le bon vieux fvwm (AnotherLevel ne fonctionne pas avec fvwm1).
if [ -n "$(type -path fvwm)" ]; then
  # si ça marche, nous arrêtons ici
  exec fvwm >> ~/.wm-errors 2>&amp;1
fi

echo `date`: Echec, essai de twm... |tee -a ~/.wm-errors 2>&amp;1

# Bon, fvwm n'est pas là non plu...
# Utilisation de twm en dernier recours.
exec twm >> ~/.wm-errors 2>&amp;1

# Mort dans l'oeuf, X ne se lancera pas... pffff !
echo `date`: Impossible de lancer le gestionnaire de fenêtres... |tee -a ~/.wm-errors 2>&amp;1

# eof 
 </screen>
</para>

<para>
Ca ne change pas beaucoup de ce que faisait <filename>xinitrc</filename>. Nous avons ajouté quelques gadgets, parmi lesquels le démarrage d'un écran de veille, un émulateur de console différent que cet utilisateur préfère (<command>rxvt</command>), avec encore plus de paramètrages de l'environnement (moniteur, souris et clavier) en utilisant <command>xset</command> cette fois, et un gestionnaire de fenêtres différent de celui qui était disponible avec les paramètres par défauts du système. Ce fichier étant dans le répertoire local de l'utilisateur, il ne sera pas écrasé pendant les mises à jour . 
</para>

<para>
En fait, <application>X</application> est déjà démarré à ce stade. Nous nous contentons de mettre la dernière main à la configuration. Notez que le gestionnaire de fenêtres n'est pas mis en arrière plan avec <quote>&#38;</quote> ici. C'est important ! Quelque chose doit être au premier plan, sinon <application>X</application> se fermera. Nous n'avons pas démarré d'environnement graphique comme <application>KDE</application> ou <application>GNOME</application>, dans cet exemple, mais si nous le faisions, là cette application finale devrait être <command>gnome-session</command> ou <command>startkde</command>. Puisque nous utilisons notre propre script ici, si nous voulions changer de gestionnaire de fenêtres, la seule chose à faire serait d'éditer ce fichier, et de redémarrer <application>X</application>.  Les configurations données par les fournisseurs peuvent être plus complexes que ça, mais les mêmes principes s'appliquent. 
</para>

<para>
Pour terminer sur ce point, ne pensez pas que, au démarrage, toutes les applications du client <emphasis>doivent</emphasis> être lancées comme nous l'avons fait ici. Ca, c'est l'approche traditionnelle, que certains peuvent préférer. La plupart des gestionnaires de fenêtres lancent à leur façon bien à eux les programmes au démarrage, ce que font <application>KDE</application> et <application>GNOME</application>. Voir les documentations respectives.
</para>

</sect3>

</sect2>

<!--  ~  Fin section  ~  -->



<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect2>
<title>Gestionnaires d'affichage</title>

<para>
L'autre approche, plus commune, est l'ouverture de session via interface graphique, où <application>X</application> fonctionne avant l'ouverture de session. Cela se fait avec l'aide d'un <quote>gestionnaire d'affichage</quote>, dont il y a de nombreuses implémentations. XFree86 inclut le <command>xdm</command> (gestionnaire d'affichage de <application>X</application>) dans ce but, cependant votre distribution peut en employer un autre tel que le <command>gdm</command> (<application>GNOME</application>) ou <command>kdm</command> (<application>KDE</application>).
</para>

<para>
Les gestionnaires d'affichage en font beaucoup plus que ne le permettent les ouvertures de sessions via interface graphique. On s'en sert également pour contrôler aussi bien <quote>l'affichage</quote> local que distant sur un réseau. Nous n'entrerons pas dans les détails ici, mais le sujet est bien traité dans <citetitle>Remote X Apps Mini HOWTO</citetitle> et <citetitle>XDMCP HOWTO</citetitle> (voir la section des <link linkend="links">liens</link>). Pour ce que nous voulons faire ici, ils fournissent des services similaires comme getty et login, qui permettent à des utilisateurs de se connecter dans un système et de démarrer leur shell par défaut, mais dans un environnement à interface graphique.
</para>

<para>
Voici un exemple d'utilisation plus avancée d'un autre emploi possible d'un gestionnaire d'affichage, proposé par Diego Zamboni :
</para>

<blockquote>

<para>
J'ai deux sessions de X fonctionnant avec des résolutions différentes. Je passe de l'une à l'autre selon que mon ordinateur portable est relié à un moniteur externe ou qu'il utilise son propre écran à cristaux liquides. 
</para>

<para>
Voici mon fichier <filename>/usr/lib/X11/xdm/Xservers</filename> qui lance les deux affichages :
</para>

<para>
 <screen>
 :1 local /usr/X11R6/bin/X :1 -layout 1024x768
 :0 local /usr/X11R6/bin/X :0 -layout 1600x1200
 </screen>
</para>

<para>
Ensuite je définis pour le serveur l'apparence suivante [ServerLayout]   :  <quote>1024x768</quote> et <quote>1600x1200</quote>  dans mon fichier <filename>/etc/X11/XF86Config-4</filename>, comme suit :
</para>

<para>
 <screen>
 Section "ServerLayout"
         Identifier     "1600x1200"
         Screen         "Screen0" 0 0
         InputDevice    "Mouse0" "CorePointer"
         InputDevice    "Keyboard0" "CoreKeyboard"
 EndSection
 
 Section "ServerLayout"
         Identifier     "1024x768"
         Screen         "Screen1" 0 0
         InputDevice    "Mouse0" "CorePointer"
         InputDevice    "Keyboard0" "CoreKeyboard"
 EndSection
   
 Section "Screen"
         Identifier   "Screen0"
         Device       "S3 Savage/MX"
         Monitor      "Monitor0"
         DefaultDepth 16
         
         Subsection "Display"
                 Depth  16
                 Modes  "1600x1200" "1280x1024" "1024x768"
         EndSubsection
 EndSection
 
?## et toc ! 

 Section "Screen"
         Identifier   "Screen1"
         Device       "S3 Savage/MX"
         Monitor      "Monitor0"
         DefaultDepth 16

         Subsection "Display"
                 Depth  16
                 Modes  "1024x768" "800x600"
         EndSubsection
 EndSection 
 </screen>
</para>

</blockquote>

<para>
Notez l'utilisation des identifiants [Identifiers] ici. Diego démarre deux <quote>affichages</quote> séparés ici. Il peut alors choisir lequel il veut lorsqu'il se connecte.
</para>

<para>
La plupart des gestionnaires d'affichage viennent du vénérable <command>xdm</command> de XFree86, avec en plus leurs propres perfectionnements. Voyons rapidement les plus répandus d'entre eux.
</para>


<!--   ~~~~~       Nouvelle section      ~~~~~     -->
<sect3>
<title>xdm</title>

<para>
<command>xdm</command> peut être configuré à l'aide des fichiers de configuration situés dans <filename>/etc/X11/xdm/</filename>, <filename>/usr/X11R6/lib/X11/xdm</filename>, ou à des emplacements semblables selon votre système. Ce sont de gros fichiers système. Le fichier <filename>xdm-config</filename> est le fichier principal de configuration, et décrit surtout où trouver les fichiers secondaires de configuration : 
</para>

<para>
 <screen>
 ! $XConsortium: xdm-conf.cpp /main/3 1996/01/15 15:17:26 gildea $
 DisplayManager.errorLogFile:	/var/log/xdm-errors
 DisplayManager.servers:		/etc/X11/xdm/Xservers
 DisplayManager.accessFile:	/etc/X11/xdm/Xaccess
 ! Tous les affichages devraient utiliser une autorisation
 ! mais ce n'est pas absolument certain.
 ! Les terminaux X seront configurés de cette manière, donc par défaut
 ! n'utiliser d'autorisation que pour les affichages locaux 0, 1, etc.
 DisplayManager._0.authorize:	true
 DisplayManager._1.authorize:	true
 ! Les trois ressources suivantes définissent l'affichage 0
 ! comme console
 DisplayManager._0.setup:	/etc/X11/xdm/Xsetup_0
 DisplayManager._0.startup:	/etc/X11/xdm/GiveConsole
 DisplayManager._0.reset:	/etc/X11/xdm/TakeConsole
 !
 DisplayManager*resources:	/etc/X11/xdm/Xresources
 DisplayManager*session:		/etc/X11/xdm/Xsession
 !
 ! SECURITE : Ne tenez pas compte d'éventuelles requêtes de XDMCP ou de Chooser
 ! Commentez cette ligne si vous voulez gérer les terminaux X avec xdm
 DisplayManager.requestPort:	0 
 </screen>
</para>

<para>
<quote>!</quote> signale les commentaires. La commande qui démarre le serveur  X est située dans <filename>/etc/X11/xdm/Xservers</filename> dans cet exemple précis comme défini par <quote>DisplayManager.servers</quote>, et est l'équivalent de <filename>xserverrc</filename> qui a été employé pour démarrer le serveur X avec <command>startx</command>, mais la syntaxe est légèrement différente ici. Le contenu du fichier <filename>/etc/X11/xdm/Xservers</filename> sur mon système est simplement :
</para>

<para>
 <screen>
 :0 local /usr/X11R6/bin/X 
 </screen>
</para>

<para>
 Cela démarre <application>X</application> sur le premier affichage local (désigné par 0). C'est ici, à la fin, qu'il faut mettre les options en ligne de commande que vous souhaiteriez ajouter. 
</para>

<para>
Ci-dessous un exemple du fichier <filename>/etc/X11/xdm/Xsetup&lowbar;0</filename> qui ne sert que pour configurer l'écran d'ouverture de session. Notez que nous utilisons un script shell, et qu'il appelle <command>xv</command> (un programme d'affichage graphique) pour avoir comme arrière-plan une belle image (à la place du triste arrière-plan noir et blanc), et si cela échoue, le <command>xsetroot</command> est alors appelé pour essayer au moins d'avoir comme arrière-plan une couleur bleue plus jolie. Ceci ne configure pas l'outil d'ouverture de session lui-même - mais juste d'autres choses que l'on souhaiterait avoir sur l'écran pendant l'ouverture de session.
</para>

<para>
 <screen>
 &num;!/bin/sh
 xconsole -geometry 480x100-0-0 -daemon -notify -verbose -fn \
   '-schumacher-clean-medium-r-*-*-10-*-*-*-*-*-*-*' -exitOnFail  &amp;
 
 /usr/X11R6/bin/xv -quit -root /usr/share/pixmaps/Backgrounds/InDreams.jpg \
   || xsetroot -solid darkblue
 </screen>
</para>

<para>
Le fichier <filename>/etc/X11/xdm/Xresources</filename> contrôle les <quote>ressources</quote> de X utilisées pendant l'ouverture de session. Dans ce contexte, les <quote>ressources</quote> sont des préférences de l'utilisateur portant sur certains éléments comme la police ou les couleurs (décrites avec plus de détails ci-dessous). Ci-dessous un bout de code qui paramètre les polices pour l'outil d'ouverture de session : 
</para>

<para>
 <screen>
 #if WIDTH > 800
 xlogin*greetFont: -adobe-helvetica-bold-o-normal--24-240-75-75-p-138-iso8859-1
 xlogin*font: -adobe-helvetica-medium-r-normal--18-180-75-75-p-103-iso8859-1
 xlogin*promptFont: -adobe-helvetica-bold-r-normal--18-180-75-75-p-103-iso8859-1
 xlogin*failFont: -adobe-helvetica-bold-r-normal--18-180-75-75-p-103-iso8859-1
 #else
 xlogin*greetFont: -adobe-helvetica-bold-o-normal--17-120-100-100-p-92-iso8859-1
 xlogin*font: -adobe-helvetica-medium-r-normal--12-120-75-75-p-69-iso8859-1
 xlogin*promptFont: -adobe-helvetica-bold-r-normal--12-120-75-75-p-69-iso8859-1
 xlogin*failFont: -adobe-helvetica-bold-o-normal--14-140-75-75-p-82-iso8859-1
 #endif
 </screen>
</para>

<para>
 Comme vous pouvez le voir helvetica est utilisé comme police préférée, avec différentes tailles de point et de dpi (points par pouce) selon la taille d'écran. C'est personnalisable pour convenir à tous les besoins. (Voir ci-dessous pour en savoir plus sur les conventions concernant les noms de polices dans X). Divers autres aspects peuvent également être configurés.
</para>

<para>
<filename>/etc/X11/xdm/Xsession</filename> est à peu près l'équivalent du <filename>xinitrc</filename> pour le <command>startx</command>. Il établira également un environnement par défaut pour le clavier, etc. Il peut également démarrer <application>KDE</application> ou <application>GNOME</application>, ou tout autre programme client de <application>X</application>. C'est le fichier principal de configuration du système. Il doit également vérfier le répertoire local de l'utilisateur pour trouver un fichier <filename>~/.xsession</filename>, et un éventuel fichier <filename>~/.Xclients</filename>, qui contiendrait l'environnement et les programmes de démarrage préférés de l'utilisateur, tout comme <filename>~/.xinitrc</filename> le faisait avec <command>startx</command>. Encore une fois, les fichiers dans le répertoire local de l'utilisateur peuvent être créés ou modifiés par l'utilisateur n'importe quand et doivent être des scripts shell exécutables.
</para>

<para>
Nous n'allons pas proposer d'exemple de fichier <filename>~/.xsession</filename>, étant donné qu'il ressemblerait beaucoup aux exemples de fichiers <filename>~/.xinitrc</filename> et <filename>~/.Xclients</filename> présentés ci-dessus.
</para>

<para>
Nous avons vu rapidement les principaux fichiers de configuration de <command>xdm</command>. N'hésitez pas à lire la page de man, et à regarder ce qui est installé localement, pour plus d'informations. Voyons maintenant <command>gdm</command> et <command>kdm</command>. Nous surlignerons juste les différences significatives, étant donné qu'ils fournissent grosso modo les mêmes fonctionnalités.
</para>

</sect3>

<!--  ~  Fin section  ~  -->


<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect3>
<title>gdm</title>
<para>
<command>gdm</command> est le gestionnaire d'affichage par défaut pour <application>GNOME</application>. <command>gdm</command> a été écrit à partir de rien, mais fonctionne comme <command>xdm</command>. Le fichier principal de configuration est <filename>gdm.conf</filename> ; il se trouve en général ici : <filename>/etc/X11/gdm/gdm.conf</filename>. Il ne ressemble pas visuellement au fichier xdm-config. Les commentaires sont précédés par un <quote>#</quote>, et le fichier a des sections, avec des entêtes de section entre crochets. La commande pour démarrer <application>X</application> est dans la section <quote>[servers]</quote> :
</para>

<para>
 <screen>
 [servers]
 0=/usr/bin/X11/X
 #1=/usr/bin/X11/X
 </screen>
</para>

<para>
Notez qu'il y a potentiellement deux affichages de paramètrés, mais le second est commenté. On ajoutera les éventuelles options de démarrage supplémentaires de <application>X</application> ici, par exemple <quote>-dpi 100</quote>. L'écran d'ouverture de session et l'outil d'ouverture de session sont configurés dans la section  <quote>[greeter]</quote>.
</para>

<para>
Les clients et les programmes lancés au démarrage sont déterminés par le bloc <quote>SessionDir</quote> dans la section <quote>[deamon]</quote>. Sur mon installation, celui-ci pointe sur <filename>/etc/X11/gdm/Sessions/</filename>, qui contient plusieurs scripts courts. Si je regarde mon script par défaut (<filename>Default</filename>), je vois en fait qu'il exécute <filename>/etc/X11/xdm/Xsession</filename>, qui à son tour exécutera <filename>~/.xsession</filename>, s'il est présent. Ainsi à cette dernière étape, ce que fait <command>gdm</command> est tout à fait semblable à ce que fait <command>xdm</command>.
</para>

<para>
<application>GNOME</application> fournit l'utilitaire <command>gdmconfig</command> pour gérer de nombreux aspects du comportement de <command>gdm</command>.
</para>

</sect3>

<!--  ~  Fin section  ~  -->



<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect3>
<title>kdm</title>
<para>
<command>kdm</command> est le gestionnaire d'affichage de <application>KDE</application>. Le fichier principal de configuration pour <command>kdm</command> est <filename>kdmrc</filename> et il se trouve généralement ici : <filename>/etc/kde/kdm/kdmrc</filename>. Comme cela est le cas pour  <filename>gdm.conf</filename>, <filename>kdmrc</filename> utilise <quote>#</quote> pour signaler les commentaires, et a des sections avec des entêtes entre crochets également. La configuration <command>kdm</command> peut également être éditée avec l'utilitaire <command>kcontrol</command>.
</para>

<para>
Le bureau est configuré dans la ou les section(s) <quote>[Desktop*]</quote>, et par la directive <quote>setup</quote> qui doit pointer vers un fichier comme <filename>/usr/share/config/kdm/Xsetup</filename> ou <filename>/etc/X11/xdm/Xsetup_0</filename>. On aboutira à la même chose qu'avec le <filename>Xsetup_0</filename> de <command>xdm</command> : à savoir l'exécution de tous les programmes que l'utilisateur aimerait éventuellement avoir, comme <command>xconsole</command>.
</para>

<para>
La commande pour lancer le serveur X est la directive <quote>Xservers</quote> dans <quote>[General]</quote>. Encore une fois, cela doit pointer vers un fichier tel que <filename>/etc/X11/xdm/Xservers</filename>, et utilisera la même syntaxe que <command>xdm</command> :
</para>

<para>
 <screen>
 :0 local /usr/X11R6/bin/X 
 </screen>
</para>

<para>
C'est ici que toute option en ligne de commande pour le serveur X doit se mettre. 
</para>

<para>
L'outil d'ouverture de session lui-même est configuré dans la (ou les) section(s) <quote>[X-*-Greeter]</quote>. Une version compilée par défaut est utilisée si l'utilisateur n'en indique pas.
</para>

<para>
<application>KDE</application> fournit l'utilitaire <command>kdmdesktop</command> pour gérer divers aspects du comportement de <command>kdm</command>, principalement l'arrière-plan d'ouverture de session.
</para>

</sect3>

</sect2>

</sect1>

<!--  ~  Fin section  ~  -->



<!--   ~~~~~~~~       Entête nouvelle section     ~~~~~~~~~     -->

<sect1 id="moreconfig">
<title>Pour en savoir plus sur la configuration de X</title>

<para>
Avant de jeter un oeil à divers mécanismes de configuration pour les serveurs et les clients X, il faut remarquer que les environnements graphiques comme <application>KDE</application> se sont répandus dès leur apparition en partie parce qu'ils peuvent gérer la plupart des configurations d'interactions utilisateurs, grâce à des commandes <quote>faciles à utiliser</quote> par interface graphique. Et en fait, les applications conformes qui font partie des bureaux respectifs seront mieux configurées par les outils de la configuration du bureau, ou par leurs propres méthodes de configuration graphique. Ainsi, par exemple, le <command>gtop</command>, une application cliente de <application>GNOME</application>, se configure mieux par l'intermédiaire de <application>GNOME</application> ou des menus <command>gtop</command> eux-mêmes. Mais ce n'est pas vrai pour toutes les applications de <application>X</application>.
</para>


<!--   ~~~~~       Nouvelle section      ~~~~~     -->
<sect2 id="xresources">
<title>Ressources X</title>

<para>
 Le serveur X peut stocker diverses valeurs de configuration pour les programmes clients de sorte qu'elles sont facilement disponibles si nécessaires. Si l'application est compatible, elle les emploiera en tant que valeurs par défaut à chaque fois que ce programme sera appelé. Ces valeurs sont connues sous le nom de <quote>ressources [Resources]</quote>, et servent souvent pour définir les préférences utilisateurs, application par application, pour les polices, les couleurs, la position à l'écran (la géométrie) et divers autres attributs. Cela facilite la personnalisation des applications.
</para>

<para>
Les ressources sont de type chaîne de caractères (par exemple Netscape*blinkingEnabled:False) qui peut être lue à partir du disque dans divers endroits quand <application>X</application> se lance ; elles peuvent aussi être définies interactivement en ligne de commande. Les composants des programmes sont nommés hiérarchiquement, chaque objet dans la hiérarchie étant identifié par une classe ainsi que par un nom d'instance. Au niveau supérieur de la hiérarchie se trouvent la classe et le nom de l'instance de l'application elle-même. Le nom de la classe de l'application est toujours identique au nom du programme, mais avec la première lettre en majuscule (par exemple <application>Vim</application> ou <application>Emacs</application>) bien que quelques programmes qui commencent par la lettre <quote>X</quote> ont également leur deuxième lettre en majuscule pour des raisons historiques (par exemple <application>XTerm</application>). Chaque définition indiquera une classe (ou instance), avec la ressource et la valeur qui correspondent. Plus bas dans la hiérarchie se trouvent les divers attributs qui constituent les aspects paramètrables de l'application.
</para>

<para>
Traditionnellement la plupart des programmes <application>X</application> étaient configurés de la sorte. Ce n'est plus aussi vrai aujourd'hui avec l'arrivée des environnements graphiques qui ont souvent leurs propres mécanismes de configuration.
</para>

<para>
Par exemple, supposons que nous préférons lancer <command>xterm</command> avec un arrière-plan bleu. Donc si nous le lancions depuis la ligne de commande, nous le ferions ainsi : 
</para>

<para>
 <screen>
 xterm -bg blue &amp;
 </screen>
</para>

<para>
Si c'est notre préférence, il serait plus facile de mettre cette préférence dans un fichier quelque part, et faire utiliser notre préférence par le système. De cette façon chaque fois que nous démarrerions <command>xterm</command>, il utiliserait notre valeur préférée, et nous n'aurions plus besoin de la ligne de commande options (à moins de vouloir surcharger).
</para>

<para>
La syntaxe de base des ressources de <application>X</application> s'écrit comme suit : 
</para>

<para>
 <screen>
 &lt;program&gt;&lt;binding&gt;&lt;widget&gt;&lt;binding&gt;&lt;widget&gt;&lt;...&gt;&lt;resource&gt;:&lt;value&gt;
 </screen>
</para>

<para>
Ce qui, dans la vraie vie, ressemble en général à ça : 
</para>

<para>
 <screen>
 xterm*fontMenu*background: darkblue
 </screen>
</para>

<para>
Ce que cela fait devrait paraître évident. L'utilisation des <quote>*</quote> dans la définition s'appelle <quote>liaison lâche [loose binding]</quote> et joue le rôle de joker. Cela signifie qu'il peut y avoir des lacunes dans la hiérarchie des composants. 
</para>

<para>
 <screen>
 xterm*background: darkblue
 </screen>
</para>

<para>
Ceci donnerait également un fond bleu foncé pour le fontMenu de <command>xterm</command>, mais également pour toutes les autres propriétés de <command>xterm</command> qui ont également un attribut  <quote>background</quote> (par exemple window background, etc.), peu importe où ils peuvent être dans la hiérarchie des composants. De même :
</para>

<para>
 <screen>
 *background: darkblue
 </screen>
</para>

<para>
Ceci définirait le fond pour tous les programmes qui ont cette propriété (pas uniquement <command>xterm</command>). L'emploi d'un  <quote>.</quote> au lieu d'une <quote>*</quote> sera plus précis, et permettra d'écarter les lacunes de joker dans la hiérarchie. En outre, l'application doit accepter l'attribut particulier du composant. Pour <quote>Background</quote>, c'est à peu près sûr, mais beaucoup d'applications auront des ressources plus spécialisées qui ne sont pas aussi évidentes. Il est préférable de regarder la documentation locale (pages de man, etc.), ou regarder si une application a des exemples d'inclus. Par exemple, <command>Netscape</command> est généralement livré avec un fichier <filename>Netscape.ad</filename> qui a un ensemble très complet de définitions de ressource qui peuvent être adaptées.
</para>

<para>
On verra que les ressources de <application>X</application> sont stockées à plusieurs endroits (voir ci-dessous) et sont traitées par la commande <command>xrdb</command> (voir la page de man).
</para>


<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect3>
<title>Les fichiers App Defaults</title>
<para>
Une méthode pour stocker les ressources  des applications préférées est d'utiliser les fichiers nommés pour l'application dans un dossier <quote>app-defaults</quote>. Par exemple, sur mon système, ceux-ci se trouvent dans <filename>/usr/X11R6/lib/X11/app-defaults/</filename>, cependant ce répertoire peut être différent selon les options que votre fournisseur a choisies. Ce répertoire contient un certain nombre de fichiers pour les applications <application>X</application> connues telles que le <command>xterm</command>, <command>xclock</command>, <command>xcalc</command>, <command>xload</command>, etc. Au final, c'est un nombre relativement petit d'applications au vu du système dans son ensemble. Par conséquent, toutes les applications n'utilisent pas cette méthode. En fait, la majorité ne l'utilise pas.
</para>

<para>
Chaque fichier contiendra la définition des ressources pour cette application. Le serveur X charge ceux-ci de lui-même pendant son démarrage. En court exemple tiré de <filename>XTerm-color</filename> :
</para>

<para>
 <screen>
 ! $XFree86$

 #include "XTerm"

 *VT100*colorMode: on
 *VT100*dynamicColors: on

 ! A décommenter pour utiliser de la couleur pour l'attribut "underline"
 !*VT100*colorULMode: on
 !*VT100*underLine: off

 ! A décommenter pour utiliser de la couleur pour l'attribut "bold"
 !*VT100*colorBDMode: on

 *VT100*color0: black
 *VT100*color1: red3
 *VT100*color2: green3
 *VT100*color3: yellow3
 *VT100*color4: blue3
 *VT100*color5: magenta3
 *VT100*color6: cyan3
 *VT100*color7: gray90
 *VT100*color8: gray30
 *VT100*color9: red
 *VT100*color10: green
 *VT100*color11: yellow
 *VT100*color12: blue
 *VT100*color13: magenta
 *VT100*color14: cyan
 *VT100*color15: white
 *VT100*colorUL: yellow
 *VT100*colorBD: white
 </screen>
</para>

<para>
Ici on a surtout différentes définitions de couleur. Le classname de l'application n'est pas explicitement énoncé, et est déterminé par le nom de fichier. Il faut donc faire comme si chaque ligne commence par <literal>XTerm-color*</literal>. En outre, remarquez en haut, la ligne <literal>#include "XTerm"</literal>, qui <quote>inclut</quote> les définitions de ressource pour <command>XTerm</command>, fichier beaucoup plus long avec un ensemble de définitions plus divers. (On ne l'a pas inclus ici du fait de sa longueur, mais ça vaut le coup de regarder.) Ces fichiers fournissent les paramètres par défaut du système, et d'une manière générale, sont rarement édités par l'utilisateur.
</para>

</sect3>

<!--  ~  Fin section  ~  -->



<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect3>
<title>Xdefaults</title>

<para>
Une autre méthode couramment pratiquée pour l'obtention des préférences au niveau ressources, est d'utiliser un fichier <filename>Xdefaults</filename>, nommé parfois <filename>Xresources</filename>. Celui-ci peut exister comme fichier système, par exemple <filename>/etc/X11/Xresources</filename>. Naturellement, l'utilisateur est libre de créer une version personnelle dans son répertoire local, par exemple <filename>~/.Xdefaults</filename>. La version de l'utilisateur surchargera tout paramètre des fichiers système, et restera inchangé après les mises à niveau du système. Evidemment, c'est là que vous mettrez vos propres préférences.
</para>

<para>
Les fichiers <filename>Xresources</filename> sont lus pour la base de donnée des ressources avec la commande <command>xrdb</command>. Par exemple:
</para>

<para>
 <screen>
 xrdb -merge ~/.Xresources
 </screen>
</para>

<para>
Ceci peut être fait interactivement à la ligne de commande, ou être placé dans un script et être lancé automatiquement au démarrage de la session <application>X</application>. Dans le cas des fichiers système, ceci devrait être pris en charge par les scripts de démarrage fourni par la distribution. Généralement, ces derniers vérfieront également le répertoire local de l'utilisateur  (voir l'exemple de <filename>xinitrc</filename> ci-dessus). Du coup, on aura probablement rien d'autre à faire que de créer le fichier avec un éditeur de texte.
</para>

<para>
Voici un exemple pour vous montrer une infime partie de tout ce qu'on pourrait faire avec un fichier <filename>.Xdefaults</filename> :
</para>

<para>
 <screen>
 ! Ceci est un commentaire ;-)

 #ifdef COLOR
 *customization: -color
 #endif

 !! Ratissons large, pour récupérer toutes les applications compatibles
 !! Signal visuel, et non sonore
 *visualBell: True
 *scrollTtyOutput: False
 *scrollKey:       True

 ! Voir Netscape.ad pour plus de ressources paramètrables
 Netscape*noAboutSplash:	True
 Netscape*documentFonts.sizeIncrement: 5
 Netscape*documentFonts.xResolution*iso-8859-1: 120
 Netscape*documentFonts.yResolution*iso-8859-1: 120
 netscape-navigator*geometry: 960x820+240+140

 emacs*Background: DarkBlue
 emacs*Foreground: Wheat
 emacs*pointerColor: Orchid
 emacs*cursorColor: Orchid
 emacs*bitmapIcon: on
 emacs*font: 10x20

 ! Couleurs pour GVim, etc.
 !! Les versions GTK de gvim n'utiliseront pas ces paramètres.
 Vim*useSchemes:         all
 Vim*sgiMode:            true
 Vim*useEnhancedFSB:     true
 Vim.foreground:         Black
 !Vim.background:        lightyellow2
 Vim*background:         white
 ! geometry: largeur x hauteur
 Vim.geometry:  88x40
 Vim*font:  -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-15-*5
 Vim*menuBackground: yellow
 Vim*menuForeground: black

 rxvt*backspacekey: ^?
 rxvt*background: Black
 rxvt*foreground: wheat
 rxvt*cursorColor: Orchid
 rxvt*geometry: 100x18+40+300 
 rxvt*title: Linux
 rxvt*reverseVideo: false
 !rxvt*backgroundPixmap: ~/penguinitis.xpm
 rxvt*scrollBar: true
 rxvt*reverseWrap: true
 rxvt*font: -*-lucidatypewriter-medium-*-*-*-14-*-*-*-*-*-*-*
 rxvt*fullCursor: true
 rxvt*saveLines:  1500
 rxvt*menu: ~/rxvt.menu

 XTerm*saveLines:    1500
 ! Ne pas effacer l'écran après la fermeture du programme
 XTerm*VT100*titeInhibit: true

 ! Corrige les affectations de touche pour xterm 
 xterm*VT100.translations:	#override \
       &lt;Key&gt;BackSpace:    string(0x7F) \n\
       &lt;Key&gt;Insert:       string(0x1b) string("[2~")\n\
       &lt;Key&gt;Delete:       string(0x1b) string("[3~")\n\
       &lt;Key&gt;Home:         string(0x1b) string("[1~")\n\
       &lt;Key&gt;End:	     string(0x1b) string("[4~")\n\
       &lt;Key&gt;Page_Up:      string(0x1b) string("[5~")\n\
       &lt;Key&gt;Page_Down:    string(0x1b) string("[6~")\n\
       &lt;KeyPress&gt;Prior : scroll-back(1,page)\n\
       &lt;KeyPress&gt;Next : scroll-forw(1,page)

 ! Ghostview
 Ghostview*Font: *-helvetica-bold-r-normal--12-*-*-*-*-*-*
 Ghostview*BorderColor:  white
 Ghostview*Text*Font:    rk14
 Ghostview*Background:   #d9d9d9
 !Ghostview*Foreground:  white
 ghostview.form.pageview.page.background: white
 ghostview.form.pageview.page.foreground: black
 .ghostview.zoom.form.page.background: white
 .ghostview.zoom.form.page.foreground: black

 ! xscreensaver !
 ! Temps dépassé au bout de 12 minutes, mode cycle toutes les 2 minutes
 xscreensaver.timeout: 12
 xscreensaver.cycle: 5
 ! Tourner en priorité faible, et fondu entre les modes
 xscreensaver.nice: 12
 xscreensaver.fadeSeconds: 2

 XFontsel.menu.options.showUnselectable: False 
 </screen>
</para>

<para>
Si tout va bien, ces quelques exemples vous donneront quelques idées pour démarrer. <application>X</application> n'a pas besoin d'être redémarré si <command>xrdb</command> est utilisé interactivement en ligne de commande après des modifications. Les effets sont immédiats.
</para>

<para>
Les ressources sont parfois également disponibles comme options en ligne de commande. Voir ci-après. Les options en ligne de commande surchargeront toutes les définitions existantes de ressource.
</para>

</sect3>
</sect2>

<!--  ~  Fin section  ~  -->



<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect2>
<title>xmodmap, le clavier et les souris</title>
<para>
Le clavier et la souris, ainsi que d'autres périphériques d'entrée possibles, sont définis dans <filename>XF86Config</filename> (ou <filename>XF86Config-4</filename>). Il y a une disposition des touches du clavier qui est définie à partir de la langue préférée :
</para>

<para>
 <screen>
 Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "keyboard"
	Option      "XkbLayout"	"us"
 EndSection
 </screen>
</para>

<para>
Ceci nous donne notre disposition de clavier par défaut. Une liste des étiquettes valides de disposition se trouve dans <filename>/usr/X11R6/lib/X11/xkb/symbols</filename>. En outre, l'utilitaire setxkbmap peut être employé pour faire des modifications interactivement.
</para>

<para>
Avec <application>X</application>, les possibilités de personnalisation sont énormes, et on peut modifier les actions des touches du clavier et du pointeur de la souris à notre convenance. L'utilitaire pour ce faire est <command>xmodmap</command> (voir la page de man). Vous n'aimez pas l'emplacement de la touche de verrouillage majuscule ? Déplacez là !! ; -)
</para>

<para>
Comme <command>xrdb</command>,  <command>xmodmap</command> peut être lancé en ligne de commande. Autre possibilité : les paramètres préférés peuvent être stockés dans un fichier. En général, c'est le fichier <filename>~/.Xmodmap</filename>, ou quelque chose de similaire. Si les scripts de démarrage de votre <application>X</application> n'analysent pas ces fichiers, faites les modifications qu'il faut pour qu'ils le fassent (probablement à partir de <filename>~/.xinitrc</filename> ou de <filename>~/.xsession</filename>).
</para>

<para>
On peut visualiser les actions du pointeur et des touches avec : <command>xmodmap - pk - pp |less</command>. Toutes les valeurs actives de <quote>keycode</quote> s'afficheront, avec les valeurs correspondantes de <quote>keysym</quote>, et tous les noms de keysym que le <command>xmodmap</command> connaît (par exemple <quote>retour arrière</quote> [BackSpace]). Cela devrait également vous donner une idée de la façon dont le <command>xmodmap</command> comprend les événements touches et souris. Il y a deux <quote>keysyms</quote> par <quote>keycode</quote>. La seconde est la valeur lorsque la <quote>majuscule</quote> est activée. L'utilitaire <command>xev</command> de XFree86 peut être employé pour afficher interactivement beaucoup d'informations sur les touches et les événements souris. Faites attention à la valeur de <quote>keycode</quote>. C'est ce que vous devrez connaêtre afin de modifier les actions.
</para>

<para>
 <command>xmodmap</command> est  souvent utilisé pour faire des petites améliorations clavier, par exemple pour avoir des fonctions retour arrière/supprimer [BackSpace/Delete] bien adaptées. Il peut également  être utilisé pour faire des modifications importantes comme les mappages  internationaux. On peut seulement modifier les mappages des touches et des événements souris -- on ne peut pas affecter des macros aux événements touches  (il se pourrait que votre gestionnaire de fenêtre ou votre environnement graphique ait en partie cette fonctionnalité).
</para>

<para>
L'installation  de claviers internationaux est bien expliquée dans <ulink url="http://www.linuxdoc.org/HOWTO/mini/Intkeyb/index.html">http://www.linuxdoc.org/HOWTO/mini/Intkeyb/index.html</ulink>. En outre, une recherche dans <ulink url="http://google.com/linux">http://google.com/linux</ulink> donnera beaucoup d'exemples utiles.
</para>

<para>
La page de man possède de nombreux exemples rapides sur diverses approches. Voici ce à quoi pourrait ressembler un <filename>~/.Xmodmap</filename> hypothétique :
</para>

<para>
 <screen>

 ! /home/hal/.Xmodmap, dernier changement 03/10/01
 !
 ! Définir le retour arrière à 22 et la touche "supprimer" à 111
 keycode 22 = BackSpace
 keycode 111 = Delete
 !
 ! Mon clavier gère les touches Maj gauche et droite différemment.
 ! Faire que la droite agisse comme la gauche pour éviter la gymnastique
 ! des doigts.

 keycode 63 = Alt_L
 keycode 113 = Meta_L
 !
 ! Coder en dur les valeurs des touches du pavé numérique en chiffres
 ! comme si le Verr Num était toujours activé
 ! puisque je ne l'utilise jamais pour autre chose
 keycode 79=7
 keycode 80=8
 keycode 81=9
 keycode 83=4
 keycode 84=5
 keycode 85=6
 keycode 87=1
 keycode 88=2
 keycode 89=3
 keycode 90=0
 keycode 91=period
 keycode 86 = plus
 ! Désactiver le Ver Num vu qu'on en a plus besoin
 keycode 77 =
 !
 ! Verr maj est près de tab. Je la tape par erreur de temps en temps, 
 ! et ne l'utilise pas de toute façon. Donc faire Verr Num agir comme Tab. keycode 66 = Tab
 clear lock
 !
 ! Inversion des boutons de la souris pour les gauchers
 pointer = 3 2 1 
 </screen>
</para>

<para>
Comme dans beaucoup de fichiers XFree86, <quote>!</quote> représente un commentaire. Une autre utilisation possible, est de redéfinir ces touches <quote>Windows</quote>, qui sont agaçantes, pour qu'elles servent à quelque chose. J'espère que cela donne une idée des choses qu'on pourrait faire, si on en a envie, pour avoir un clavier plus agréable.
</para>

<para>
En parlant de la touche <literal>Verr Num</literal>, <application>X</application> la neutralisera systématiquement lorsqu'il démarrera. Qu'importe la façon dont on a paramètré le  BIOS, ou Linux avant que <application>X</application> se lance. Les indications données ci-dessus ne représentent donc qu'une façon de faire. Il y a également un utilitaire de disponible sur Internet qui s'appelle soit <application>numlockx</application>, soit <application>setnumlock</application>, si votre distribution ne comporte ni l'un ou ni l'autre. Il peut se mettre dans un fichier de démarrage pour activer <literal>Verr Num</literal> automatiquement, c'est comme on veut.
</para>

<para>
Les gestionnaires de fenêtres et les environnements bureau permettent également la personnalisation du clavier et de la souris (dans la mesure ou <application>X</application> la reconnaît correctement). Cela peut être une méthode plus facile pour configurer certaines personnalisations.
</para>



<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect3>
<title>Mappage des touches spéciales</title>
<para>
Il y a de nombreux mappages de touches spéciales traditionnellement utilisés dans XFree86.
</para>

<para>
 <itemizedlist>

  <listitem>
   <para>
Ctrl-Alt-Retour Arrière - Fermera le processus de serveur X d'une façon correcte. C'est une manière rapide, facile et légitime de redémarrer <application>X</application>. Notez qu'elle ne remet pas en marche le gestionnaire d'affichage (si utilisé) à seulement <application>X</application> lui-même.
   </para>
  </listitem> 

  <listitem>
   <para>
Ctrl-Alt-Fx - où <quote>x</quote> correspond à un chiffre valide d'un terminal (en général 1-6). C'est ce qu'on utilise pour ouvrir une console texte, alors que X  est toujours en cours d'exécution. Pour revenir à <application>X</application>, faites <quote> Alt-Fx </quote>. Ici, <quote> x </quote> est égal au dernier terminal plus une unité (par exemple Alt-F7 s'il y a six terminaux de disponibles).
   </para>
  </listitem> 

  <listitem>
   <para>
Ctrl-Alt-+ (du pavé numérique) et Ctrl-Alt-- (du pavé numérique)  - On passera d'un <quote> mode </quote> de résolution d'écran valide existante à un autre, par exemple 1024x768 - > 600x800. Notez que la taille d'écran elle-même ne change pas : seuls la vue et la résolution changent. Pas si utile que ça pour la plupart des cas. Vous ne pouvez pas changer la résolution d'écran de manière permanente sans redémarrer <application>X</application>.
   </para>
  </listitem> 

 </itemizedlist>
</para>

<para>
Il est possible que le gestionnaire de fenêtre, l'environnement graphique ou tout autre composant du système puisse attraper ces derniers, et en changer le comportement standard. En outre, Ctrl-Alt-Supprimer peut également être attrapé. Celui-ci devrait fermer <application>X</application> (et le système), s'il est disponible.
</para>

</sect3>

<!--  ~  Fin section  ~  -->



<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect3>
<title>Souris et pointeurs</title>

<para>
Ainsi que cela a déjà été dit, Linux et Unix font une utilisation massive des trois boutons de la souris. Si une souris a seulement deux boutons, alors le troisième bouton (c.-à-d. celui du milieu) peut être simulé en appuyant sur les deux boutons en même temps. C'est une option de configuration qui se trouve dans <filename>XF86Config</filename> sous le nom de directive <quote>Emulate3Buttons </quote> :
</para>

<para>
 <screen>
 Section "InputDevice"
	Identifier  "Mouse0"
	Driver      "mouse"
	Option      "Device" "/dev/mouse"
	Option      "Protocol" "PS/2"
	Option      "Emulate3Buttons" "on"
 EndSection
 </screen>
</para>

<para>
Au bout du compte, un troisième bouton est très pratique et je recommanderais personnellement d'en avoir un. Sur les souris à molette, la <quote> molette </quote> agit en tant que le troisième bouton, si on appuie dessus. Beaucoup de souris à molette standard semblent utiliser le protocole <quote> IMPS/2 </quote>.
</para>

<para>
Plus particulièrement, le troisième bouton (milieu) est, dans pratiquement toutes les applications Linux, le bouton pour <quote> coller </quote>. Le copier/coller fonctionne un peu différement sous Linux. Le bouton gauche est le bouton de copie. Maintenez le et sélectionnez le texte. Il est automatiquement copié dans le <quote> presse-papiers </quote> de <application>X</application>. Puis, le bouton du milieu collera à partir de ce dernier. C'est un processus très simple. En double-cliquant on copiera les mots un par un, et en triple-cliquant on copiera chaque ligne d'un texte. Si pour une raison ou pour une autre, cela ne fonctionne pas, c'est soit une application mal implémentée, soit un bogue quelconque. Certaines anciennes versions de <application>Netscape</application> posaient des problèmes, par exemple. Pour coller depuis le clavier, il faut faire maj+insert.
</para>

<para>
Le <quote> glisser/déposer</quote> n'est pas une fonction native de <application>X</application> lui-même. Mais, il est implémenté par certaines boîtes à outils et environnements graphiques. Il ne faut pas s'attendre à ce que ça marche avec des applications non conformes (c.-à-d. les applications non-<application>KDE</application> dans <application>KDE</application>par exemple).
</para>

</sect3>

</sect2>

<!--  ~  Fin section  ~  -->



<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect2>
<title>xset</title>
<para>
<command>xset</command> est encore un autre utilitaire XFree86 pour paramètrer des préférences utilisateur. <command>xset</command> est un peu un attrape-tout et est utilisé pour changer divers paramètres indépendants du serveur X. C'est surtout une méthode en ligne de commande pour configurer certaines des propriétés déjà définies dans <filename>XF86Config</filename> (mais pas tout !).
</para>

<para>
<command>xset</command> est couramment utilisé pour activer ou désactiver le DPMS ainsi que les intervalles préférés ; pour changer dynamiquement le FontPath ou le relire ; pour gérer les DEL du clavier ; pour régler la vitesse de mouvement de la souris (ou tout autre pointeur) ;  pour paramètrer les taux de <quote> répétition </quote> et d' <quote> autorépétition </quote> du clavier ; et pour gérer l'extinction d'écran intégré à <application>X</application>. Voir la page de man, naturellement, pour des explications plus détaillées, et d'autres utilisations de <command>xset</command>.
</para>

<para>
Encore un fois, <command>xset</command> peut être utilisé interactivement en ligne de commande. Mais, la plupart du temps, les paramètres préférés sont stockés dans un fichier de configuration du démarrage, comme <filename>.xinitrc</filename> ou <filename>.xsession</filename>. Un exemple très rapide :
</para>

<para>
 <screen>
 # Désactiver l'extiction d'écran
 xset s off
 
 # Activer l'économie d'énergie par le DPMS
 xset +dpms
 
 # Peaufiner le rongeur...
 xset m 30/10 4
 
 # Accélérer le clavier
 xset r rate 200 40 
 </screen>
</para>

<para>
Votre environnement graphique a peut-être une interface graphique pour <command>xset</command>.

</para>

</sect2>

</sect1>

<!--  ~  Fin section  ~  -->




<!--   ~~~~~~~~       Nouvelle section Header    ~~~~~~~~~     -->

<sect1 id="fontscolors">
<title>Polices et Couleurs </title>

<para>
Comprendre les polices et les couleurs peut être plus difficile dans <application>X</application> que dans les autres systèmes.
</para>


<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect2>
<title>Les polices démystifiées</title>

<para>
<application>X</application> connaît divers types de police, y compris les bitmaps, les Type 1, et depuis la v4.x, les TrueType. Soit le serveur X peut gérer les polices lui-même, soit parfois cette tâche est concédée à un serveur de police (il en existe un grand nombre). <command>xfs</command> (X Font Server) est le serveur de police le plus couramment utilisé sous Linux.
</para>

<para>
Un serveur de police n'est pas obligatoire, car <application>X</application> peut gérer la plupart des rendus de police. Les serveurs de police sont traditionnellement utilisés pour servir les polices de multiples hôtes sur un réseau, mais ils sont parfois également utilisés pour fournir des fonctionnalités supplémentaires. De plus, un serveur de police peut fournir une légère amélioration des performances du fait qu'il permet de transférer le rendu des polices à un processus séparé.
</para>

<para>
<application>X</application> reconnaît les polices en fonction des polices qui se trouvent dans le <quote> FontPath </quote>. Ceci est paramètré initialement dans <filename>XF86Config</filename>. Si le serveur X gère lui-même les tâches liées aux polices (c.-à-d. sans serveur de police), on aura une liste de répertoires qui contiennent les fichiers de police, par exemple :
</para>

<para>
 <screen>
 FontPath        "/usr/X11R6/lib/X11/fonts/misc:unscaled"
 FontPath        "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
 FontPath        "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
 FontPath        "/usr/X11R6/lib/X11/fonts/Type1"
 FontPath        "/usr/X11R6/lib/X11/fonts/misc"
 FontPath        "/usr/X11R6/lib/X11/fonts/100dpi"
 FontPath        "/usr/X11R6/lib/X11/fonts/75dpi"
 </screen>
</para>

<para>
Si un serveur de police est utilisé, le <quote> FontPath </quote> se dirigera vers l'interface de connexion [socket] que le serveur de police écoute (voici un exemple possible) :
</para>

<para>
 <screen>
 FontPath "unix/:7101"
 </screen>
</para>

<para>
Dans ce dernier cas, les répertoires de police qui se trouvent être disponibles seront configurés dans le serveur de police (voir la documentation locale), qui emploiera un schéma semblable de type répertoire comme on l'a montré pour <filename>XF86Config</filename>.
</para>

<para>
Une fois que des polices appropriées ont été installées, elles doivent <quote> être préparées </quote>. Pour la plupart des polices, ceci signifie lancer (en super utilisateur) l'utilitaire <command>mkfontdir</command> (voir la page de man) dans le répertoire où les polices sont situées. Les polices de  type 1 et de TrueType nécessitent des étapes supplémentaires (voir ci-dessous). Votre fournisseur l'a fait pour toutes les polices qui sont incluses dans votre distribution. Cela devra donc seulement être fait pour les polices que vous ajouterez. Pour que les polices nouvellement ajoutées deviennent visibles pour <application>X</application>, vous devrez lancez les commandes de  <command>xset</command> appropriées pour soit modifier le FontPath existant, soir le relire (voir la page de man). Ou, réinitialiser votre serveur de police.
</para>

<para>
Exemple : Préparation des polices, et réinitialisation du serveur de police après avoir ajouté de nouvelles polices :
</para>

<para>
 <screen>
 su 
 &lt;mot de passe&gt;
 mkfontdir /usr/X11R6/lib/X11/fonts/my_new_fonts/
 /etc/init.d/xfs restart 
 </screen>
</para>

<para>
La première commande peut ne pas être nécessaire sur les distributions les plus récentes (puisque le script init le fait dans certains cas). Et la configuration de serveur de police devrait être modifiée, si c'est un nouveau répertoire. Exemple : réinitialisation sans serveur de police : 
</para>

<para>
 <screen>
 su 
 &lt;mot de passe&gt;
 mkfontdir /usr/X11R6/lib/X11/fonts/my_new_fonts/
 xset +fp /usr/X11R6/lib/X11/fonts/my_new_fonts/
 xset fp rehash 
 </screen>
</para>

<para>
Le <quote><command>xset +fp</command></quote> n'est pas nécessaire si le répertoire fait déjà partie du FontPath.
</para>

<para>
<command>xlsfonts | less</command> peut être utilisé pour faire la liste des polices connues, et donc disponibles, pour <application>X</application> et ses clients. Lancez <command>xlsfonts | less</command>, et vous pourrez également avoir une idée de la définition de police telle que l'entend <application>X</application>. Les ressources de police sont indiquées tout à fait explicitement, et cela peut sembler complexe au début. La description logique de police de X (<emphasis>X
 Logical Font Description</emphasis>, <quote> XLFD </quote>) est la description complète pour n'importe quelle police donnée. Le XLFD ressemble à ceci : 
</para>

<para>
 <screen>
 -adobe-helvetica-medium-r-normal-*-*-120-*-*-p-*-iso10646-1
 </screen>
</para>

<para>
Où chaque champ de gauche à droite est : 
</para>

<simplelist>
 <member>
  <literal remap="tt">fndry</literal> - font foundry, fonderie de police, la société ou la personne qui a fait cette police. 
 </member>
</simplelist>

<simplelist>
 <member>
  <literal remap="tt">fmly</literal> - font family, famille de police, le surnom courant de cette police. 
 </member>
</simplelist>


<simplelist>
 <member>
  <literal remap="tt">wght</literal> - font weight, graisse de police (gras, moyen, etc.) 
 </member>
</simplelist>

<simplelist>
 <member>
  <literal remap="tt">slant</literal> - font slant, inclinaison de la police (italique, oblique, romain (normal), etc.) 
 </member>
</simplelist>

<simplelist>
 <member>
  <literal remap="tt">sWdth</literal> - font width, largeur de police (normal, condensé, étendu, etc.) 
 </member>
</simplelist>

<simplelist>
 <member>
  <literal remap="tt">adstyl</literal> - additional style, style supplémentaire (sans serif, serif, etc.) 
 </member>
</simplelist>

<simplelist>
 <member>
  <literal remap="tt">pxlsz</literal> - pixel size, taille en pixel,  le nombre de pixels verticaux dans un caractère.
 </member>
</simplelist>


<simplelist>
 <member>
  <literal remap="tt">ptSz</literal> - point size, taille approximative en point du texte (similaire à pxlsz).
 </member>
</simplelist>

<simplelist>
 <member>
  <literal remap="tt">resx</literal> - résolution horizontale, en dpi.
 </member>
</simplelist>

<simplelist>
 <member>
  <literal remap="tt">resy</literal> - résolution verticale, in dpi.
 </member>
</simplelist>

<simplelist>
 <member>
  <literal remap="tt">spc</literal> - spacing, espacement, seulement utile, apparemment avec les polices Schumacher.
 </member>
</simplelist>

<simplelist>
 <member>
  <literal remap="tt">avgWidth</literal> - average width, largeur moyenne d'un caractère de la police.
 </member>
</simplelist>

<simplelist>
 <member>
  <literal remap="tt">rgstry</literal> - registry, le registre reconnu qui cite cette police.
 </member>
</simplelist>

<simplelist>
 <member>
  <literal remap="tt">encdng</literal> - encoding, encodage de nationalité.
 </member>
</simplelist>

<para>
<quote> * </quote> agit comme un caractère joker. En fait, si tous les champs ne sont pas indiqués, le serveur de X prendra la première police correspondante qu'il trouvera dans le FontPath. C'est pourquoi il est préférable de classer les polices, dans le FontPath, en mettant les polices préférées en premier puisque certains programmes donneront des indications délibérément <quote>vagues</quote> sur les polices de sorte que votre système ait une certaine liberté.
</para>

<para>
Le programme <command>xfontsel</command> (X Font Selector) peut être utile. Vous allez voir en le lançant maintenant. Vous ne verrez rien d'utile dans la fenêtre principale au début, mais voyez ce que ça donne en maintenant le bouton gauche enfoncé sur le bouton <literal remap="tt">fndry</literal>. Si toutes vos polices sont en règle, vous verrez un menu  avec des choix tels que <literal
 remap="tt">adobe</literal>, <literal remap="tt">b&amp;h</literal>, <literal remap="tt">bitstream</literal> et ainsi de suite. Choisissez en comme par exemple <literal remap="tt">b&amp;h</literal> et vous remarquerez que la police dans la fenêtre du bas se transforme en quelque chose d'intelligible. C'est comme ça qu'on choisit les polices avec ce programme ; en commençant par la gauche, qui offre le choix le plus général, et en se déplaçant vers la droite, jusqu'aux options les plus spécifiques. Le choix d'une option de l'extrémité droite n'aura pas beaucoup de sens avant que la fonderie, par exemple, ne soit sélectionnée, parce que les options sont généralement ordonnées selon leurs dépendances les unes envers les autres. 
</para>

<para>
Quand vous choisissez dans <literal remap="tt">fmly</literal>, vous verrez la plupart des options grisées, et seulement trois restantes. Cela signifie que ces trois-là sont les seules familles de la police faites par cette fonderie. Certaines familles apparaissent dans plus d'une fonderie, par exemple, <emphasis>Adobe</emphasis> et <emphasis>Bitstream</emphasis> font tous deux une version de la police Courier. Maintenant vous pouvez choisir le <literal
 remap="tt">wght</literal>, et ainsi de suite. Après un certain temps, vous arriverez finalement à la police que vous voulez. Vous n'avez pas nécessairement  besoin de complèter toutes les options pour choisir une seule police, il n'y pas autant de polices que ça sur votre système ! Les options que vous ne choisissez pas seront représentées par une <literal remap="tt">*</literal> indiquant que n'importe quelle option fera l'affaire, et donne à <application>X</application> une certaine marge. 
</para>

<para>
Quand vous êtes satisfait de votre choix de police, appuyez sur le bouton select, et votre choix sera placé dans le presse-papiers de X, prêt à être collé dans votre document ou dans ce que vous êtes en train de faire. Par exemple, ouvrez une fenêtre <emphasis remap="bf">xterm</emphasis> et saisissez quelque chose comme <literal remap="tt">xterm -font </literal> suivi d'un guillemet d'ouverture. Dirigez ensuite le curseur sur cette tâche à l'écran, et cliquez avec le bouton du milieu de votre souris (ou cliquez sur les deux, le gauche et le droit, si vous êtes handicapé du bouton du milieu). Cela collera le choix à partir du presse-papiers, qui devrait être la police que vous avez précédemment choisie. Entrez ensuite le guillemet de fermeture, et faites <literal remap="tt">Entrée</literal>. Par exemple, un <emphasis remap="bf">xterm</emphasis> avec une police Courier ressemblerait à ceci : <literal remap="tt">xterm -font
 &quot;-adobe-courier-medium-r-*-*-14-*-*-*-*-*-*-*&quot;</literal>. C'est pas joli, ça ?
</para>

<para>
Si vous avez trouvé une police qui vous plaît, ceci peut être utilisé de manière permanente en plaçant la définition de la police dans le fichier de configuration approprié (voir ci-dessus).
</para>

<para>
Notez que, pour que <command>xfontsel</command> ne montre qu'un nombre limité de police, on utilisera l'option en ligne de commande <emphasis>-pattern</emphasis>, suivie des spécifications de police entre guillemets, comme on l'a expliqué ci-dessus. 
</para>

<para>
L'utilitaire <command>xfd</command> est également utile pour examiner les polices individuellement. Si on le lance avec une ligne de commande telle que <command>xfd -fn fixed</command>, il montrera le jeu de caractères complet pour cette police.
</para>

<para>
 <application>KDE</application> et <application>GNOME</application> ont leurs propres utilitaires qui montrent un peu plus de finesse ; -)
</para>



<!--  ~  Fin section  ~  -->



<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect3>
<title>Les polices Type 1 et TrueType</title>

<para>
 Les polices fournies avec XFree86 sont d'une utilité limitée pour un bon nombre d'entre nous, étant donné qu'à peu près le seul endroit où vous trouverez des polices de ce type, c'est dans le système de fenêtre X lui-même. Malheureusement, parmi les accros des médias, les concepteurs de sites Web et les fous de police, nombreux sont ceux qui travaillent avec des systèmes d'exploitation qui reposent sur d'autres formats. Et puis, il ne semble pas que les distributions s'efforcent beaucoup de rendre les polices par défaut plus belles non plus. 
</para>

<para>
Les polices de type 1, généralement les plus utilisées avec les formats de document Postscript, sont la norme traditionnelle dans des environnements d'Unix et de Linux. On a normalement un choix relativement intéressant pour démarrer. Sinon, c'est extrèmement facile d'en trouver d'autres gratuitement sur Internet ; pour démarrer, essayez <ulink url="ftp://ftp.cdrom.com/pub/os2/fonts/">ftp://ftp.cdrom.com/pub/os2/fonts/</ulink>. Les types 1 sont des polices extensibles, et présentent en grande partie les mêmes avantages que les polices TrueType plus connues. Si le choix de polices TrueType installé n'est pas intéressant, le type 1 est ce qu'il vous faut pour la plupart des applications à interface graphique. Mais répétons-le, ce n'est pas standard sur les autres plateformes, et cela peut présenter des problèmes lors de la consultation des documents (par exemple des pages Web) qui sont conçus pour <quote> d'autres plateformes </quote>.
</para>

<para>
Les polices TrueType ont été lancées par Apple, et ont été par la suite mises sous licence par Microsoft. Les gens venant des plateformes autres qu'Unix connaissent donc déjà ces polices de qualité. Malheureusement, il n'y a pas beaucoup de polices TrueType de qualité sous une licence appropriée, et il n'y en a donc pas beaucoup d'incluses avec les distributions de Linux. Et celles qui le sont, ne sont pas souvent d'aussi bonne qualité. En outre malheureusement, TrueType est un peu devenu une norme sur le Web et en d'autres lieux, et ne pas avoir de bonnes polices TrueType peut être un inconvénient. Avec XFree86, il semble également que TrueType donne un meilleur résultat que Type1.
</para>

<para>
Ca, c'était la mauvaise nouvelle. La bonne nouvelle, c'est que n'importe quelle police TrueType incluse avec n'importe quelle version de Windows, ou avec n'importe quelle application Windows, devrait fonctionner sous Linux. Cependant il faudra prendre quelques mesures supplémentaires pour les intégrer. Cela est particulièrement utile quand, en parcourant le Web, les polices bitmaps de <application>X</application> s'ajustent mal.
</para>

<para>
Nous n'entrerons pas dans les détails d'installation et de configuration des polices ici, car cela est bien détaillé dans d'autres documents. Voir le <citetitle>Font HOWTO
 </citetitle>, <ulink url="http://www.linuxdoc.org/HOWTO/Font-HOWTO.html"></ulink>, pour des informations générales sur les polices, et des astuces pour le Type 1. Voir le <citetitle>Font De-Uglification 
 Mini HOWTO</citetitle>, <ulink url="http://www.linuxdoc.org/HOWTO/mini/FDU/index.html">http://www.linuxdoc.org/HOWTO/mini/FDU/index.html</ulink>, pour diverses astuces en rapport avec <application>X</application>, et particulièrement pour TrueType.
</para>

</sect3>

</sect2>


<!--  ~  Fin section  ~  -->




<!--   ~~~~~       Nouvelle section      ~~~~~     -->

<sect2>
<title>Les couleurs</title>

<para>
Retournons à notre terminal et essayons quelque chose. Ouvrez un <command>xterm</command> avec une ligne de commande comme suit :
</para>

<para>
 <screen>
  xterm -fg DarkSteelBlue1 -bg red3 &amp;
 </screen>
</para>

<para>
Aïe ! ça n'est peut-être pas très joli, et on ne va sans doute pas faire un excellent travail avec ça, il n'empèche que ça montre bien un aspect intéressant de la configuration de <application>X</application> : les noms de couleur. même si cela n'est pas particulièrement précis, c'est une manière simple de se rappeler de nombreuses de couleurs. Notez que les noms de couleur ne sont jamais sensibles à la casse.
</para>

<para>
Le serveur X traitera en fait les valeurs des couleurs avec une notation sous forme hexadécimale Rouge-Vert-Bleu (RVB). Cela ressemble à quelque chose comme <quote>#0aff0a</quote> en hexadécimal. Pas aussi simple à se rappeler. Mais <application>X</application> donne une méthode mnémotechnique pour se rappeler des définitions de couleurs valides. Celles-ci sont stockées dans une table de texte, par exemple <filename>/usr/X11R6/lib/X11/rgb.txt</filename>, qui est définie dans <filename>XF86Config</filename> dans la section <quote>files</quote>.
</para>

<para>
Si vous êtes intéressés, allez jeter un oeil avec un éditeur de texte. Il y a beaucoup, beaucoup de nuances définies. J'ai compté 83 nuances de bleu dans le mien, par exemple. Petit échantillon :
</para>

<para>
 <screen>
 176 226 255             LightSkyBlue1
 164 211 238             LightSkyBlue2
 141 182 205             LightSkyBlue3
  96 123 139             LightSkyBlue4
 202 225 255             LightSteelBlue1
 188 210 238             LightSteelBlue2
 162 181 205             LightSteelBlue3
 110 123 139             LightSteelBlue4
 191 239 255             LightBlue1
 178 223 238             LightBlue2
 154 192 205             LightBlue3
 104 131 139             LightBlue4
 </screen>
</para>

<para>
Ce fichier peut être adapté à vos besoins si vous le désirez, mais cela est rarement nécessaire pour la plupart d'entre nous. Cependant, il est important de l'avoir, puisque quelques applications dépendent de lui.
</para>

<para>
Les environnements graphiques ont un utilitaire avec interface graphique pour choisir les couleurs.
</para>

</sect2>

</sect1>

<!--  ~  Fin section  ~  -->




<!--   ~~~~~~~~       New section Header    ~~~~~~~~~     -->

<sect1 id="windowman">
<title>Gestionnaires de fenêtres et bureaux</title>

<para>
 Nous ne nous étalerons pas sur la configuration des gestionnaires de fenêtres et des environnements. Il y a tout simplement trop à dire pour essayer de couvrir cela dans un seul document. Il est important de se rendre compte que ce sont deux choses différentes. Il y a beaucoup, beaucoup de gestionnaires de fenêtres disponibles.
</para>

<!--   ~~~~~       New section      ~~~~~     -->

<sect2>
<title>Les gestionnaires de fenêtres</title>

<para>
Les possibilités de configuration des gestionnaires de fenêtres sont énormes. De nombreux aspects de l'interaction avec l'utilisateur peuvent être gérés par le gestionnaire de fenêtres.
</para>

<para>
 Quelques-uns des gestionnaires de fenêtres les plus répandus :
</para>

<simplelist>
 <member>
  aewm : <ulink url="http://www.red-bean.com/~decklin/aewm/">http://www.red-bean.com/~decklin/aewm/</ulink>
 </member>
</simplelist>
<simplelist>
 <member>
  AfterStep : <ulink url="http://www.afterstep.org/">http://www.afterstep.org/</ulink>
 </member>
</simplelist>
<simplelist>
 <member>
  BlackBox : <ulink url="http://sourceforge.net/projects/blackboxwm">http://sourceforge.net/projects/blackboxwm</ulink>
 </member>
</simplelist>
<simplelist>
 <member>
  Enlightenment : <ulink url="http://www.enlightenment.org/pages/main.html">http://www.enlightenment.org/pages/main.html</ulink>
 </member>
</simplelist>
<simplelist>
 <member>
  Fluxbox : <ulink url="http://fluxbox.sourceforge.net/">http://fluxbox.sourceforge.net/</ulink>
 </member>
</simplelist>
<simplelist>
 <member>
  fvwm : <ulink url="http://www.fvwm.org/">http://www.fvwm.org/</ulink>
 </member>
</simplelist>
<simplelist>
 <member>
  IceWM : <ulink url="http://www.icewm.org/">http://www.icewm.org/</ulink>
 </member>
</simplelist>
<simplelist>
 <member>
  olwm (OpenLook Window Manager) : 
  <ulink url="http://www.plig.org/xwinman/olvwm.html">http://www.plig.org/xwinman/olvwm.html</ulink>
 </member>
</simplelist>
<simplelist>
 <member>
  Sawmill : <ulink url="http://sawmill.sourceforge.net/">http://sawmill.sourceforge.net/</ulink>
 </member>
</simplelist>
<simplelist>
 <member>
  WindowMaker : <ulink url="http://www.windowmaker.org/">http://www.windowmaker.org/</ulink>
 </member>
</simplelist>
<simplelist>
 <member>
  XFce : <ulink url="http://xfce.org/">http://xfce.org/</ulink>
 </member>
</simplelist>

<para>
Il en existe également beaucoup, beaucoup de moins connus. <ulink url="http://www.plig.org/xwinman/">http://www.plig.org/xwinman/</ulink> a une liste à jour  des gestionnaires de fenêtres, et d'informations sur le sujet. Il y a toujours <ulink url="http://freshmeat.net">freshmeat</ulink> aussi.
</para>

<para>
 <application>GNOME</application> ainsi que <application>KDE</application> ont leur gestionnaire de fenêtres par défaut, mais en acceptent d'autres également s'ils sont conformes. Votre distribution en a probablement plusieurs. Essayez les tous si vous n'avez pas déjà un favori. Votre distribution a probablement également une méthode de changement dynamique entre les gestionnaires de fenêtres (et entre les environnements graphiques également).
</para>

</sect2>

<!--  ~  End section  ~  -->



<!--   ~~~~~       New section      ~~~~~     -->

<sect2>
<title>Les environnements graphiques</title>

<para>
Les environnements graphiques ne sont pas vraiment nouveaux, mais leur popularité a augmenté avec l'arrivée des deux grands noms : <application>KDE</application> et <application>GNOME</application>. Dans une certaine mesure, la fonctionnalité d'environnement graphique recouvre celle du gestionnaire de fenêtres. Tous les deux peuvent gérer l'arrière plan des fenêtres du super utilisateur, du menu des fenêtres du super utilisateur, des icones, des barres d'outils, etc. D'une manière générale, si un environnement graphique est en cours d'exécution, il gère tout ça. C'est le principe des environnements graphiques : intégrer les divers composants avec cohésion et cohérence. Les environnements graphiques apportent également des caractéristiques au niveau de l'interopérabilité et de la facilité d'utilisation qu'un gestionnaire de fenêtres simple n'a pas.
</para>

<para>
Ah, autre point : les environnements graphiques essayent également de configurer autant que possible les sessions de <application>X</application>. N'importe lequel de leurs clients conformes pourra plus que probablement être configuré par l'environnement graphique, ou aura sa propre configuration qui s'adapte au style de l'environnement graphique. Le but est au moins d'éviter en partie la configuration de fichiers textes à l'apparence désordonnés que nous avons vue dans les sections ci-dessus, et de faciliter un tant soit peu la vie de l'utilisateur.
</para>

<para>
Cette fonctionnalité supplémentaire repose sur un compromis, car elle consomme des ressources mémoire et système pour surveiller tout ceci. Si votre ordinateur a beaucoup de mémoire et qu'il est rapide, ce n'est pas un problème. Mais si vous avez peu de mémoire, cela peut causer un ralentissement (voir la <link linkend="performance">section performance</link> ci-dessous). Un minimum de 64M de RAM est probablement limite avec <application>KDE</application> ou <application>GNOME</application>.
</para>

<para>
Alors, avez-vous besoin d'un environnement graphique ? C'est à l'utilisateur de choisir. Ils ne sont certainement pas indispensables pour lancer <application>X</application>, mais c'est vrai qu'ils apportent des fonctionnalités que beaucoup d'utilisateurs veulent ou attendent dans une interface graphique. Lequel est le meilleur ? Eh bien, c'est à vous de décider !
</para>


<para>
<application>KDE</application> existe depuis plus longtemps que <application>GNOME</application>, et certains diraient peut-être qu'il est un peu plus mûr. <application>KDE</application> est basé sur la boîte à outils de composants QT. Voici une citation de la <ulink url="http://kde.org">page d'accueil de KDE</ulink> :
</para>

<blockquote>
 <para> 
KDE est un environnement graphique Open Source  puissant pour les postes de travail Unix. Il combine la facilité d'utilisation, des fonctionnalités modernes, et un design graphique exceptionnel avec la supériorité technologique du système d'exploitation Unix.
</para>

<para>
KDE est une suite d'environnement graphique mature fournissant une base solide à un nombre toujours croissant d'applications pour les postes de travail Unix. KDE a développé un cadre de développement de qualité pour Unix, qui permet la création rapide et efficace d'applications.
</para>

</blockquote>


<para>
<application>GNOME</application> est basé sur la boîte à outils GTK+. Et voici une citation de la <ulink url="http://gnome.org">page d'accueil de GNOME</ulink> :
</para>

<blockquote> 
 <para>
 GNOME signifie <quote> GNU Network Object Model Environment </quote>. Le projet GNOME a pour but de construire un environnement graphique complet et convivial basé entièrement sur les logiciels libres. GNOME fait partie du projet GNU, et GNOME fait partie du mouvement Open Source (tm). L'environnement graphique se compose de petits utilitaires et d'applications de taille plus importante sous un même aspect et une convivialité cohérents. GNOME emploie GTK+ comme boîte à outils d'interface graphique pour toutes les applications compatibles GNOME.
 </para>
</blockquote> 

<para>
<application>XFce</application> est un environnement graphique plus léger, moins fourni en fonctionnalités, qui ne se fait pas autant remarquer que les autres. <application>XFce</application> est également basé sur la boîte à outils GTK+. Et voici une citation de la <ulink url="http://xfce.org">page d'accueil de XFce</ulink> :
</para>

<blockquote> 
 <para>
Le projet XFce a au départ été lancé parce que j'avais besoin d'un environnement simple, léger et efficace pour mon système Linux.
 </para>
 <para>
 Je crois que l'environnement graphique doit être fait pour augmenter la productivité des utilisateurs. Par conséquent, le but est de garder la plupart des ressources système pour les applications, et de ne pas consommer toute la mémoire et les capacités de l'UC pour l'environnement graphique.
 </para>
</blockquote> 

<para>
Ils ont tous leur propre documentation bien détaillée. S'il vous manque quelque chose dont vous avez besoin sur votre système, jetez un oeil à leurs pages d'accueil respectives.
</para>

</sect2>

</sect1>

<!--  ~  End section  ~  -->




<!--   ~~~~~~~~       New section Header    ~~~~~~~~~     -->

<sect1 id="cli">
<title>X et la ligne de commande</title>

<para>
Que serait un système d'exploitation de type Unix sans interface en ligne de commande ? La ligne de commande peut être utile, et elle est disponible d'office avec le <application>X</application>. En fait, pour beaucoup, elle fait partie intégrante de leur environnement de travail de <application>X</application>.
</para>

<para>
Tout programme de <application>X</application> peut être lancé directement en ligne de commande juste en tapant le nom du programme dans une console <command>xterm</command>, ou dans toute autre terminal. La plupart des applications ont un ensemble très complet d'options en ligne de commande, comme la couleur d'arrière plan, la police, la géométrie (positionnement à l'écran), etc.  Les options en ligne de commande surchargent les paramètres compilés par défauts, et les paramètres des ressources système. 
</para>

<para>
Beaucoup de programmes traditionnels de <application>X</application> utiliseront les mêmes noms de base pour les options en ligne de commande. Toutes les applications écrites en utilisant le MIT X Toolkit Intrinsics (Xt) (comme ceux fournis avec XFree86) acceptent automatiquement les options suivantes. Certaines applications non-Xt utilisent également ces dernières, ou quelque chose de proche. Par exemple, <quote> géométrie </quote> n'est pas loin d'être une option universellement admise. 
</para>

<para>
 <variablelist>
 
<varlistentry>
 <term>-display <emphasis>[hôte]:display[.écran]</emphasis></term>
 <listitem>
	<para>
   Cette option indique au serveur X les affichages à utiliser. C'est fréquemment utilisé  lorsque les applications s'exécutent sur un système et sont affichées sur un autre. L'application doit savoir <emphasis>où</emphasis> s'afficher. ça peut se faire également avec la variable <quote> $DISPLAY </quote>, qui emploie la même syntaxe. 
   </para>
   </listitem>
 </varlistentry>

<varlistentry>
 <term>-geometry <emphasis>geometrie</emphasis></term>
 <listitem>
    <para>
   Taille et position initiales de la fenêtre, dans un format tel que <literal>width x height +horz_offset +vert_offset</literal> ou <literal>+horz_offset -vert_offset</literal>.  Notez que si vous indiquez un décalage négatif horizontal ou vertical, la fenêtre sera placée en comptant vers l'arrière à partir de la droite ou du bas de l'écran, respectivement, au lieu de partir du coin supérieur gauche.
   </para>
   </listitem>
</varlistentry>

<varlistentry>
 <term>-font <emphasis>nom de police</emphasis></term>
   <listitem><para>
    Police à utiliser pour afficher le texte dans votre fenêtre (voir la section police ci-dessous). 
   </para></listitem>
</varlistentry>

<varlistentry>
 <term>-bg <emphasis>couleur</emphasis></term>
   <listitem><para>
    Couleur à utiliser comme arrière-plan de la fenêtre. En fait, il s'agit d'un <quote>nom de couleur</quote> (voir ci-dessous). 
   </para></listitem>
</varlistentry>

<varlistentry>
 <term>-fg <emphasis>couleur</emphasis></term>
   <listitem><para>
Couleur à utiliser pour le premier plan de la fenêtre (c.à.d. la police, etc.).
   </para></listitem>
</varlistentry>

<varlistentry>
 <term>-name <emphasis>nm de ressource</emphasis></term>
   <listitem><para>
   Utile pour indiquer le nom sous lequel les ressources de cette application se trouveront (par exemple comme indiqué dans <filename>.Xdefaults</filename>). C'est utile pour distinguer deux appels de la même application. Par exemple, deux <command>xterms</command> peuvent <quote> être nommés </quote> différement de sorte qu'ils puissent hériter de différentes ressources basées sur les noms indiqués dans la base de données des ressources.
   </para></listitem>
</varlistentry>

<varlistentry>
 <term>-title <emphasis>chaîne de caractère</emphasis></term>
   <listitem><para>
   Il s'agit du titre qui sera utilisé pour la fenêtre dans votre affichage. Il est généralement utilisé par votre gestionnaire de fenêtre pour donner un titre explicite en haut de la fenêtre. A ne pas confondre avec l'option <quote>-name</quote>.
   </para></listitem>
</varlistentry>

<varlistentry>
 <term>-iconic</term>
  <listitem> <para>
Ouvre la fenêtre sous forme d'icône. 
   </para></listitem>
</varlistentry>

<varlistentry>
 <term>-xrm <emphasis>chaîne de caractère-ressource</emphasis></term>
   <listitem><para>
   Cette option indique un nom et une valeur de ressource pour surcharger tous paramètres par défauts qui pourraient avoir été spécifiés (c.-à-d. par l'intermédiaire de <filename>.Xresources</filename> ou semblable). En outre utile pour paramètrer les ressources de <application>X</application> qui n'ont pas d'option explicite en ligne de commande. Par exemple, la ligne de commande <quote>xterm -xrm xterm*background: blue &#38;</quote> est pareille au niveau fonctionnel que <quote>xterm -bg blue &#38;</quote>. 
   </para></listitem>
</varlistentry>

 </variablelist>
</para>

<para>
 Ce sont les plus importantes. Il y en a d'autres. Beaucoup de programmes auront leurs propres options supplémentaires qui leur sont spécifiques. Aujourd'hui, beaucoup d'applications plus récentes n'adhèrent pas nécessairement aux normes Xt, et utilisent leurs propres options, ou celles fournies par leur boîte à outils respective. Au pire, les pages de man sont une bonne référence pour la syntaxe de commande, et il faut les compter parmi vos amis. Autre possibilité : l'application dispose d'une option en ligne de commande  <quote> --usage </quote> ou <quote> --help </quote> pour donner la liste des options disponibles.
</para>

<para>
 <screen>
 $ gnome-terminal --usage
 Usage: gnome-terminal [-?] [--disable-sound] [--enable-sound]
   [--espeaker=HOSTNAME:PORT] [--version] [--usage] [--gdk-debug=FLAGS]
   [--gdk-no-debug=FLAGS] [--display=DISPLAY] [--sync] [--no-xshm]
   [--name=NAME] [--class=CLASS] [--gxid_host=HOST] [--gxid_port=PORT]
   [--xim-preedit=STYLE] [--xim-status=STYLE] [--gtk-debug=FLAGS]
   [--gtk-no-debug=FLAGS] [--g-fatal-warnings] [--gtk-module=MODULE]
   [--disable-crash-dialog] [--sm-client-id=ID] [--sm-config-prefix=PREFIX]
   [--sm-disa