Chapitre 7. Système d’interface graphique

Table des matières

7.1. Environnement de bureau avec interface graphique
7.2. Protocole de communication graphique
7.3. Infrastructure d’interface graphique
7.4. Applications graphiques
7.5. Répertoires de l’utilisateur
7.6. Fontes de caractères
7.6.1. Fontes de base
7.6.2. Matricialisation des fontes
7.7. Bac à sable
7.8. Bureau à distance
7.9. Connexion au serveur X
7.9.1. Connexion locale au serveur X
7.9.2. Connexion à distance au serveur X
7.9.3. Connexion avec chroot au serveur X
7.10. Presse-papier

Plusieurs choix sont possibles pour un environnement de bureau graphique (GUI) complet pour un système Debian.


[Astuce] Astuce

Les paquets de dépendance sélectionnés par un métapaquet de tâche peuvent ne pas être synchronisés avec le dernier état de transition de paquet dans l’environnement Debian unstable/testing. Pour task-gnome-desktop, vous devrez peut-être ajuster les sélections de package comme suit :

  • démarrez aptitude(8) en tant que sudo aptitude -u ;

  • déplacez le curseur sur « Tâches » et appuyez sur « Entrée » ;

  • déplacez le curseur sur « Utilisateur final », appuyez sur « Entrée » ;

  • déplacez le curseur sur « GNOME » puis appuyez sur « Entrée » ;

  • déplacez le curseur sur task-gnome-desktop puis appuyez sur « Entrée » ;

  • déplacez le curseur sur « Dépend » et appuyez sur « m » (sélectionné manuellement) ;

  • déplacez le curseur sur « Recommande » puis appuyez sur « m » (sélectionné manuellement) ;

  • déplacez le curseur sur task-gnome-desktop et appuyez sur « - » (abandon) ;

  • ajustez les paquets sélectionnés tout en abandonnant ceux problématiques qui provoquent des conflits de paquets ;

  • appuyez sur « g » pour lancer l’installation.

Ce chapitre porte principalement sur l'environnement de bureau par défaut de Debian : task-gnome-desktop proposant GNOME avec wayland.

Le protocole de communication graphique utilisé pour le bureau GNOME peut être :

Veuillez consulter le site freedesktop.org pour savoir en quoi l'architecture de Wayland est différente de celle de X Window.

Du point de vue de l'utilisateur, les différences peuvent être résumées simplement comme suit :

  • Wayland est un protocole de communication d'interface graphique pour le même hôte : nouveau, plus simple, plus rapide, sans binaire racine setuid ;

  • X Window est un protocole de communication d’interface graphique compatible avec le réseau : binaire traditionnel, complexe, plus lent, setuid root.

Pour les applications utilisant le protocole Wayland, l’accès à leur contenu d’affichage à partir d’un hôte distant est pris en charge par VNC ou RDP. Consulter la Section 7.8, « Bureau à distance ».

Les serveurs X modernes possèdent l'extension de mémoire partagée du MIT et communiquent avec leurs clients X locaux en utilisant la mémoire partagée locale. Cela permet de contourner le canal de communication d’Xlib interprocessus transparent du réseau et de gagner en performance. Cette situation a été le contexte de la création de Wayland en tant que protocole de communication uniquement locale d’interface graphique.

En utilisant le programme xeyes lancé à partir du terminal GNOME, vous pouvez tester le protocole de communication d’interface graphique utilisé par chaque application graphique.

 $ xeyes
  • si le curseur de la souris se trouve sur une application, telle que « GNOME terminal », qui utilise le protocole de serveur d'affichage Wayland, les yeux ne se déplacent pas avec le curseur de la souris ;

  • si le curseur de la souris se trouve sur une application, telle que « xterm », qui utilise le protocole de base du système X Window, les yeux se déplacent avec le curseur de la souris, révélant la nature pas si isolée de l'architecture X Window.

En avril 2021, de nombreuses applications GUI populaires telles que GNOME et LibreOffice (LO) ont migré vers le protocole de serveur d'affichage Wayland. Je constate que xterm, gitk, chromium, firefox, gimp, dia et les applications du système KDE utilisent toujours le protocole X Window.

[Note] Note

Que ce soit pour xwayland sur Wayland ou le système X Window natif, l'ancien fichier de configuration du serveur X « /etc/X11/xorg.conf » ne devrait pas exister sur le système. Les périphériques graphiques et d'entrée sont maintenant configurés par le noyau avec DRM, KMS et udev. Le serveur X natif a été réécrit pour les utiliser. Consulter « modedb default video mode support » dans la documentation du noyau Linux.

Voici des paquets d’infrastructure graphique notables pour l’environnement GNOME on Wayland.


Ici, "[auto]" signifie que ces paquets sont automatiquement installés lorsque task-gnome-desktop est installé.

