Chapitre 7. Le système X Window

Table des matières

7.1. Paquets clés
7.2. Configurer l’environnement de bureau
7.2.1. Menu Debian
7.2.2. Menu de Freedesktop.org
7.2.3. Menu Debian sous « Freedesktop.org menu »
7.3. La relation client - serveur
7.4. Le serveur X
7.4.1. La (re-)configuration du serveur X
7.4.2. Les méthodes de connexion au serveur X
7.5. Démarrer le système X Window
7.5.1. Démarrer une session X avec gdm3
7.5.2. Personnaliser la session X (méthode classique)
7.5.3. Personnaliser la session X (nouvelle méthode)
7.5.4. Connecter un client X distant par SSH
7.5.5. Sécuriser le terminal X au travers d’Internet
7.6. Polices dans X Window
7.6.1. Polices de base
7.6.2. Polices supplémentaires
7.6.3. Polices CJK
7.7. Applications X
7.7.1. Applications X de bureautique
7.7.2. Applications utilitaires pour X
7.8. Les infos de X
7.8.1. Cartographie des claviers et affectation des boutons de souris sous X
7.8.2. Clients X classiques
7.8.3. Émulateur de terminal X — xterm
7.8.4. Faire tourner X avec le compte de l’administrateur

Le système X Window d’un système Debian est basé sur les sources de X.Org.

Il existe certains paquets (ou métapaquets) prévus pour faciliter l’installation.


Pour les bases de X, veuillez vous référer à X(7), the LDP XWindow-User-HOWTO.

Un environnement de bureau est habituellement constitué de la combinaison d’un gestionnaire X Window, d’un gestionnaire de fichiers et d’une suite compatible de programmes utilitaires.

Vous pouvez configurer un environnement de bureau complet tel que GNOME, KDE, Xfce ou LXDE depuis le menu des tâches d’aptitude.

[Astuce] Astuce

Sous les environnements Debian unstable et testing, le menu Tâches peut être désynchronisé de l’état des dernières transitions des paquets. Dans une telle situation, vous devrez, afin d’éviter des conflits de paquets, désélectionner certains paquets ou métapaquets du menu des tâches d’aptitude. Lors de la désélection de paquets ou de métapaquets, vous devrez sélectionner vous-même certains paquets qui fournissent leurs dépendances afin d’éviter qu’ils ne soient automatiquement supprimés.

Vous pouvez aussi mettre en place manuellement un environnement simple n’ayant qu’un gestionnaire X Window comme Fluxbox.

Consultez gestionnaires de fenêtres pour X pour un guide du gestionnaire de fenêtres X et de l’environnement de bureau.

Le système de menus Debian fournit une interface aux programmes qu’ils soient en mode texte ou orientés X avec update-menus(1) du paquet menu. Chaque paquet installe ses données de menu dans le répertoire « /usr/share/menu/ ». Consultez « /usr/share/menu/README ».

Le système X Window est activé sous la forme de la combinaison d’un programme serveur et d’un programme client. La signification des mots server et client comparés aux mots local et distant demande ici une attention particulière.


Les serveurs X modernes ont l’extension de mémoire partagée du MIT (the MIT Shared Memory Extension) et communiquent avec leurs clients locaux en utilisant la mémoire partagée locale. De cette manière le canal de communication inter-processus de réseau transparent de la Xlib est contourné, ce qui permet de gagner en performance avec des images de grande taille.

Consultez xorg(1) pour des informations concernant le serveur X.

[Note] Note

Le serveur X (post-lenny) a été réécrit pour utiliser, pour sa configuration, davantage les informations venant des services standards du système d’exploitation comme HAL et D-bus que celles venant de « /etc/X11/xorg.conf ». Le contenu de « /etc/X11/xorg.conf » diminue donc. Vous pourrez avoir besoin de contourner des problèmes transitoires du serveur X.

Ce qui suit (re)configurera un serveur X en créant un nouveau fichier « /etc/X11/xorg.conf » utilisant dexconf(1) :

# dpkg-reconfigure --priority=low x11-common
# dpkg-reconfigure --priority=low xserver-xorg

Si vous avez édité vous-même ce fichier « /etc/X11/xorg.conf » mais que vous souhaitez qu’il soit de nouveau mis à jour automatiquement, lancez la commande suivante :

# sudo dpkg-reconfigure -phigh xserver-xorg

