106.2 Leçon 1
Certification : |
LPIC-1 |
---|---|
Version : |
5.0 |
Thème : |
106 Interfaces utilisateur et bureaux |
Objectif : |
106.2 Bureaux graphiques |
Leçon : |
1 sur 1 |
Introduction
Les systèmes d’exploitation Linux sont connus pour leur interface en ligne de commande sophistiquée, mais celle-ci peut s’avérer intimidante pour les utilisateurs sans compétences techniques. Afin de rendre l’utilisation de l’ordinateur plus intuitive, la combinaison d’écrans à haute résolution et de dispositifs de pointage a donné naissance à des interfaces utilisateur basées sur des éléments graphiques. Alors que l’interface en ligne de commande nécessite une connaissance préalable des noms des programmes et de leurs options de configuration, une interface graphique (GUI Graphical User Interface) permet de piloter les fonctionnalités d’un programme en pointant sur des éléments visuels familiers, ce qui rend la courbe d’apprentissage moins raide. De plus, l’interface graphique est plus adaptée au multimédia et à d’autres activités visuelles.
En effet, l’interface graphique est pratiquement synonyme d’interface informatique et la plupart des distributions Linux sont livrées avec une interface graphique installée par défaut. Il n’existe cependant pas un seul programme monolithique chargé d’assurer l’ensemble des fonctions des bureaux graphiques disponibles sous Linux. Au lieu de cela, chaque bureau graphique est en fait une vaste collection de programmes et de leurs dépendances, qui varient selon les choix de la distribution et les goûts personnels de l’utilisateur.
Le système X Window
Sous Linux et les autres systèmes d’exploitation de type Unix où il est utilisé, c’est le système X Window (également connu sous le nom de X11 ou simplement X) qui fournit les ressources de bas niveau liées au rendu de l’interface graphique et à l’interaction de l’utilisateur avec celle-ci, comme par exemple :
-
La gestion des entrées, comme les mouvements de la souris ou les saisies au clavier.
-
La possibilité de couper, copier et coller du contenu texte entre des applications distinctes.
-
L’interface de programmation qui permet à d’autres programmes de dessiner les éléments graphiques.
Même si le système X Window est chargé de gérer l’affichage graphique (le pilote vidéo lui-même fait partie de X), il n’est pas conçu pour dessiner lui-même des éléments visuels complexes. Les formes, les couleurs, les nuances et tout autre effet visuel sont générés par l’application qui tourne au-dessus de X. Cette approche laisse aux applications une grande marge de manœuvre pour créer des interfaces personnalisées, mais elle peut également entraîner des contraintes liées au développement qui dépassent le cadre de l’application, ainsi que certaines incohérences au niveau de l’apparence et du comportement par rapport à d’autres interfaces logicielles.
Du point de vue du développeur, l’avènement de l’environnement de bureau facilite la programmation de l’interface graphique liée au développement de l’application sous-jacente, tandis que du point de vue de l’utilisateur, elle offre une expérience cohérente entre les différentes applications. Les environnements de bureau rassemblent des interfaces de programmation, des bibliothèques et des programmes de référence qui coopèrent pour offrir des concepts de design traditionnels, mais en évolution constante.
L’environnement de bureau
L’interface graphique traditionnelle d’un ordinateur de bureau est constituée de diverses fenêtres — le terme "fenêtre" est utilisé ici pour désigner toute zone autonome de l’écran — associées à des processus en cours d’exécution. Étant donné que le système X Window n’offre que des fonctions interactives de base, l’expérience utilisateur globale repose sur les composants fournis par l’environnement de bureau.
Le gestionnaire de fenêtres, qui constitue sans doute le composant le plus important d’un environnement de bureau, permet de gérer l’emplacement et la décoration des fenêtres. C’est lui qui ajoute la barre de titre à la fenêtre, les boutons de contrôle — généralement associés aux actions de minimisation, d’agrandissement et de fermeture — et qui gère le passage d’une fenêtre ouverte à l’autre.
Note
|
Les concepts de base des interfaces graphiques des ordinateurs de bureau sont issus des espaces de travail des bureaux. Métaphoriquement, l’écran de l’ordinateur est le bureau, là où sont placés les objets tels que les documents et les dossiers. Une fenêtre d’application avec le contenu d’un document imite les actes physiques comme remplir un formulaire ou peindre une image. En tant que bureaux à proprement parler, les bureaux d’ordinateur comportent également des accessoires logiciels tels que des blocs-notes, des horloges, des calendriers, etc. |
Tous les environnements de bureau fournissent un gestionnaire de fenêtres qui reflète l’aspect et la convivialité de sa boîte à outils de widgets. Les widgets sont des éléments visuels informatifs ou interactifs, comme les boutons ou les champs de saisie de texte, répartis à l’intérieur de la fenêtre de l’application. Les composants standard du bureau — comme le lanceur d’applications, la barre des tâches, etc. — et le gestionnaire de fenêtres lui-même s’appuient sur ces boîtes à outils de widgets pour assembler leurs interfaces.
Les bibliothèques logicielles, notamment GTK+ et Qt, fournissent des widgets que les développeurs peuvent utiliser pour créer des interfaces graphiques sophistiquées pour leurs applications. Historiquement, les applications développées avec GTK+ ne ressemblaient pas aux applications créées avec Qt et vice-versa, mais la meilleure prise en charge des thèmes dans les environnements de bureau actuels rend la distinction moins évidente.
Dans l’ensemble, GTK+ et Qt offrent les mêmes fonctionnalités en termes de widgets. Les éléments interactifs simples peuvent être indiscernables, tandis que les widgets composites — comme par exemple la boîte de dialogue utilisée par les applications pour ouvrir ou enregistrer des fichiers — peuvent présenter un aspect très différent. Quoi qu’il en soit, les applications construites avec des boîtes à outils spécifiques peuvent fonctionner simultanément, indépendamment de la boîte à outils de widgets utilisée par les autres composants du bureau.
Au-delà des composants de base du bureau, que l’on pourrait considérer comme des programmes individuels, les environnements de bureau reprennent la métaphore du bureau en fournissant une panoplie minimale d’applications accessoires développées selon les mêmes directives de conception. Des variantes des applications suivantes sont couramment fournies par les principaux environnements de bureau :
- Applications liées au système
-
Émulateur de terminal, gestionnaire de fichiers, gestionnaire de paquets, outils de configuration du système.
- Communication et Internet
-
Gestionnaire de contacts, client de courrier électronique, navigateur web.
- Applications de bureau
-
Calendrier, calculatrice, éditeur de texte.
Les environnements de bureau peuvent inclure beaucoup d’autres services et applications : écran d’accueil de connexion, gestionnaire de session, communication inter-processus, gestionnaire de trousseaux de clés, etc. Ils intègrent également les fonctionnalités fournies par des services système tiers comme PulseAudio pour le son ou CUPS pour l’impression. Ces services n’ont pas besoin de l’environnement graphique pour fonctionner, mais l’environnement de bureau fournit des interfaces graphiques pour faciliter leur configuration et leur exploitation.
Environnements de bureau populaires
La plupart des systèmes d’exploitation propriétaires ne prennent en charge qu’un seul environnement de bureau officiel, qui est lié à leur mouture particulière et qui n’est pas censé être modifié. À l’inverse, les systèmes d’exploitation Linux prennent en charge toute une série de choix d’environnements de bureau qui peuvent être utilisés en conjonction avec X. Chaque environnement de bureau possède ses propres caractéristiques, mais ils partagent généralement des concepts de design communs :
-
Un lanceur d’applications qui répertorie les applications intégrées et tierces disponibles dans le système.
-
Un ensemble de règles qui définissent les applications par défaut associées aux types de fichiers et aux protocoles.
-
Des outils de configuration pour personnaliser l’apparence et le comportement de l’environnement de bureau.
Gnome est l’un des environnements de bureau les plus populaires et constitue le premier choix des distributions telles que Fedora, Debian, Ubuntu, SUSE Linux Enterprise, Red Hat Enterprise Linux, CentOS, etc. Dans sa version 3, Gnome a apporté des changements majeurs dans son apparence et sa structure, en s’éloignant de la métaphore du bureau et en introduisant le Gnome Shell comme nouvelle interface.
![gnome debian 10.1.0](./images/gnome-debian-10.1.0.png)
Le lanceur plein écran Gnome Shell Activities a remplacé le lanceur d’applications et la barre des tâches traditionnels. En revanche, on peut toujours utiliser Gnome 3 avec l’ancienne apparence en choisissant l’option Gnome Classic dans le gestionnaire de connexion.
KDE est un vaste écosystème d’applications et une plateforme de développement. Sa dernière version d’environnement de bureau, KDE Plasma, est utilisée par défaut dans openSUSE, Mageia, Kubuntu, etc. L’utilisation de la bibliothèque Qt est la caractéristique principale de KDE, ce qui lui donne son apparence unique et une multitude d’applications originales. KDE propose même un outil de configuration pour assurer la cohérence visuelle avec les applications GTK+.
![kde opensuse 15.1](./images/kde-opensuse-15.1.png)
Xfce est un environnement de bureau qui se veut esthétique sans pour autant être gourmand en ressources machine. Sa structure est hautement modulaire, ce qui permet à l’utilisateur d’activer et de désactiver des composants en fonction de ses besoins et de ses préférences.
![xfce manjaro 18.1.0](./images/xfce-manjaro-18.1.0.png)
Il y a beaucoup d’autres environnements de bureau pour Linux, fournis en règle générale par les distributions alternatives. La distribution Linux Mint, par exemple, propose deux environnements de bureau originaux : Cinnamon (un fork de Gnome 3) et MATE (un fork de Gnome 2). LXDE est un environnement de bureau conçu pour consommer peu de ressources, ce qui en fait un bon choix pour une installation sur des équipements plus anciens ou des ordinateurs monocartes. Même s’il n’offre pas toutes les fonctionnalités des environnements de bureau plus élaborés, LXDE propose toutes les fonctionnalités de base que l’on attend d’une interface utilisateur graphique moderne.
Tip
|
Les raccourcis clavier jouent un rôle important dans l’interaction avec l’environnement de bureau. Certains raccourcis clavier — comme Alt+Tab pour passer d’une fenêtre à l’autre ou Ctrl+c pour copier du texte — sont communs à tous les environnements de bureau, mais chaque environnement de bureau dispose également de ses propres raccourcis clavier. Les raccourcis clavier se trouvent dans l’outil de configuration du clavier fourni par l’environnement de bureau, où ils peuvent être ajoutés ou modifiés. |
Interopérabilité des bureaux
La grande variété d’environnements de bureau dans les systèmes d’exploitation Linux pose un dilemme : comment les faire fonctionner correctement avec des applications graphiques ou des services système tiers sans avoir à implémenter un support spécifique pour chacun d’entre eux. Des méthodes et des spécifications communes à tous les environnements de bureau améliorent considérablement l’expérience de l’utilisateur et règlent bon nombre de problèmes de développement, étant donné que les applications graphiques doivent interagir avec l’environnement de bureau actuel, quel que soit l’environnement de bureau pour lequel elles ont été conçues à l’origine. En dehors de cela, il est important de conserver les paramètres généraux du bureau si l’utilisateur modifie éventuellement son choix d’environnement de bureau.
L’organisation freedesktop.org maintient un corpus important de spécifications pour l’interopérabilité des ordinateurs de bureau. L’adoption de l’ensemble des spécifications n’est pas obligatoire, mais bon nombre d’entre elles sont largement utilisées :
- Emplacement des répertoires
-
L’endroit où se trouvent les paramètres personnels et d’autres fichiers spécifiques à l’utilisateur.
- Entrées de menu
-
Les applications en ligne de commande peuvent être exécutées dans l’environnement de bureau via n’importe quel émulateur de terminal, mais il serait trop déroutant de les rendre toutes disponibles dans le lanceur d’applications. Les entrées de bureau sont des fichiers texte qui se terminent par
.desktop
et que l’environnement de bureau utilise pour rassembler des informations sur les applications de bureau disponibles et la manière de les utiliser. - Démarrage automatique
-
Configuration qui spécifie l’application censée démarrer automatiquement une fois que l’utilisateur s’est connecté.
- Glisser-déposer
-
Comment les applications sont censées gérer les événements de type "glisser-déposer".
- Corbeille
-
L’emplacement habituel des fichiers supprimés par le gestionnaire de fichiers, ainsi que les procédures de stockage et de suppression des fichiers à partir de cet emplacement.
- Thèmes d’icônes
-
Le format commun pour les bibliothèques d’icônes interchangeables.
La facilité d’utilisation des environnements de bureau présente un inconvénient par rapport aux interfaces texte comme le shell : la possibilité de fournir un accès à distance. En effet, si l’on peut facilement accéder à un environnement shell en ligne de commande sur une machine distante à l’aide d’outils tels que ssh
, l’accès à distance à un environnement graphique nécessite des méthodes différentes et peut s’avérer moins performant avec une connexion plus lente.
Accès non local
Le système X Window adopte une conception basée sur des affichages (displays) autonomes, où le même Gestionnaire d’affichage X (X display manager) peut gérer plus d’une session de bureau graphique en même temps. En fait, un affichage (display) est comparable à un terminal texte : les deux font référence à une machine ou à une application logicielle utilisée comme point d’entrée pour établir une session indépendante du système d’exploitation. Même si la configuration la plus courante implique une seule session graphique qui s’exécute sur la machine locale, d’autres configurations moins conventionnelles sont également possibles :
-
Passer d’une session de bureau graphique active à une autre sur la même machine.
-
Plus d’un jeu de périphériques d’affichage (écran, clavier, souris) connectés à la même machine, chacun contrôlant sa propre session de bureau graphique.
-
Sessions de bureau graphique à distance, où l’interface graphique est envoyée via le réseau vers un écran distant.
Les sessions de bureau à distance sont prises en charge de manière native par X, qui utilise le X Display Manager Control Protocol (XDMCP) pour communiquer avec les écrans distants. En raison de ses besoins élevés en termes de bande passante, le protocole XDMCP est rarement utilisé sur Internet ou dans les réseaux locaux à débit modeste. Par ailleurs, XDMCP pose des problèmes de sécurité : l’affichage local communique avec un gestionnaire d’affichage X distant privilégié pour exécuter des tâches à distance, de sorte qu’une éventuelle vulnérabilité pourrait permettre d’exécuter des commandes arbitraires privilégiées sur la machine distante.
Qui plus est, XDMCP nécessite l’exécution d’instances X des deux côtés de la connexion, ce qui peut le rendre irréalisable si le système X Window n’est pas disponible sur toutes les machines concernées. Dans la pratique, d’autres méthodes plus efficaces et moins contraignantes sont utilisées pour établir des sessions de bureau graphique à distance.
Le Virtual Network Computing (VNC) est un outil autonome permettant de visualiser et de contrôler des environnements de bureau à distance via le protocole Remote Frame Buffer (RFB). Grâce à ce protocole, les signaux émis par le clavier et la souris en local sont transmis au bureau distant, qui renvoie à son tour toutes les données actualisées de l’écran à afficher localement. On peut faire tourner plusieurs serveurs VNC sur la même machine, mais chacun de ces serveurs aura besoin d’un port TCP propre dans l’interface réseau pour accepter les demandes de session entrantes. Par convention, le premier serveur VNC devra utiliser le port TCP 5900, le second le port 5901, et ainsi de suite.
Le serveur VNC n’a pas besoin de privilèges particuliers pour fonctionner. Un utilisateur lambda peut très bien se connecter à son compte distant et démarrer son propre serveur VNC à partir de là. Ensuite, sur la machine locale, n’importe quelle application client VNC peut être utilisée pour accéder au bureau distant (en supposant que les ports réseau correspondants soient accessibles). Le fichier ~/.vnc/xstartup
est un script shell exécuté par le serveur VNC lorsqu’il démarre et peut être utilisé pour définir l’environnement de bureau que le serveur VNC mettra à la disposition du client VNC. Il est important de noter que VNC ne fournit pas de méthodes modernes de chiffrement et d’authentification de manière native, il devra donc être utilisé en combinaison avec une application tierce qui fournit ces fonctionnalités. Les méthodes impliquant des tunnels VPN et SSH sont souvent utilisées pour sécuriser les connexions VNC.
Le Remote Desktop Protocol (RDP) est principalement utilisé pour accéder à distance au bureau d’un système d’exploitation Microsoft Windows via le port réseau TCP 3389. Même s’il utilise le protocole RDP propriétaire de Microsoft, l’implémentation client utilisée dans les systèmes Linux consiste en une série de logiciels libres sous licence GNU General Public License (GPL) et ne fait l’objet d’aucune restriction légale d’utilisation.
Le protocole Spice (Simple Protocol for Independent Computing Environments) comprend une suite d’outils qui permettent d’accéder à l’environnement de bureau de systèmes virtualisés, que ce soit sur la machine locale ou sur un site distant. En dehors de cela, le protocole Spice offre des fonctionnalités natives pour intégrer les systèmes locaux et distants, comme la possibilité d’accéder aux périphériques locaux (haut-parleurs et périphériques USB connectés par exemple) à partir de la machine distante et le partage de fichiers entre les deux systèmes.
Il existe des commandes client spécifiques pour se connecter à chacun de ces protocoles de bureau à distance, mais le client de bureau à distance Remmina fournit une interface graphique intégrée qui facilite le processus de connexion, en conservant éventuellement les paramètres de connexion pour une utilisation ultérieure. Remmina dispose de plugins pour chaque protocole spécifique et il existe des plugins pour XDMCP, VNC, RDP et Spice. Le choix de l’outil approprié se fait selon les systèmes d’exploitation concernés, la qualité de la connexion réseau et les fonctionnalités de l’environnement de bureau à distance qui doivent être disponibles.
Exercices guidés
-
Quel type d’application offre des sessions shell en mode fenêtré dans l’environnement de bureau ?
-
En raison de la variété des environnements de bureau Linux, la même application peut avoir plus d’une mouture, chacune d’entre elles étant mieux adaptée à un toolkit particulier. Par exemple, le client bittorrent Transmission dispose de deux versions : transmission-gtk et transmission-qt. Laquelle des deux doit être installée pour assurer une intégration parfaite avec KDE ?
-
Quels sont les environnements de bureau Linux recommandés pour les ordinateurs monocartes bas de gamme dotés d’une faible puissance de calcul ?
Exercices d’approfondissement
-
Il existe deux manières de copier et de coller du texte dans le système X Window : en utilisant les touches traditionnelles Ctrl+c et Ctrl+v (également disponibles dans le menu de la fenêtre) ou en utilisant le clic du milieu de la souris pour coller le texte sélectionné. Quelle est la méthode appropriée pour copier et coller du texte depuis l’émulateur de terminal ?
-
La plupart des environnements de bureau associent le raccourci clavier Alt+F2 à la fenêtre Exécuter un programme, où un programme peut être exécuté en ligne de commande. Dans KDE, quelle commande permet d’exécuter l’émulateur de terminal par défaut ?
-
Quel est le protocole le mieux adapté pour accéder à un bureau Windows distant depuis un environnement de bureau Linux ?
Résumé
Cette leçon présente une vue d’ensemble des bureaux graphiques disponibles pour les systèmes Linux. Le système X Window ne fournit à lui seul que des fonctions d’interface simples, de sorte que les environnements de bureau améliorent l’expérience de l’utilisateur dans l’interface graphique fenêtrée. La leçon aborde les sujets suivants :
-
Concepts relatifs à l’interface graphique et au système X Window.
-
Environnements de bureau disponibles pour Linux.
-
Points communs et différences entre les environnements de bureau.
-
Comment accéder à un environnement de bureau à distance.
Les notions et les programmes suivants ont été abordés :
-
Système X Window.
-
Environnements de bureau populaires : KDE, Gnome, Xfce.
-
Protocoles d’accès à distance : XDMCP, VNC, RDP, Spice.
Réponses aux exercices guidés
-
Quel type d’application offre des sessions shell en mode fenêtré dans l’environnement de bureau ?
N’importe quel émulateur de terminal comme Konsole, Gnome terminal, xterm, etc., permet d’accéder à une session interactive locale du shell.
-
En raison de la variété des environnements de bureau Linux, la même application peut avoir plus d’une mouture, chacune d’entre elles étant mieux adaptée à un toolkit particulier. Par exemple, le client bittorrent Transmission dispose de deux versions : transmission-gtk et transmission-qt. Laquelle des deux doit être installée pour assurer une intégration parfaite avec KDE ?
KDE est basé sur la bibliothèque Qt, c’est donc la version Qt — transmission-qt — qui devra être installée.
-
Quels sont les environnements de bureau Linux recommandés pour les ordinateurs monocartes bas de gamme dotés d’une faible puissance de calcul ?
Les environnements de bureau basiques qui n’utilisent pas trop d’effets visuels, comme Xfce et LXDE.
Réponses aux exercices d’approfondissement
-
Il existe deux manières de copier et de coller du texte dans le système X Window : en utilisant les touches traditionnelles Ctrl+c et Ctrl+v (également disponibles dans le menu de la fenêtre) ou en utilisant le clic du milieu de la souris pour coller le texte sélectionné. Quelle est la méthode appropriée pour copier et coller du texte depuis l’émulateur de terminal ?
Les sessions interactives de l’interpréteur de commandes attribuent la touche Ctrl+c pour arrêter l’exécution du programme, c’est pourquoi la méthode du bouton central est recommandée.
-
La plupart des environnements de bureau associent le raccourci clavier Alt+F2 à la fenêtre Exécuter un programme, où un programme peut être exécuté en ligne de commande. Dans KDE, quelle commande permet d’exécuter l’émulateur de terminal par défaut ?
La commande
konsole
exécute l’émulateur de terminal de KDE, mais un terme générique comme terminal fonctionne également. -
Quel est le protocole le mieux adapté pour accéder à un bureau Windows distant depuis un environnement de bureau Linux ?
Le protocole de bureau à distance (RDP), étant donné qu’il est pris en charge de manière native par Windows et Linux.