[Astuce] Astuce

gnome-tweaks est l'utilitaire de configuration indispensable. Par exemple :

  • vous pouvez forcer la « sur-amplification » du volume sonore à partir de « Général » ;

  • vous pouvez forcer la transformation de « Caps » en « Esc » à partir de « Clavier & souris » -> « Clavier » -> «Options supplémentaires de disposition ».

[Astuce] Astuce

Les fonctionnalités détaillées de l'environnement de bureau GNOME peuvent être configurées à l'aide d'utilitaires lancés en tapant "settings", "tweaks" ou "extensions" après avoir appuyé sur la touche Super-.

De nombreuses applications graphiques utiles sont disponibles avec Debian maintenant. L'installation de paquets logiciels tels que scribus (KDE) dans l'environnement de bureau GNOME est tout à fait acceptable puisque les fonctionnalités correspondantes ne sont pas disponibles dans l'environnement de bureau GNOME. Mais installer trop de paquets avec des fonctionnalités dupliquées peut encombrer votre système.

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

Tableau 7.3. Liste d’applications graphiques notables

paquet popularité taille du paquet type description
evolution V:30, I:239 486 GNOME Gestion d’informations personnelles (logiciel de travail collaboratif et courriel)
thunderbird V:48, I:119 224760 GTK client de messagerie (Mozilla Thunderbird)
kontact V:1, I:12 2208 KDE Gestion d’informations personnelles (logiciel de travail collaboratif et courriel)
libreoffice-writer V:117, I:435 31474 LO traitement de texte
abiword V:1, I:8 3542 GNOME traitement de texte
calligrawords V:0, I:7 6097 KDE traitement de texte
scribus V:1, I:16 31345 KDE éditeur de PAO pour modifier les fichiers PDF
glabels V:0, I:3 1338 GNOME éditeur d’étiquettes
libreoffice-calc V:111, I:432 26009 LO feuille de calcul
gnumeric V:4, I:14 9910 GNOME feuille de calcul
calligrasheets V:0, I:5 11396 KDE feuille de calcul
libreoffice-impress V:69, I:429 2646 LO présentation
calligrastage V:0, I:5 5339 KDE présentation
libreoffice-base V:26, I:121 5003 LO gestion de base de données
kexi V:0, I:1 7118 KDE gestion de base de données
libreoffice-draw V:72, I:430 10312 LO éditeur de graphiques vectoriels (draw)
inkscape V:15, I:112 99800 GNOME éditeur de graphiques vectoriels (draw)
karbon V:0, I:6 3610 KDE éditeur de graphiques vectoriels (draw)
dia V:2, I:22 3741 GTK éditeur d’organigrammes et de diagrammes
gimp V:50, I:252 19304 GTK éditeur de graphiques en champs de bits (« bitmap ») (paint)
shotwell V:17, I:255 6263 GTK gestionnaire de photos numériques
digikam V:1, I:9 293 KDE gestionnaire de photos numériques
darktable V:4, I:13 30554 GTK table lumineuse et chambre noire pour photographe
planner V:0, I:4 1394 GNOME gestion de projets
calligraplan V:0, I:2 19013 KDE gestion de projets
gnucash V:2, I:8 28928 GNOME gestion financière personnelle
homebank V:0, I:2 1218 GTK gestion financière personnelle
lilypond V:0, I:7 16092 - composition de partitions musicales
kmymoney V:0, I:2 13937 KDE gestion financière personnelle
librecad V:1, I:15 8963 app. QT système de CAO (2D)
freecad I:18 36 app. QT système de CAO (3D)
kicad V:3, I:14 236461 GTK création de schémas électroniques et de circuits imprimés
xsane V:12, I:144 2339 GTK interface pour dispositifs de numérisation (scanner)
libreoffice-math V:51, I:432 1898 LO éditeur d’équations et de formules mathématiques
calibre V:6, I:28 63385 KDE convertisseur de livre numérique et gestion de bibliothèque
fbreader V:1, I:9 3783 GTK lectrice de e-book
evince V:92, I:314 941 GNOME afficheur de documents (pdf)
okular V:40, I:123 17728 KDE afficheur de documents (pdf)
x11-apps V:31, I:463 2460 pure app. X xeyes(1), etc.
x11-utils V:192, I:566 651 pure app. X xev(1), xwininfo(1), etc.

Les noms par défaut de répertoires de l’utilisateur, tels que « ~/Desktop », « ~/Documents »…, utilisés par l’environnement de bureau dépendent de la régionalisation (locale) utilisée pour l’installation du système. Ils peuvent être redéfinis en noms anglais avec :

 $ LANGUAGE=C xdg-user-dirs-update --force 

Ensuite toutes les données doivent être déplacées manuellement dans les nouveaux répertoires (consulter xdg-user-dirs-update(1)).