Veuillez vérifier soigneusement que votre configuration X est conforme aux spécifications de votre moniteur. Pour les moniteurs à tube de grande taille, c’est une bonne idée de définir un taux de rafraîchissement aussi élevé que votre moniteur peut le supporter (85 Hz est excellent, 75 Hz est bon) afin de réduire le scintillement. Pour les moniteurs à cristaux liquides, le taux de rafraîchissement plus faible (60 Hz) convient habituellement bien en raison de son temps de réponse qui est plus lent.

[Note] Note

Attention à ne pas utiliser un taux de rafraîchissement trop élevé qui peut entraîner une défaillance matérielle fatale à votre moniteur.

Il y a plusieurs manières de faire accepter au « serveur X » (côté affichage) les connexions en provenance d’un « client X » (côté application).


[Avertissement] Avertissement

Ne pas utiliser, pour la connexion X, de connexion TCP/IP distante sur un réseau non sécurisé à moins que vous n’ayez une très bonne raison de le faire telle que l’utilisation du chiffrement. Une socket de connexion TCP/IP sans chiffrement est susceptible d’une attaque d’espionnage, elle est désactivée par défaut sur le système Debian. Utilisez « ssh -X ».

[Avertissement] Avertissement

Ne pas utiliser non plus de connexion XDMCP sur un réseau non sécurisé. Il envoie des données UDP/IP sans chiffrement et susceptible d’une attaque d’espionnage.

[Astuce] Astuce

LTSP signifie Projet de serveur de terminal Linux (« Linux Terminal Server Project »).

Le système X Window est habituellement démarré en tant que session X qui est la combinaison d’un serveur X et de la connexion de clients X. Pour le système de bureau normal, les deux tournent sur la station de travail.

La session X peut être démarrée par :

  • la commande startx lancée depuis la ligne de commande ;

  • un des programmes démons gestionnaire de l’affichage X *dm démarré à la fin du script de démarrage du répertoire « /etc/rc?.d/ » (« ? » correspond au niveau de fonctionnement).

[Astuce] Astuce

Le script de démarrage des démons de gestion d’affichage examine d’abord le contenu du fichier « /etc/X11/default-display-manager » avant leur exécution proprement dite. Cela permet de s’assurer qu’un seul programme démon X display manager est activé.

[Astuce] Astuce

Consultez Section 8.3.5, « Paramètre linguistique spécifique sous X Window » pour les variables d’environnement initiales du gestionnaire d’affichage X.

Essentiellement, tous ces programmes exécutent le script « /etc/X11/Xsession ". Ensuite, le script « /etc/X11/Xsession » effectue une action de type run-parts(8) pour exécuter les scripts se trouvant dans le répertoire « /etc/X11/Xsession.d/ ». Le premier programme trouvé, dans l’ordre suivant, est exécuté à l’aide de la commande « exec » intégrée :

  1. le script indiqué comme paramètre de « /etc/X11/Xsession » par le gestionnaire d’affichage X, s’il est défini ;

  2. le script « ~/.xsession » ou « ~/.Xsession », s’il est défini ;

  3. la commande « /usr/bin/x-session-manager », si elle est définie ;

  4. la commande « /usr/bin/x-window-manager », si elle est définie ;

  5. la commande « /usr/bin/x-terminal-emulator », si elle est définie.

Ce processus est affecté par le contenu de « /etc/X11/Xsession.options ». Les programmes exacts vers lesquels pointent les commandes « /usr/bin/x-* » sont déterminés par le système d’alternatives de Debian et sont modifiés par « update-alternatives --config x-session-manager », etc.

gdm3(1) vous permet de sélectionner le type de session (ou d’environnement de bureau : Section 7.2, « Configurer l’environnement de bureau »), la langue (ou « locale » : Section 8.3, « Les paramètres linguistiques (« locale ») ») de la session X depuis son menu. Il conserve les valeurs par défaut dans « ~/.dmrc » sous la forme suivante :

[Desktop]
Session=default
Language=fr_FR.UTF-8

Fontconfig 2.0 a été créé en 2002 pour fournir une bibliothèque indépendante de la distribution destinée à configurer et personnaliser l’accès aux polices. Debian, pour les versions ultérieures à squeeze, utilise Fontconfig 2.0 pour la configuration de ses polices.

