# Gestionnaire de fenêtres

Un système de fenêtrage ou « gestionnaire de fenêtres » (« window manager » en anglais) est un logiciel chargé de l'affichage et du placement des fenêtres d'applications. Les plus connus sont ceux utilisés par le système de fenêtrage X (sur les systèmes Unix, Linux et BSD). Il en existe aussi sous Windows (comme LiteStep) et sous OS/2 (le Presentation Manager pouvant être remplacé), mais ces cas sont beaucoup moins répandus du fait, entre autres, de la gratuité de X et de ses spécifications ouvertes. De plus, le découpage en couches de l'interface graphique est moins marqué sous Windows.
Le gestionnaire de fenêtres constitue l'intermédiaire entre le système de fenêtrage et l'environnement graphique.
Cet article traite plus particulièrement des gestionnaires basés sur le système de fenêtrage X.
Étant lui-même un client sur serveur X, le gestionnaire de fenêtres offre des moyens pour déplacer, redimensionner et icônifier les fenêtres affichées par les autres clients. De plus, il ajoute une décoration aux fenêtres qui consiste souvent en un cadre et une barre de titre. La majorité des gestionnaires savent de plus gérer plusieurs bureaux virtuels ainsi que des raccourcis clavier.

## Fonctionnalités

Un gestionnaire permet d'offrir plusieurs fonctionnalités$^,$$^,$ (selon le gestionnaire) :
* des barres des tâches ou un dock d'applications ;
* des menus, voire des menus fixables (pinnable menus en anglais) ;
* des bureaux virtuels et donc un workspace manager (application qui permet de passer d'un bureau à l'autre ; il est parfois appelé pager) ;
* des icônes et donc le support d'un format d'icône (comme le XPM) ;
* le déplacement, le redimensionnement, l'iconification des fenêtres ;
* la modification du fond d'écran, des couleurs de tous les éléments visibles, de l'habillage des fenêtres ;
* une gestion de session qui permet de garder une trace des actions effectuées par un utilisateur.

## Familles de gestionnaires de fenêtres

Il existe deux grands types de gestionnaires de fenêtres :
* gestionnaire de fenêtres flottantes ;
* gestionnaire de fenêtres par pavage.
Cependant, rien n'empêche à un unique gestionnaire d'intégrer les deux paradigmes, à divers niveaux.

### Gestionnaire de fenêtres flottantes

Ces gestionnaires de fenêtres tentent de simuler un bureau réel, les fenêtres représentant des feuilles de papier volantes que l'on place à sa guise, que cela laisse un espace du bureau visible ou que plusieurs d'entre elles se superposent. Il s'agit du paradigme le plus utilisé, que ce soit par Windows (au moins jusque Windows 7, inclus) ou les systèmes type Unix.

#### Exemples

* Compiz
* KWin
* Metacity
* Musca
* Xfwm

### Gestionnaire de fenêtres par pavage

Ces gestionnaires de fenêtres visent l'utilisation optimale de l'espace écran. Pour cela, lorsqu'une application requiert une nouvelle fenêtre, le gestionnaire lui créée une place en redimensionnant les autres fenêtres.
Il y a deux stratégies principales pour créer de la place pour la nouvelle fenêtre :
* le placement « manuel » : le gestionnaire ne cherche pas à deviner où l'utilisateur mettra cette fenêtre, il se contente de diviser la fenêtre active par deux et place la nouvelle fenêtre dans l'espace ainsi créé ;
* le placement par agencement : le gestionnaire place la fenêtre à un endroit déterminé par un algorithme.

#### Exemples

* i3
* dwm
* Wmii
* xmonad

### Autres exemples de gestionnaires de fenêtres

* AfterStep
* Awesome
* Common Lisp FullScreen Window Manager
* Enlightenment
* Fluxbox
* FVWM
* IceWM
* Ion
* Mutter
* Openbox
* Window Maker