Ils peuvent aussi être définis à n’importe quel nom en éditant « ~/.config/user-dirs.dirs » (consulter user-dirs.dirs(5)).

De nombreuses fontes utiles à taille variable sont disponibles pour les utilisateurs de Debian. La préoccupation de l'utilisateur est de comment éviter la redondance et de comment configurer des parties de fontes installées pour leur désactivation. Sinon, les choix de fontes inutiles peuvent encombrer vos menus d'application graphique.

Le système Debian utilise la bibliothèque FreeType 2.0 pour la matricialisation de nombreux formats de fontes à taille variable pour l’écran et l’impression :

Le tableau suivant est compilé dans l'espoir d'aider les utilisateurs à choisir des fontes proportionnelles appropriées avec une compréhension claire de la compatibilité métrique et de la couverture des glyphes. La plupart des fontes couvrent tous les caractères latins, grecs et cyrilliques. Le choix final des fontes activées peut également être influencé par votre esthétique. Ces fontes peuvent être utilisées pour l'affichage à l'écran ou pour l'impression sur papier.

Tableau 7.4. Liste de fontes notables TrueType et OpenType

paquet popularité taille linéale empattement chasse fixe remarque
fonts-cantarell V:216, I:306 572 59 - - Cantarell (GNOME 3, affichage)
fonts-noto I:153 31 61 63 40 fontes Noto (Google, multilingue avec CJK)
fonts-dejavu I:421 35 58 68 40 DejaVu (GNOME 2, MCM :Verdana, Bitstream Vera étendu)
fonts-liberation2 V:130, I:427 15 56 60 40 fontes Liberation pour LibreOffice (Red Hat, MCMATC)
fonts-croscore V:20, I:40 5274 56 60 40 Chrome OS : Arimo, Tinos et Cousine (Google, MCMATC)
fonts-crosextra-carlito V:21, I:131 2696 57 - - Chrome OS : Carlito (Google, MCM :Calibri )
fonts-crosextra-caladea I:128 347 - 55 - Chrome OS : Caladea (Google, MCM :Cambria ) (Latin uniquement)
fonts-freefont-ttf V:76, I:218 14460 57 59 40 GNU FreeFont (URW Nimbus étendu)
fonts-quicksand V:123, I:438 392 56 - - task-desktop de Debian, Quicksand (affichage, Latin uniquement)
fonts-hack V:24, I:120 2508 - - 40 P police de caractères conçue pour le code source de Hack (Facebook)
fonts-sil-gentiumplus I:32 14345 - 54 - Gentium de SIL
fonts-sil-charis I:27 6704 - 59 - Charis SIL
fonts-urw-base35 V:167, I:472 15560 56 60 40 URW Nimbus (Nimbus Sans, Roman No. 9 L, Mono L, MCAHTC)
fonts-ubuntu V:2, I:5 4339 58 - 33 P fontes d’Ubuntu (affichage)
fonts-terminus V:0, I:3 452 - - 33 fontes rétro de terminal sympas
ttf-mscorefonts-installer V:1, I:49 85 56 ? 60 40 téléchargeur de fontes non libres de Microsoft (voir ci-dessous)

Ici :

  • « MCM » signifie « métriques compatibles avec les fontes fournies par Microsoft » ;

  • « MCMATC » signifie « métrique compatible avec les fontes fournies par Microsoft : Arial, Times New Roman, Courier New » ;

  • « MCAHTC » signifie « métriques compatibles avec les fontes fournies par Adobe : Helvetica, Times, Courier » ;

  • les chiffres dans les colonnes de type de fonte représentent la largeur approximative relative du « M » pour une même taille de fonte ;

  • le « P » dans les colonnes de type de fonte mono représente sa facilité d'utilisation pour la programmation, ayant des « 0 »/« O » et « 1 »/« I »/« l » clairement distinguables ;

  • le paquet ttf-mscorefonts-installer télécharge les « fontes de base pour le Web » de Microsoft et installe Arial, Times New Roman, Courier New, Verdana, ... . Ces données de fontes installées sont des données non libres.

De nombreuses fontes latines libres ont leur origine dans la famille URW Nimbus ou Bitstream Vera.

[Astuce] Astuce

Si vos paramètres régionaux ont besoin de fontes qui ne sont pas bien couvertes par les fontes ci-dessus, veuillez utiliser aptitude pour vérifier les paquets de tâches répertoriés sous « Tâches » -> « Régionalisation ». Les paquets répertoriés comme « Depends: » ou « Recommends: » dans les paquets de tâches de régionalisation sont les principaux candidats.

Debian utilise FreeType pour le tramage des fontes. Son infrastructure de choix des fontes est fournie par la bibliothèque de configuration des fontes Fontconfig.


