5.2. Comprendre X

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 Mac OS®.

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.

5.2.1. Pourquoi X?

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 “W” (pour “Window” - fenêtre). X était juste la lettre suivante dans l'alphabet romain.

X peut être appelé “X”, “Système X Window”, “X11&”, et sous d'autres noms. Il se peut que vous puissiez trouver que nommer X11 “X Windows” peut être offensant pour certaines personnes; consultez X(7) pour un peu plus d'éclairements sur la question.

5.2.2. Le modèle client/serveur d'X

X a été conçu dès le départ autour de la notion de réseau, et adopte un modèle “client-serveur”.

Dans le modèle X, le “serveur X” 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 “tablette” 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 XTerm, ou Netscape®) est un “client”. Un client envoie des messages au serveur comme “Dessines une fenêtre aux coordonnées suivantes”, et le serveur envoie au client des messages du type “L'utilisateur vient de cliquer sur le bouton OK”.

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.

Cela jette le trouble chez certaines personnes, parce que la technologie X est exactement le contraire de ce à quoi ils s'attendent. Ils s'attendent à ce que le “serveur X” soit la grosse machine puissante au fond du couloir, et le “client X” la machine sur leur bureau.

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.

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 Mac OS d'Apple, et il existe diverses applications gratuites et commerciales qui font exactement cela.

5.2.3. Le gestionnaire de fenêtres

La philosophie de conception d'X est comme celle d'UNIX, “des outils, pas de contraintes”. Cela signifie qu'X n'essaye pas de dicter comment une tâche doit être accomplie. A la place, les outils sont fournis à l'utilisateur, et c'est à lui de décider comment utiliser ces outils.

Cette philosophie va jusqu'à pousser X à ne pas contrôler l'aspect des 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 (i.e., Alt+Tab, 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...

Au lieu de cela, X délègue cette responsabilité à une application appelée un “Window Manager” - gestionnaire de fenêtres. Il existe des douzaines de gestionnaires de fenêtres disponibles pour X: AfterStep, Blackbox, ctwm, Enlightenment, fvwm, Sawfish, twm, Window Maker, 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 “bureaux virtuels”; d'autres permettent de personnaliser les combinaisons de touches de gestion du bureau; certains ont un bouton “Démarrer” ou quelque chose d'identique; certains possèdent un système de “thèmes”, 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 x11-wm du catalogue des logiciels portés.

De plus, les environnements de travail KDE et GNOME ont leur propre gestionnaire de fenêtres qui s'intègre avec l'environnement.

Chaque gestionnaire de fenêtres possède également un mécanisme de configuration propre; certains demandent un fichier de configuration écrit à la main, d'autres disposent d'outils graphiques pour la plupart des tâches de configuration; et au moins un (Sawfish) utilise un fichier de configuration écrit dans un dialecte du langage LISP.

Politique de focus : Une autre fonction dont est responsable le gestionnaire de fenêtre est la “politique de focus” 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.

Une politique de focus commune est appelée “click-to-focus” (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.

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 à 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.

Les politiques de focus les plus populaires sont:

“focus-follows-mouse” - le focus suit la souris

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à il n'y pas besoin de cliquer sur la fenêtre.

“sloppy-focus” - focus relâché

Cette politique est version dérivée du “focus-follows-mouse”. Avec “focus-follows-mouse”, 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.

“click-to-focus” - cliquer pour obtenir le focus

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.

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.

5.2.4. “Widgets” - Eléments graphiques

L'approche d'X d'offrir uniquement des outils s'étend aux éléments graphiques que l'on voit à l'écran dans chaque application.

“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; boutons, boîtes à cocher, boutons radio, icônes, listes, etc... Microsoft Windows appelle ces derniers des “contrôles”.

Microsoft Windows et Mac OS 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 à respecter.

En conséquence, ne vous attendez pas à 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, Motif® (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), OpenLook, et d'autres.

La plupart des nouvelles applications X, aujourd'hui utiliseront un ensemble d'éléments graphiques à l'apparence moderne, soit Qt, utilisé par KDE, soit GTK+, utilisé par le projet GNOME. 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.

Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <[email protected]>.
Pour les questions sur cette documentation, contactez <[email protected]>.