La prise en compte des polices dans le système X Window peut être résumée comme suit :

  • Ancien système de gestion des polices côté serveur X

    • Le système de polices de base d’origine de X11 fournit une rétrocompatibilité avec les anciennes versions des applications X clientes.

    • Les polices de base d’origine de X11 sont installées sur le serveur X.

  • Système de prise en charge moderne des polices côté client X


Vous pouvez vérifier les informations de configuration des polices comme suit :

  • « xset q » pour le chemin des police X11 de base

  • « fc-match » pour la police par défaut de fontconfig

  • « fc-list » pour les polices disponibles de fontconfig

[Astuce] Astuce

« Unicode et le Pingouin » (« The Penguin and Unicode ») est un bon aperçu du système X Window moderne. D’autres documentations se trouvant à http://unifont.org/ devraient fournir de bonnes informations sur les polices Unicode, les logiciels fonctionnant avec Unicode, l’internationalisation et les problèmes d’utilisation d’Unicode sur les systèmes d’exploitationfree/libre/open source (FLOSS).

Il y a deux types principaux de polices de caractères pour ordinateurs.

  • Polices par champs de bits (« bitmap ») (bonnes pour le tramage en faible résolution)

  • Polices par traits/contours (bonnes pour le tramage en haute résolution)

Alors que le redimensionnement des polices bitmap donne des images hachées, le redimensionnement des polices par traits et contours donne des images lisses.

Les polices bitmap sur le système Debian sont habituellement fournie sous forme de fichiers de police X11 pcf bitmap compressés ayant l’extension de nom de fichier « .pcf.gz ».

Les polices de type contour sur les système Debian sont fournies de la manière suivante :

  • Fichiers de polices PostScript Type 1 avec une extension de nom de fichier « .pfb » (fichier binaire de police) et « .afm » (fichier de métrique de la police).

  • Fichiers de polices TrueType (ou OpenType) ayant habituellement l’extension « .ttf ».

[Astuce] Astuce

OpenType est prévu pour se substituer à la fois à TrueType et PostScript Type 1.

Tableau 7.5. Table de correspondance des polices PostScript Type 1

paquet de police popcon taille police sans-sérif police sérif police monospace source de la police
PostScript N/A N/A Helvetica Times Courier Adobe
gsfonts V:215, I:723 4632 Nimbus Sans L Nimbus Roman No9 L Nimbus Mono L URW (taille compatible avec Adobe)
gsfonts-x11 I:205 68 Nimbus Sans L Nimbus Roman No9 L Nimbus Mono L gestion des polices X avec polices PostScript Type 1.
t1-cyrillic I:28 4834 Helvetian libre Times libre Courier libre URW étendu (taille compatible avec Adobe)
lmodern V:16, I:162 32873 LMSans* LMRoman* LMTypewriter* PostScript redimensionnable et polices OpenType basées sur « Computer Modern » (venant de TeX)

Tableau 7.6. Table de correspondance des polices TrueType

paquet de police popcon taille police sans-sérif police sérif police monospace source de la police
ttf-mscorefonts-installer V:2, I:101 124 Arial Times New Roman Courier New Microsoft (taille compatible avec Adobe) (cela installe des données non libres)
fonts-liberation I:466 2122 Liberation Sans Liberation Serif Liberation Mono Projet de polices Liberation (taille compatible avec Microsoft)
fonts-freefont-ttf V:167, I:321 10720 FreeSans FreeSerif FreeMono GNU freefont (taille compatible avec Microsoft)
fonts-dejavu I:91 54 DejaVu Sans DejaVu Serif DejaVu Sans Mono DejaVu, Bitstream Vera avec couverture Unicode
fonts-dejavu-core V:57, I:101 2882 DejaVu Sans DejaVu Serif DejaVu Sans Mono DejaVu, Bitstream Vera avec couverture Unicode (sans, sans-bold, serif, serif-bold, mono, mono-bold)
fonts-dejavu-extra I:93 6430 N/A N/A N/A DejaVu, Bitstream Vera avec couverture Unicode (oblique, italic, bold-oblique, bold-italic, condensed)
ttf-unifont I:29 13155 N/A N/A unifont GNU Unifont, avec tous les codes de caractères imprimables d’« Unicode 5.1 Basic Multilingual Plane (BMP) » (Plan de base multilingue Unicode 5.1)

[Astuce] Astuce

Les polices DejaVu sont basées sur un sur-ensemble des polices Bitstream Vera

Voici quelques points ciblés sur les polices de caractères CJK.