[Astuce] Astuce

Certains paquets de fontes tels que fonts-noto* installent beaucoup trop de fontes. Vous pouvez également conserver certains paquets de fontes installés mais désactivés dans des conditions d’utilisation normales. Des glyphes multiples sont attendus pour certains points de code Unicode en raison de l’Unification Han et des glyphes indésirables peuvent être choisis par la bibliothèque Fontconfig non configurée. L’un des cas les plus ennuyeux est « U+3001 IDEOGRAPHIC COMA » et « U+3002 IDEOGRAPHIC FULL STOP » pour les pays CJK. Vous pouvez éviter facilement cette situation problématique en configurant la disponibilité des fontes à l’aide de l’interface graphique du gestionnaire de fontes (font-manager).

Vous pouvez aussi vérifier les informations de configuration des fontes à partir de la ligne de commande comme suit :

  • « fc-match(1) » pour la fonte par défaut de fontconfig ;

  • « fc-list » pour les fontes disponibles de fontconfig.

Vous pouvez paramétrer l’état de configuration des fontes à partir d’un éditeur de texte, mais cela n’est pas trivial. Consulter fonts.conf(5).

De nombreuses applications sous Linux, principalement basées sur une interface graphique, sont disponibles dans des formats binaires à partir de sources autres que Debian :

[Avertissement] Avertissement

Les binaires de ces sites peuvent inclure des logiciels propriétaires non libres.

Il existe quelques raisons d'être pour ces distributions au format binaire pour les aficionados du logiciel libre qui utilisent Debian, car elles peuvent accueillir un ensemble sain de bibliothèques utilisées pour chaque application par leur développeur amont, indépendamment de celles fournies par Debian.

Le risque inhérent à l'exécution de fichiers binaires externes peut être réduit en utilisant l’environnement sandbox (bac à sable) qui exploite les fonctionnalités de sécurité Linux modernes (consulter laSection 4.7.5, « Caractéristiques de sécurité de Linux ») :

  • pour les binaires provenant d'AppImage et de certains sites amont, exécutez-les dans firejail avec une configuration manuelle ;

  • pour les binaires de FLATHUB, exécutez-les dans Flatpak (aucune configuration manuelle requise) ;

  • pour les fichiers binaires de snapcraft, exécutez-les dans Snap (aucune configuration manuelle requise, compatible avec les programmes démon).

Le paquet xdg-desktop-portal fournit une API normalisée pour les fonctionnalités de bureau communes. Consulter xdg-desktop-portal (flatpak) et xdg-desktop-portal (snap) .


Cette technologie d'environnement de bac à sable (sandbox) ressemble beaucoup aux applications sur les systèmes d'exploitation d’ordiphone où elles sont exécutées en ayant des accès contrôlés aux ressources.

Certaines grosses applications graphiques, telles que les navigateurs web, sur Debian utilisent également la technologie d’environnement de bac à sable en interne pour les rendre plus sécurisées.


Il existe plusieurs façons de se connecter au serveur X à partir d'une application sur un hôte distant, dont xwayland sur l'hôte local.


L’accès au serveur X local par les applications locales qui utilisent le protocole de base X peut être réalisé localement à l’aide d’un socket local de domaine UNIX. Cela peut être autorisé par le fichier d’authentification contenant les cookies d’accès. L’emplacement du fichier d’authentification est déterminé par la variable d’environnement « $XAUTHORITY » et l’affichage X est identifié par la variable d’environnement « $DISPLAY ». Étant donné que ceux-ci sont normalement définis automatiquement, aucune action spéciale n’est nécessaire, par exemple « gitk » comme suit.

username $ gitk
[Note] Note

Pour xwayland, XAUTHORITY contient une valeur comme « /run/user/1000/.mutter-Xwaylandauth.YVSU30 ».

L'accès à l'écran du serveur X local à partir des applications distantes qui utilisent le protocole de base de X est pris en charge par la fonction de transfert X11 :

Cette méthode permet l’affichage du client X distant comme s’il était connecté par une socket UNIX locale.

Consulter la Section 6.3, « Le serveur et les utilitaires d’accès à distance (SSH) » pour SSH/SSHD.

[Avertissement] Avertissement

Une connexion distante TCP/IP au serveur X est désactivée par défaut sur un système Debian pour des raisons de sécurité. Ne les activez pas en définissant simplement « xhost + » ni en activant connexion XDMCP, si vous pouvez l'éviter.

Pour copier du texte dans le presse-papiers, consulter la Section 1.4.4, « Opérations de souris ».

Pour copier des graphismes dans le presse-papiers, consulter la Section 11.6, « Outils de données graphiques ».

Certaines commandes en ligne de commande peuvent également manipuler le presse-papiers (PRIMARY et CLIPBOARD).