
Sous X, le gestionnaire de fenêtres et le serveur d'affichage sont deux programmes distincts ; mais sous Wayland, la fonction des deux est gérée par le compositeur Wayland.


Un gestionnaire de fenêtres est un logiciel système qui contrôle le placement et l'apparence des fenêtres au sein d'un système de fenêtrage dans une interface utilisateur graphique . La plupart des gestionnaires de fenêtres sont conçus pour fournir un environnement de bureau . Ils fonctionnent en conjonction avec le système graphique sous-jacent qui fournit les fonctionnalités requises (prise en charge du matériel graphique, des périphériques de pointage et d'un clavier) et sont souvent écrits et créés à l'aide d'une boîte à outils de widgets .
Peu de gestionnaires de fenêtres sont conçus avec une distinction claire entre le système de fenêtrage et le gestionnaire de fenêtres. Chaque interface utilisateur graphique basée sur une métaphore de Windows possède une forme de gestion de fenêtres. En pratique, les éléments de cette fonctionnalité varient considérablement. Les éléments généralement associés aux gestionnaires de fenêtres permettent à l'utilisateur d'ouvrir, de fermer, de minimiser, d'agrandir, de déplacer, de redimensionner et de suivre les fenêtres en cours d'exécution, y compris les décorateurs de fenêtres . De nombreux gestionnaires de fenêtres sont également dotés de divers utilitaires et fonctionnalités tels que des barres de tâches , des lanceurs de programmes, des docks pour faciliter la division en deux ou en quatre des fenêtres à l'écran, des espaces de travail pour regrouper les fenêtres, des icônes de bureau , un fond d'écran, une capacité à conserver les fenêtres sélectionnées au premier plan, la possibilité de « dérouler » les fenêtres pour n'afficher que leurs barres de titre, de mettre les fenêtres en cascade, d'empiler les fenêtres dans une grille, de regrouper les fenêtres du même programme dans la barre des tâches afin d'économiser de l'espace et des barres de tâches multi-lignes facultatives.
Histoire
En 1973, le Xerox Alto est devenu le premier ordinateur livré avec une interface graphique WIMP fonctionnelle . Il utilisait un gestionnaire de fenêtres empilables qui permettait le chevauchement des fenêtres. Cependant, ce système était tellement en avance sur son temps que son paradigme de conception ne serait largement adopté que plus d'une décennie plus tard. Bien qu'il ne soit pas certain que Microsoft Windows contienne des conceptions copiées du système d'exploitation Mac OS classique d'Apple , il est clair qu'aucun des deux n'a été le premier à produire une interface graphique utilisant des fenêtres empilables. Au début des années 1980, le Xerox Star , successeur de l'Alto, utilisait le pavage pour la plupart des fenêtres d'application principales et le chevauchement uniquement pour les boîtes de dialogue, supprimant ainsi la plupart des besoins d'empilement.
Le système d'exploitation Mac OS classique a été l'un des premiers exemples de succès commercial d'une interface utilisateur graphique utilisant une sorte de gestion de fenêtres empilées via QuickDraw . Son successeur, macOS , utilise un gestionnaire de fenêtres un peu plus avancé qui prend en charge la composition depuis Mac OS X 10.0 et a été mis à jour dans Mac OS X 10.2 pour prendre en charge la composition accélérée par le matériel via Quartz Compositor .
GEM 1.1 , de Digital Research , était un environnement d'exploitation qui incluait un gestionnaire de fenêtres empilables, permettant à toutes les fenêtres de se chevaucher. Il a été publié au début des années 1980. GEM est célèbre pour avoir été inclus comme interface graphique principale utilisée sur l' Atari ST , qui exécutait Atari TOS , et était également une interface graphique populaire pour MS-DOS avant l'utilisation généralisée de Microsoft Windows. À la suite d'un procès intenté par Apple , Digital Research a été contraint de supprimer les capacités d'empilement dans GEM 2.0, faisant de son gestionnaire de fenêtres un gestionnaire de fenêtres en mosaïque.
Au milieu des années 1980, Amiga OS contenait un exemple précoce de gestionnaire de fenêtres de composition appelé Intuition (une des bibliothèques de bas niveau d'AmigaOS, qui était présente dans les ROM des systèmes Amiga ), capable de reconnaître quelles fenêtres ou parties de celles-ci étaient couvertes, et quelles fenêtres étaient au premier plan et entièrement visibles, de sorte qu'il ne pouvait dessiner que les parties de l'écran qui nécessitaient un rafraîchissement. De plus, Intuition prenait en charge la composition. Les applications pouvaient d'abord demander une région de mémoire en dehors de la région d'affichage actuelle pour l'utiliser comme bitmap. Le système de fenêtrage Amiga utilisait ensuite une série de blits de bits en utilisant le blitter matériel du système pour construire un composite des bitmaps de ces applications, ainsi que des boutons et des curseurs, dans la mémoire d'affichage, sans que ces applications n'aient à redessiner aucune de leurs bitmaps.
En 1988, Presentation Manager est devenu le shell par défaut d' OS/2 , qui, dans sa première version, n'utilisait qu'une interface de ligne de commande (CLI). IBM et Microsoft ont conçu OS/2 comme successeur de DOS et de Windows pour DOS. Cependant, après le succès de Windows 3.10, Microsoft a abandonné le projet en faveur de Windows. Après cela, le projet Microsoft pour une future version 3 d'OS/2 est devenu Windows NT , et IBM a procédé à une refonte complète du shell d'OS/2, en remplaçant le Presentation Manager d'OS/2 1.x par le Workplace Shell orienté objet qui a fait ses débuts dans OS/2 2.0.
Exemples
Gestionnaires de fenêtres X
Sur les systèmes utilisant le système X Window , il existe une distinction claire entre le gestionnaire de fenêtres et le système de fenêtrage . À proprement parler, un gestionnaire de fenêtres X n'interagit pas directement avec le matériel vidéo, les souris ou les claviers. Cette responsabilité incombe au serveur d'affichage .
Les utilisateurs du système X Window ont la possibilité d'utiliser facilement de nombreux gestionnaires de fenêtres différents : Metacity , utilisé dans GNOME 2 , et KWin , utilisé dans les espaces de travail KDE Plasma , et bien d'autres. Étant donné que de nombreux gestionnaires de fenêtres sont modulaires, les gens peuvent en utiliser d'autres, tels que Compiz (un gestionnaire de fenêtres de composition 3D ), qui remplace le gestionnaire de fenêtres. Sawfish et awesome sont en revanche des gestionnaires de fenêtres extensibles offrant un contrôle précis des fenêtres. Les composants de différents gestionnaires de fenêtres peuvent même être mélangés et assortis ; par exemple, les décorations de fenêtre de KWin peuvent être utilisées avec les composants du bureau et du dock de GNOME.
Les gestionnaires de fenêtres X ont également la capacité de reparenter des applications, ce qui signifie que, alors qu'initialement toutes les applications sont adoptées par la fenêtre racine (essentiellement l'écran entier), une application démarrée dans la fenêtre racine peut être adoptée par (c'est-à-dire placée à l'intérieur de) une autre fenêtre. Les gestionnaires de fenêtres sous le système de fenêtres X adoptent les applications de la fenêtre racine et les reparentent pour appliquer des décorations de fenêtre (par exemple, en ajoutant une barre de titre). Le reparentage peut également être utilisé pour ajouter le contenu d'une fenêtre à une autre. Par exemple, une application de lecteur Flash peut être reparentée à une fenêtre de navigateur et peut apparaître à l'utilisateur comme faisant partie de ce programme. Les gestionnaires de fenêtres reparentés peuvent donc organiser un ou plusieurs programmes dans la même fenêtre et peuvent facilement combiner le pavage et l'empilement de diverses manières.
Microsoft Windows
Microsoft Windows propose un gestionnaire de fenêtres empilables intégré depuis Windows 2.0 ; Windows Vista a introduit le gestionnaire de fenêtres de bureau de composition (dwm.exe) comme alternative facultative accélérée par le matériel. Sous Windows, comme GDI fait partie du noyau, le rôle du gestionnaire de fenêtres est étroitement lié aux sous-systèmes graphiques du noyau et est en grande partie non remplaçable, bien que des utilitaires tiers puissent être utilisés pour simuler un gestionnaire de fenêtres en mosaïque sur de tels systèmes. Depuis Windows 8 , le gestionnaire de fenêtres de bureau basé sur Direct3D ne peut plus être désactivé. Il ne peut être redémarré qu'avec la combinaison de touches Ctrl+Maj+Win+B.
L'Explorateur Windows (explorer.exe) est utilisé par défaut comme shell dans les systèmes Windows modernes pour fournir une barre des tâches et un gestionnaire de fichiers, ainsi que de nombreuses fonctions d'un gestionnaire de fenêtres ; les aspects de Windows peuvent être modifiés via les utilitaires de configuration fournis, en modifiant le registre Windows ou avec des outils tiers, tels que WindowBlinds ou Resource Hacker .
Un serveur X Windows complet, permettant l'utilisation de gestionnaires de fenêtres portés depuis le monde unixoid, peut également être fourni pour Microsoft Windows via Cygwin/X même en mode multifenêtre (et par d'autres implémentations du système X Window). Ainsi, il est facilement possible, par exemple, d'avoir des programmes clients du système X Window exécutés soit dans le même environnement Cygwin sur la même machine, soit sur un système Linux, BSD Unix etc. via le réseau, et seule leur interface graphique est affichée et utilisable sur l'environnement Microsoft Windows.
Notez que Microsoft et X Window System utilisent des termes différents pour décrire des concepts similaires. Par exemple, le terme gestionnaire de fenêtres est rarement mentionné par Microsoft car il est intégré et non remplaçable, et distinct du shell . Le shell Windows est analogue au concept d'environnement de bureau dans d'autres systèmes d'interface utilisateur graphique.
ChromeOS
Depuis 2021, ChromeOS est livré avec son propre gestionnaire de fenêtres appelé Ash. une base de code commune . Dans le passé, on pouvait l'exécuter en utilisant google-chrome --open-ashsur n'importe quel système compatible.
Types
Les gestionnaires de fenêtres sont souvent divisés en trois classes ou plus, qui décrivent comment les fenêtres sont dessinées et mises à jour.
Gestionnaires de fenêtres de composition
Les gestionnaires de fenêtres de composition permettent de créer et de dessiner toutes les fenêtres séparément, puis de les assembler et de les afficher dans divers environnements 2D et 3D. Les gestionnaires de fenêtres de composition les plus avancés permettent une grande variété d'apparences d'interface et la présence d'effets visuels 2D et 3D avancés.
Gestionnaires de fenêtres empilables
Tous les gestionnaires de fenêtres qui ont des fenêtres superposées et qui ne sont pas des gestionnaires de fenêtres composites sont des gestionnaires de fenêtres superposés , bien qu'il soit possible que tous n'utilisent pas les mêmes méthodes. Les gestionnaires de fenêtres superposés permettent aux fenêtres de se chevaucher en dessinant d'abord les fenêtres d'arrière-plan, ce que l'on appelle l' algorithme du peintre . Les modifications nécessitent parfois que toutes les fenêtres soient réempilées ou repeintes, ce qui implique généralement de redessiner chaque fenêtre. Cependant, pour amener une fenêtre d'arrière-plan au premier plan, il suffit généralement de redessiner une fenêtre, car les fenêtres d'arrière-plan peuvent avoir des morceaux d'autres fenêtres peints dessus, effaçant ainsi les zones qui sont couvertes.
Gestionnaire de fenêtres en mosaïque
Les gestionnaires de fenêtres en mosaïque peignent toutes les fenêtres à l'écran en les plaçant côte à côte ou au-dessus et en dessous les unes des autres, de sorte qu'aucune fenêtre ne recouvre jamais une autre. Microsoft Windows 1.0 utilisait la mosaïque, et une variété de gestionnaires de fenêtres en mosaïque pour X sont disponibles, tels que i3 , awesome et dwm .
Gestionnaire de fenêtres dynamique
Les gestionnaires de fenêtres dynamiques peuvent basculer de manière dynamique entre une disposition de fenêtre en mosaïque ou flottante. Une variété de gestionnaires de fenêtres dynamiques pour X sont disponibles.
Caractéristiques et équipements des gestionnaires de fenêtres
- Masquer automatiquement
- Une fonction de masquage automatique permet aux barres de menus de disparaître lorsque le pointeur est éloigné du bord de l'écran.
- Frontières
- Une bordure est un élément de décoration de fenêtre fourni par certains gestionnaires de fenêtres, qui apparaît autour de la fenêtre active . Certains gestionnaires de fenêtres peuvent également afficher une bordure autour des fenêtres d'arrière-plan.
- Menu contextuel
- Certains gestionnaires de fenêtres fournissent un menu contextuel qui apparaît lorsqu'un événement de clic alternatif est appliqué à un composant du bureau.