Un nom de police tel que « VL PGothic » avec « P » est une police proportionnelle correspondant à la police de largeur fixe « VL Gothic ».

Par exemple, la table de code Shift_JIS comporte 7070 caractères. Ils peuvent être regroupés de la manière suivante :

  • caractères sur un seul octet JIS X 0201 (191 caractères encore appelés caractères de demi-largeur)

  • caractères sur deux octets JIS X 0208 (6879 caractères encore appelés caractères de pleine-largeur)

Les caractères sur deux octets occupent une largeur double sur les consoles qui utilisent des polices CJK de largeur fixe. Afin de s’accommoder d’une telle situation, le fichier Hanzi Bitmap Font (HBF) File ayant l’extension de nom de fichier « .hbf » peut être mis en œuvre pour les polices comportant des caractères sur un ou sur deux octets.

Afin d’économiser la place prise par les fichiers de polices TrueType, on peut utiliser un fichier de collection de polices TrueType ayant l’extension du nom de fichier « .ttc ».

Afin de couvrir un espace de code de caractères compliqué, la police CID à clé PostScript Type 1 est utilisée avec des fichiers CMap qui commencent par « %!PS-Adobe-3.0 Resource-CMap ». C’est rarement utilisé pour l’affichage X normal mais est utilisé pour le rendu PDF, etc. (consultez Section 7.7.2, « Applications utilitaires pour X »).

[Astuce] Astuce

Des glyphes multiples sont attendus de certains points du code Unicode en raison de l’unification Han. Parmi les plus ennuyeux se trouvent « U+3001 IDEOGRAPHIC COMMA » et « U+3002 IDEOGRAPHIC FULL STOP » dont la position des caractères diffère selon les pays CJK. La priorité de configuration des polices japono-centrées sur les chinoises en utilisant « ~/.fonts.conf » devrait apaiser l’esprit des Japonais.

Voici une liste des application de bureautique de base (LO signifie LibreOffice) :


Voici une liste d’applications de base qui ont attiré mon attention :


[Attention] Attention

Le paquet poppler-data (précédemment non libre, consultez Section 11.4.1, « Ghostscript ») doit être installé pour qu’evince et okular puissent afficher des documents CJK PDF qui utilisent des données Cmap (Section 7.6.3, « Polices CJK »).

[Note] Note

L’installation de logiciels tels que scribus (KDE) sous l’environnement de bureau GNOME est acceptable puisqu’il n’existe pas de fonctionnalité équivalente sous l’environnement de bureau de GNOME. Cependant, l’installation de nombreux paquets ayant les mêmes fonctionnalités pollue votre menu.

[Avertissement] Avertissement

Ne lancez jamais le gestionnaire de session ou d’affichage X avec le compte de l’administrateur en entrant root à l’invite d’un gestionnaire d’affichage comme gdm3, même si vous prévoyez d’effectuer des tâches administratives car c’est considéré comme non sûr. L’ensemble de l’architecture de X est considérée comme non sûre si elle tourne avec le compte de l’administrateur. Vous devez toujours avoir le niveau de privilège le plus bas possible, comme avec un compte normal.

Une manière simple de faire tourner un client X particulier, par exemple « toto » en tant que superutilisateur est d’utiliser sudo(8) etc. de la manière suivante :

$ sudo toto &
$ sudo -s
# toto &
$ gksu toto &
$ ssh -X root@localhost
# toto &
[Attention] Attention

N’utiliser ssh(1) que dans ce but est un gaspillage de ressources.

De manière à ce que le client X puisse se connecter au serveur X, veuillez noter ce qui suit :

  • Les valeurs des variables d’environnement « $XAUTHORITY » et « $DISPLAY » de l’ancien utilisateur doivent être copiées dans celles du nouvel utilisateur.

  • Le nouvel utilisateur doit avoir la permission de lecture du fichier vers lequel pointe la valeur de la variable d’environnement « :$XAUTHORITY ».

Le paquet gksu (popcon : V:146, I:493) est un paquet spécialisé de l’interface graphique GTK+ permettant d’obtenir les privilèges de l’administrateur. Il peut être configuré pour utiliser su(1) ou sudo(8) en tant que programme de support selon la valeur de la clé « /apps/gksu/sudo-mode » de gconf. Vous pouvez éditer la clé de gconf en utilisant gconf-editor(1) (menu : « Applications » → « Outils système » → « Éditeur de configuration »).