Update 2nd section.

This commit is contained in:
Marc Fonvieille 2020-02-18 10:16:01 +00:00
parent e5c50ba999
commit 8857dc4835
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=53913

View file

@ -87,271 +87,169 @@
</sect1>
<sect1 xml:id="x-understanding">
<title>Comprendre X</title>
<para>Utiliser X pour la première fois peut être en
quelque sorte un choc pour quelqu'un de familier avec d'autres
environnements graphiques, tels que &microsoft.windows; ou
&macos;.</para>
<title>Terminologie</title>
<para>Alors qu'il n'est pas nécessaire de comprendre tout le détail
des divers composants de X ni comment ils interagissent entre eux,
une certaine connaissance des bases permet de tirer
profit des points forts d'X.</para>
des divers composants du système X Window, ni comment ils
interagissent entre eux, une certaine connaissance de base de
ces composants peut être utile.</para>
<sect2>
<title>Pourquoi X?</title>
<variablelist>
<varlistentry>
<term>Le serveur X</term>
<para>X n'est pas le premier système de fenêtrage
écrit pour &unix;, mais c'est le plus populaire d'entre eux. L'équipe
originelle de développement d'X avait travaillé
sur un autre système de fenêtrage avant d'écrire X.
Le nom de ce système était
<quote>W</quote> (pour <quote>Window</quote> - fenêtre). X était
juste la lettre suivante dans l'alphabet romain.</para>
<listitem>
<para>X a été conçu dès le départ centré autour du réseau,
et adopte un modèle <quote>client-serveur</quote>. Dans
ce modèle, le <quote>serveur X</quote> tourne sur
l'ordinateur sur lequel sont branchés le clavier, le
moniteur et la souris. Le serveur est responsable de
tâches telles que la gestion de l'affichage, des entrées
en provenance du clavier et de la souris, et les entrées
ou sorties d'autres périphériques comme une tablette ou un
vidéo-projecteur. Cela jette le trouble chez certaines
personnes, parce que la terminologie X est exactement le
contraire de ce à quoi ils s'attendent. Ils s'attendent à
ce que le <quote>serveur X</quote> soit la grosse machine
puissante au fond du couloir, et que le <quote>client
X</quote> soit a machine sur leur bureau.</para>
</listitem>
</varlistentry>
<para>X peut être appelé &ldquo;X&rdquo;,
&ldquo;Système X Window&rdquo;, <quote>X11</quote>, et sous d'autres
noms. Il se peut que vous puissiez trouver que nommer
X11 <quote>X Windows</quote> peut être offensant pour
certaines personnes; consultez &man.X.7; pour un peu plus
d'éclairements sur la question.</para>
</sect2>
<varlistentry>
<term>Le client X</term>
<sect2>
<title>Le modèle client/serveur d'X</title>
<listitem>
<para>Chaque application X, comme
<application>XTerm</application> ou
<application>Firefox</application> est un
<quote>client</quote>. Un client envoie des messages au
serveur comme <quote>Dessine une fenêtres aux coordonnées
suivantes</quote>, et le serveur renvoie au client des
messages du type <quote>L'utilisateur vient de cliquer sur
le bouton OK</quote>.</para>
<para>X a été conçu dès le départ
autour de la notion de réseau, et adopte un modèle
<quote>client-serveur</quote>.</para>
<para>A la maison ou dans un petit bureau, le serveur X et
les clients X tourneront en général sur le même
ordinateur. Il est également possible de faire tourner le
serveur X sur un ordinateur moins puissant et d'exécuter
les applications X sur un système plus puissant. Dans ce
scénario, la communication entre le client X et le serveur
se fera par l'intermédiaire du réseau.</para>
</listitem>
</varlistentry>
<para>Dans le modèle X, le &ldquo;serveur X&rdquo; tourne sur
l'ordinateur sur lequel sont branchés le clavier, le moniteur,
et la souris. Le serveur est responsable de tâches telles que la gestion de
l'affichage, des entrées en provenance du clavier et de la
souris, et d'autres périphériques
d'entrée ou de sortie (une <quote>tablette</quote> peut
être utilisée comme périphérique
d'entrée et un vidéo-projecteur peut être
un périphérique de sortie alternatif).
Chaque application X (comme <application>XTerm</application>, ou
<application>&netscape;</application>) est un
&ldquo;client&rdquo;. Un client envoie des messages au serveur
comme &ldquo;Dessines une fenêtre aux coordonnées
suivantes&rdquo;, et le serveur envoie au client des messages du
type &ldquo;L'utilisateur vient de cliquer sur le bouton
OK&rdquo;.</para>
<varlistentry>
<term>Le gestionnaire de fenêtres</term>
<para>Chez soi
ou dans un petit bureau, le serveur X et les clients X
tourneront presque toujours sur le même ordinateur. Cependant, il est
parfaitement possible de faire tourner le serveur X sur un
ordinateur de bureau moins puissant, et les applications X (les
clients) sur, par exemple, la machine puissante et chère du
service. Dans ce scénario la communication entre le client X et
le serveur se fera par l'intermédiaire du réseau.</para>
<listitem>
<para>X n'essaye pas de dicter quel aspect doivent avoir les
fenêtres à l'écran, comment les déplacer avec la souris,
quelles combinaisons de touches devraient être utilisées
pour passer de l'une à l'autre, comment devraient être les
barres de titres de chaque fenêtre, etc. Au lieu de cela,
X délègue cette responsabilité à une application séparée,
le gestionnaire de fenêtres (<quote>window
manager</quote>). Il existe des <link
xlink:href="http://www.xwinman.org/">douzaines de
gestionnaires de fenêtres</link> disponibles. Chaque
gestionnaire de fenêtres propose une apparence et une
prise en main différentes: certains supportent les bureaux
virtuels, d'autres permettent de personnaliser les
combinaisons de touches pour la gestion du bureau,
certains ont un bouton <quote>Démarrer</quote>, et
certains permettent d'utiliser des thèmes, pour un
changement complet d'apparence et de prise en main du
bureau. Les gestionnaires de fenêtres sont disponibles
dans la catégorie <filename>x11-wm</filename> du catalogue
des logiciels portés.</para>
<para>Cela jette le trouble chez certaines personnes, parce que la
technologie X est exactement le contraire de ce &agrave; quoi ils
s'attendent. Ils s'attendent &agrave; ce que le
&ldquo;serveur X&rdquo; soit la grosse machine puissante au fond
du couloir, et le &ldquo;client X&rdquo; la machine sur leur
bureau.</para>
<para>Chaque gestionnaire de fenêtre utilise un mécanisme de
configuration propre. Certains demandent un fichier de
configuration écrit à la main, alors que d'autres
disposent d'outils graphiques pour la plupart des tâches
de configuration.</para>
</listitem>
</varlistentry>
<para>Il est important de se souvenir que le serveur X est la machine avec le
moniteur et le clavier, et les clients X sont les programmes qui
affichent les fenêtres.</para>
<varlistentry>
<term>Environnement de bureau</term>
<para>Il n'y a rien dans le protocole qui force les machines
clientes et serveurs d'utiliser le même système
d'exploitation, ou même de tourner sur le même type
d'ordinateur. Il est certainement possible de faire fonctionner
un serveur X sur &microsoft.windows; ou &macos; d'Apple, et il
existe diverses applications gratuites et commerciales qui font
exactement cela.</para>
</sect2>
<listitem>
<para><application>KDE</application> et
<application>GNOME</application> sont considérés comme des
environnements de bureau car ils intègrent une suite
complète d'applications pour effectuer les tâches
classiques d'un bureau informatique. Ils peuvent disposer
de suites bureautiques, de navigateurs Web, ou encore de
jeux.</para>
</listitem>
</varlistentry>
<sect2>
<title>Le gestionnaire de fenêtres</title>
<varlistentry>
<term>Politique de focus</term>
<para>La philosophie de conception d'X est comme celle d'&unix;,
&ldquo;des outils, pas de contraintes&rdquo;. Cela signifie
qu'X n'essaye pas de dicter comment une tâche doit être
accomplie. A la place, les outils sont fournis &agrave;
l'utilisateur, et c'est &agrave; lui de décider comment
utiliser ces outils.</para>
<listitem>
<para>Le gestionnaire de fenêtres est responsable de la
politique ou stratégie de focus de la souris. Cette
politique offre plusieurs méthodes pour choisir quelle
fenêtre doit recevoir les frappes au clavier et comment
indiquer visuellement la fenêtre actuellement
active.</para>
<para>Cette philosophie va jusqu'&agrave; pousser X &agrave; ne pas
contrôler l'aspect des fenêtres &agrave; l'écran,
comment les déplacer avec la souris, quelles combinaisons
de touches devraient être utilisées pour passer
de l'une &agrave; l'autre (i.e.,
<keycombo action="simul">
<keycap>Alt</keycap>
<keycap>Tab</keycap>
</keycombo>, dans le cas de &microsoft.windows;), comment
devraient être les barres de titre de chaque fenêtres,
qu'elles aient ou pas des boutons de fermetures, etc...</para>
<para>Une des politiques de focus est appelée
<quote>click-to-focus</quote> (<quote>cliquer pour obtenir
le focus</quote>). Dans ce mode, une fenêtre devient
active quand elle reçoit un clic de la souris. Dans le
mode <quote>focus-follows-mouse</quote> (<quote>le focus
suit la souris</quote>), la fenêtre qui est sous le
pointeur de la souris est la fenêtre qui a le focus et le
focus est modifié en pointant sur une autre fenêtre. Si
la souris est sur la fenêtre racine (ou fond d'écran),
alors cette fenêtre a le focus. Dans le mode
<quote>sloppy-focus</quote> (<quote>focus
relâché</quote>), si la souris est déplacée sur la fenêtre
racine, la dernière fenêtre a avoir eu le focus le
conserve. Avec le mode focus relâché, le focus n'est
modifié que si le pointeur passe sur une nouvelle fenêtre,
et non pas quand il quitte la fenêtre actuelle. Dans la
politique <quote>click-to-focus</quote>, la fenêtre active
est sélectionnée par un clic de la souris. La fenêtre
peut être remontée au premier plan au-dessus des autres
fenêtres. Toutes les frappes au clavier seront désormais
dirigées vers cette fenêtre, même si le curseur est
déplacé vers une autre fenêtre.</para>
<para>Au lieu de cela, X délègue cette
responsabilité &agrave; une application appelée
un &ldquo;Window Manager&rdquo; - gestionnaire de fenêtres.
Il existe des douzaines de gestionnaires de fenêtres
disponibles pour X: <application>AfterStep</application>,
<application>Blackbox</application>, <application>ctwm</application>,
<application>Enlightenment</application>,
<application>fvwm</application>, <application>Sawfish</application>,
<application>twm</application>,
<application>Window Maker</application>, et bien plus. Chacun
de ces gestionnaires de fenêtres fournit une apparence et une
prise en main différente; certains d'entre eux supportent les
&ldquo;bureaux virtuels&rdquo;; d'autres permettent de
personnaliser les combinaisons de touches de gestion du bureau;
certains ont un bouton &ldquo;Démarrer&rdquo; ou quelque chose
d'identique; certains possèdent un système de
&ldquo;thèmes&rdquo;, permettant un changement complet
d'apparence et de prise en main en sélectionnant un nouveau
thème. Ces gestionnaires de fenêtres, et bien plus, sont
disponibles dans la catégorie <filename>x11-wm</filename> du
catalogue des logiciels portés.</para>
<para>Les différents gestionnaires de fenêtres supportent
différents modes pour le focus. Tous supportent le clic
pour obtenir le focus, et une grande majorité supporte
également d'autres politiques. Consultez la documentation
du gestionnaire de fenêtres pour déterminer quels modes
sont disponibles.</para>
</listitem>
</varlistentry>
<para>De plus, les environnements de travail
<application>KDE</application> et <application>GNOME</application>
ont leur propre gestionnaire de fenêtres qui s'intègre
avec l'environnement.</para>
<varlistentry>
<term>widgets - Eléments graphiques</term>
<para>Chaque gestionnaire de fenêtres possède
également
un mécanisme de configuration propre; certains demandent un
fichier de configuration écrit &agrave; la main, d'autres
disposent d'outils graphiques pour la plupart des tâches
de configuration; et au moins un
(<application>Sawfish</application>) utilise un fichier de
configuration écrit dans un dialecte du langage LISP.</para>
<note>
<title>Politique de focus</title>
<para>Une autre fonction dont est responsable le gestionnaire de
fenêtre est la &ldquo;politique de focus&rdquo; de la
souris. Chaque système de fenêtrage a besoin de
méthodes de choix de la fenêtre qui doit recevoir
les frappes au clavier, et devrait également indiquer
visiblement quelle fenêtre est active.</para>
<para>Une politique de focus commune est appelée
&ldquo;click-to-focus&rdquo; (cliquer pour obtenir le focus).
C'est le mode utilisé sous &microsoft.windows;, dans lequel une
fenêtre devient active quand elle reçoit un clic de la
souris.</para>
<para>X ne supporte aucune politique de focus particulière.
Au lieu de cela, le gestionnaire de fenêtres contrôle
quelle fenêtre a le focus &agrave; n'importe quel moment.
Différents gestionnaires de fenêtres supporteront
différentes méthodes de focus. Tous supportent le
clic pour obtenir le focus, une grande majorité supporte
d'autres méthodes.</para>
<para>Les politiques de focus les plus populaires sont:</para>
<variablelist>
<varlistentry>
<term>&ldquo;focus-follows-mouse&rdquo; - le focus suit la
souris</term>
<listitem>
<para>La fenêtre qui est sous le pointeur de la souris
est la fenêtre qui a le focus. Ce n'est pas
nécessairement la fenêtre qui est au-dessus des
autres. Le focus est modifié en pointant une autre
fenêtre, l&agrave; il n'y pas besoin de cliquer sur
la fenêtre.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>&ldquo;sloppy-focus&rdquo; - focus relâché</term>
<listitem>
<para>Cette politique est version dérivée du
&ldquo;focus-follows-mouse&rdquo;. Avec
&ldquo;focus-follows-mouse&rdquo;, si la souris est
déplacée sur la fenêtre racine
(ou fond de l'écran) alors aucune fenêtre
n'a le focus, et les frappes au clavier sont tout simplement
perdues. Avec le focus relâché, le focus n'est
modifié que si le pointeur passe sur une nouvelle
fenêtre, et non pas quand il quitte la
fenêtre actuelle.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>&ldquo;click-to-focus&rdquo; - cliquer pour obtenir le
focus</term>
<listitem>
<para>La fenêtre active est sélectionnée
par clic de la souris. La fenêtre peut être
ramenée au premier plan. Toutes les frappes au
clavier seront désormais dirigées vers cette
fenêtre, même si le curseur est
déplacé vers une autre fenêtre.</para>
</listitem>
</varlistentry>
</variablelist>
<para>De nombreux gestionnaires de fenêtres supportent d'autres
politiques, comme des variations de celles-ci. Assurez-vous
de consulter la documentation du gestionnaire de
fenêtres.</para>
</note>
</sect2>
<sect2>
<title>&ldquo;Widgets&rdquo; - Eléments graphiques</title>
<para>L'approche d'X d'offrir uniquement des outils s'étend aux
éléments graphiques que l'on voit &agrave; l'écran
dans chaque application.</para>
<para>&ldquo;Widget&rdquo; est un terme pour désigner tous les
éléments de l'interface utilisateur qui peuvent
être cliqués ou manipulés d'une façon
ou d'une autre; boutons, boîtes &agrave; cocher, boutons radio,
icônes, listes, etc... &microsoft.windows; appelle ces derniers des
&ldquo;contrôles&rdquo;.</para>
<para>&microsoft.windows; et &macos; d'Apple ont tous deux une
politique très rigide au niveaux des
éléments graphiques. Les développeurs
d'applications sont supposés s'assurer que leurs applications
partagent une apparence et une prise en main commune. Avec X,
on n'a pas considéré comme sensible d'exiger un style
graphique particulier, ou ensemble d'éléments
graphiques &agrave; respecter.</para>
<para>En conséquence, ne vous attendez pas &agrave; ce que les
applications X aient une apparence et une prise en main
communes. Il a plusieurs ensembles populaires d'éléments
graphiques et leurs variations, dont l'ensemble d'éléments
original Athena du MIT, <application>&motif;</application>
(d'après lequel fût modelé l'ensemble
d'éléments graphiques de &microsoft.windows;, tous les
bords biseautés et trois nuances de gris),
<application>OpenLook</application>, et d'autres.</para>
<para>La plupart des nouvelles applications X, aujourd'hui
utiliseront un ensemble d'éléments graphiques &agrave;
l'apparence
moderne, soit Qt, utilisé par <application>KDE</application>,
soit GTK+, utilisé par le projet
<application>GNOME</application>. A cet égard, il y a une
certaine convergence dans l'apparence et la prise en main de
l'environnement de travail &unix;, qui facilite certainement les
choses pour l'utilisateur débutant.</para>
</sect2>
<listitem>
<para>Widget est un terme pour désigner tous les éléments de
l'interface utilisateur qui peuvent être cliqués ou
manipulés d'une façon ou d'une autre. Cela comprend les
boutons, les boîtes à cocher, les boutons radio, les
icônes et les listes. Une boîte à outils de widgets est
un ensemble d'éléments graphiques utilisés afin de créer
des applications graphiques. Il existe de nombreuses
boîtes à outils d'éléments graphiques populaires comme Qt,
utilisée par <application>KDE</application>, et GTK+,
utilisée par <application>GNOME</application>. Cela aura
pour conséquence pour les applications de présenter une
apparence et une prise en main différente en fonction de
la famille d'éléments graphiques utilisée pour créer ces
applications.</para>
</listitem>
</varlistentry>
</variablelist>
</sect1>
<sect1 xml:id="x-install">