- Fond d'écran du bureau
- Certains gestionnaires de fenêtres fournissent une fonction de fond d'écran du bureau qui affiche une image d'arrière-plan dans la fenêtre racine .
- Vol de concentration
- Le vol de focus est une fonctionnalité fournie par certains gestionnaires de fenêtres. Elle permet à une application qui n'est pas au centre du focus de prendre soudainement le focus et de voler la saisie utilisateur destinée à l'application précédemment au centre du focus.
- Iconification
- Une fonction d'iconification permet aux utilisateurs de réduire les applications en cours d'exécution à une icône de bureau ou à une icône du panneau des tâches.
- Windows rejoint
- Certains gestionnaires de fenêtres fournissent une fonction de jointure de fenêtres qui permet à l'utilisateur de joindre des fenêtres d'application ensemble.
- Equivalents clavier
- Certains gestionnaires de fenêtres fournissent des équivalents clavier qui permettent au clavier de reproduire la fonctionnalité de la souris .
- Barre de menu
- Une barre de menus offre la possibilité de lancer des programmes via un menu et peut contenir des fonctionnalités supplémentaires, notamment un bouton de démarrage , une barre des tâches et une barre d'état système .
- Panneau de menu
- Un panneau de menu est un composant de certains gestionnaires de fenêtres qui permet de lancer des programmes à l'aide d'un menu. Un panneau de menu est similaire à une barre de menus , mais apparaît comme un panneau flottant , plutôt que comme une barre horizontale ou verticale.
- Le panneau de menu peut contenir des fonctionnalités supplémentaires, notamment un bouton de démarrage , un panneau des tâches et une barre d'état système .
- Focus de la souris
- Le modèle de focus de la souris détermine la manière dont le périphérique de pointage affecte le focus d'entrée dans le gestionnaire de fenêtres. Le modèle de focus détermine quel composant de l' interface utilisateur graphique est actuellement sélectionné pour recevoir l'entrée lorsque le pointeur est déplacé sur l'écran.
- Déformation de la souris
- La déformation de la souris est une fonctionnalité qui centre le pointeur sur l'application en cours lorsqu'elle est rendue active.
- Plusieurs bureaux
- Un gestionnaire de fenêtres peut fournir une fonction de bureaux multiples . Cela permet de basculer entre plusieurs bureaux de fenêtres racine . Cela évite d'encombrer la fenêtre racine , car les applications peuvent s'exécuter sur différents bureaux .
- Téléavertisseur
- Certains gestionnaires de fenêtres proposent un outil de pagination qui permet de basculer entre plusieurs bureaux . Le pagination peut apparaître sous la forme d'une fenêtre à l'écran ou d'un gadget dans la barre des tâches ou le panneau des tâches.
- Plugins
- Certains gestionnaires de fenêtres ont une construction modulaire qui permet aux modules enfichables de fournir des fonctionnalités selon les besoins.
- Enroulement
- Une fonction de cumul permet aux fenêtres d'apparaître simplement comme une barre de titre sur le bureau.
- Menu racine
- Certains gestionnaires de fenêtres fournissent un menu racine, qui apparaît lorsque la fenêtre racine ou l'arrière-plan du bureau est touché.
- Raccourcis
- Certains gestionnaires de fenêtres fournissent une fonction de raccourci qui permet aux utilisateurs de placer des icônes sur la fenêtre racine pour accéder à des programmes ou des fonctionnalités spécifiques.
- Fenêtres à onglets
- Certains gestionnaires de fenêtres fournissent une fonction de fenêtres à onglets qui regroupe les applications dans des cadres communs.
- Changement de tâche
- Le gestionnaire de fenêtres peut fournir diverses fonctions de changement de tâche qui permettent à l'utilisateur de changer l'application actuellement ciblée, notamment :
- Modification du focus de la souris à l'aide d'un périphérique de pointage
- Fonctions de changement de tâche au clavier (par exemple, en appuyant sur Alt-Tab)
- Cliquer sur la tâche dans une barre des tâches ou un panneau des tâches
- Barre des tâches
- Certains gestionnaires de fenêtres proposent une barre des tâches qui affiche les applications en cours d'exécution. La barre des tâches peut afficher toutes les applications en cours d'exécution, y compris celles qui ont été réduites, et peut offrir la possibilité de basculer entre elles. La barre des tâches peut être intégrée à une barre de menus sur certains gestionnaires de fenêtres.
- Panneau de tâches
- Un panneau de tâches est similaire à une barre des tâches , mais apparaît comme un panneau flottant , plutôt que comme une barre horizontale ou verticale.
- Bouton de démarrage
- Un bouton Démarrer est un widget de bureau qui fournit un menu de programmes pouvant être lancés. Le bouton Démarrer est généralement placé sur une barre de menus en bas de l'écran.
- Zone de notification
- Une zone de notification est utilisée pour afficher les icônes des fonctions système et des programmes qui n'ont pas de fenêtre de bureau . Elle contient principalement des icônes pour indiquer les informations d'état et les notifications telles que l'arrivée d'un nouveau message électronique. Certains systèmes peuvent également afficher une horloge dans la zone de notification .
- Barres de titre
- Une barre de titre est un composant de décoration de fenêtre que certains gestionnaires de fenêtres fournissent en haut de chaque fenêtre. La barre de titre est généralement utilisée pour afficher le nom de l'application ou le nom du document ouvert, et peut fournir des boutons de barre de titre pour réduire, maximiser, fermer ou dérouler les fenêtres de l'application.
- Boutons de la barre de titre
- Les boutons de la barre de titre sont inclus dans la barre de titre de certains gestionnaires de fenêtres et permettent de réduire, d'agrandir, de regrouper ou de fermer les fenêtres d'application. Certains gestionnaires de fenêtres peuvent afficher les boutons de la barre de titre dans la barre des tâches ou le panneau des tâches, plutôt que dans une barre de titre .
- Bureau virtuel
- Un bureau virtuel (également appelé bureau à défilement) est une fonctionnalité fournie par certains gestionnaires de fenêtres qui permet au bureau d'être plus grand que l'écran réel.
Navigation Windows
Une fenêtre active est la fenêtre actuellement active dans le gestionnaire de fenêtres actuel. Différents gestionnaires de fenêtres indiquent la fenêtre actuellement active de différentes manières et permettent à l'utilisateur de basculer entre les fenêtres de différentes manières. Par exemple, dans Microsoft Windows, si le Bloc-notes et Microsoft Paint sont ouverts, un clic dans la fenêtre du Bloc-notes activera cette fenêtre. Sous Windows, la fenêtre active est indiquée par une barre de titre de couleur différente. Cliquer n'est cependant pas le seul moyen de sélectionner une fenêtre active : certains gestionnaires de fenêtres (tels que FVWM ) rendent active la fenêtre sous le pointeur de la souris. Il suffit de déplacer la souris pour basculer entre les fenêtres ; un clic n'est pas nécessaire.
Les gestionnaires de fenêtres proposent souvent un moyen de sélectionner la fenêtre active à l'aide du clavier plutôt que de la souris. Une combinaison de touches typique est Alt+Tab , utilisée par Windows et KDE (par défaut, bien que cela soit configurable par l'utilisateur) ; une autre est la touche pomme -tilde, utilisée par Macintosh. Appuyer sur la combinaison de touches appropriée permet généralement de parcourir toutes les fenêtres visibles dans un certain ordre, bien que d'autres actions soient possibles.
De nombreux gestionnaires de fenêtres, mais pas tous, proposent une zone de l'écran contenant une sorte de contrôle visuel (souvent un bouton) pour chaque fenêtre de l'écran. Chaque bouton contient généralement le titre de la fenêtre et peut également contenir une icône. Cette zone de l'écran fournit généralement une sorte d'indication visuelle de la fenêtre active. Par exemple, le bouton de la fenêtre active peut apparaître « enfoncé ». Il est également généralement possible de changer de fenêtre active en cliquant sur le bouton approprié. Dans Microsoft Windows, cette zone de l'écran est appelée la barre des tâches ; dans les systèmes Apple Macintosh, cette zone de l'écran est appelée le dock.
La fenêtre active ne se trouve pas toujours devant toutes les autres fenêtres de l'écran. La fenêtre active est simplement la fenêtre vers laquelle les touches tapées sur le clavier sont envoyées ; elle peut être masquée visuellement par d'autres fenêtres. Cela est particulièrement vrai dans les gestionnaires de fenêtres qui ne nécessitent pas de clic pour changer de fenêtre active : FVWM , par exemple, active la fenêtre sous le curseur de la souris mais ne modifie pas son ordre Z (l'ordre dans lequel les fenêtres apparaissent, mesuré de l'arrière-plan au premier plan). Au lieu de cela, il est nécessaire de cliquer sur le bord de la fenêtre pour l'amener au premier plan. Il existe également des situations dans les gestionnaires de fenêtres à clic pour faire le focus tels que Microsoft Windows où la fenêtre active peut être masquée ; cependant, cela est beaucoup moins courant.