L'interface graphique est de nos jours un composant essentiel pour la communication entre un système et ses utilisateurs. La gestion de cette interface graphique est réalisée par plusieurs briques indépendantes et souvent modifiables, permettant ainsi d'avoir quelque chose de personnalisable selon les souhaits de l'utilisateur. Deux briques sont notamment très importantes pour l'interaction homme/machine : le système de fenêtrage, et le gestionnaire de fenêtres. Parmi ces derniers, on peut notamment citer awesome, qui se détache de la majorité par sa gestion originale du placement des fenêtres : il fait en effet partie de la famille des
tiling window managers (que l'on pourrait traduire par « gestionnaire de fenêtres en mosaïque »). La version 3 de ce gestionnaire de fenêtres est sortie le 18 septembre et apporte un lot de nouveautés que nous développerons plus tard dans cette news. Voyons tout d'abord le rôle du gestionnaire de fenêtres et la différence importante des
tiling window managers avec les autres.
Du rôle du gestionnaire de fenêtres
Comme nous l'avons déjà évoqué en introduction, le gestionnaire de fenêtres est un composant essentiel pour interagir avec les applications : en effet, son rôle est entre autres de :
- positionner les fenêtres à un endroit adapté lorsqu’elles sont créées (par exemple un emplacement vide sur l'écran) ;
- déplacer et redimensionner les fenêtres en utilisant le clavier ou la souris ;
- sélectionner une fenêtre parmi d’autres pour travailler avec.
Imaginez que vous avez une dizaine de feuilles empilées sur votre bureau : vous ne les voyez pas toutes, mais vous pouvez placer celle qui vous intéresse au dessus des autres, voire vous débrouiller pour mettre en évidence les deux principales sans se préoccuper des autres (qui peuvent rester visibles en partie ou non), etc. C'est exactement la fonction d'un gestionnaire de fenêtres, et son intérêt est de permettre de réaliser ces actions le plus efficacement possible, en s'opposant le moins possible à la volonté de l'utilisateur.
Dans la multitude de gestionnaire de fenêtres (ou
window managers), on peut distinguer deux grandes familles distinctes et répondant chacunes à des attentes et des objectifs différents. On oppose ainsi les
floating window managers aux
tiling window managers, dont nous allons voir les principales caractéristiques plus en détail.
Le floating window manager
Ce sont les plus connus des utilisateurs ordinaires, car les plus usités et les plus fréquents sur nos ordinateurs. On peut en citer plusieurs exemples : le gestionnaire de fenêtres de Windows, qui depuis Windows 2.0 est un
floating window manager, ou KWin, le gestionnaire de fenêtres de l'environnement KDE. Leur principale caractéristique est de permettre aux fenêtres de se superposer, et de disposer d'une barre des tâches ou d'une liste des fenêtres pour les faire revenir au premier plan. Ils se gèrent principalement à la souris, ce qui rend leur manipulation plutôt lente.
Ainsi, au fur et à mesure sont apparus des fonctionnalités permettant de gérer ses fenêtres plus facilement : le raccourci Alt-Tab permet par exemple, avec de nombreux gestionnaires de fenêtres (citons KWin, le gestionnaire de fenêtres de KDE ou encore Metacity, le gestionnaire de fenêtres de Gnome) de parcourir la liste des fenêtres pour en choisir une. Alors que ce raccourci est présent sur pratiquement l'intégralité des
floating window managers, d’autres fonctionnalités intéressantes existent mais ne sont pas forcément disponibles par défaut avec par exemple le gestionnaire de fenêtres de Microsoft Windows.
L’une d’elle s’appelle le « bureau virtuel ». Le principe est simple : nos fenêtres n’ont pas toute la même utilité, et au lieu de cacher par exemple les différentes fenêtres liées à la messagerie instantanée, on peut les placer dans un autre bureau, et on ne les affichera que lorsqu’on l’on aura une conversation active. Le reste du temps, on sera par exemple dans le bureau « développement » ou « travail », ce qui permet de mieux gérer ses différentes activités sans être dépassé par le nombre de fenêtres. Les applications des bureaux virtuels sont ainsi nombreuses et c’est une fonctionnalité qui manque lorsque l’on n’y a plus accès.

Une autre fonctionnalité, plus récente (présentée selon Wikipédia pour la première fois le 23 juin 2003 pendant une présentation de Mac OS X Panther), nommée « Exposé », permet de passer dans un mode où l’on peut voir toutes les fenêtres à l’écran sous forme miniaturisée, pour localiser facilement la fenêtre que l’on cherche (au lieu de passer par chacune des fenêtres via Alt-Tab jusqu’à obtenir la bonne). Cela existe désormais dans des gestionnaires de fenêtres tels que KWin et Compiz Fusion, et semble être un pas vers le développement des « Zooming User Interface » (qu’on pourrait traduire en « Interface Utilisateur Zoomable »). Sujet certainement intéressant, mais qui n’est malheureusement pas celui de la news.
Le tiling window manager
Alors que les gestionnaires de fenêtre classiques deviennent de plus en plus « jolis » mais lourds, certains utilisateurs se sont rendu compte que le gestionnaire pourrait :
- s’occuper d’optimiser la place fournie par l’écran en diminuant au possible les espaces vides ;
- gérer plus d’aspects du positionnement des fenêtres, pour éviter à l’utilisateur de le faire ;
- offrir ainsi une manière rapide de gérer ses fenêtres au clavier ;
- et donc permettre d’être plus efficace au jour le jour.
Les gestionnaires qui respectent ces idées sont visuellement minimalistes : ne vous attendez pas à des effets 3D retentissants ou à des bordures de fenêtres recherchées. C'est pour cette raison qu'ils peuvent paraitre laids au premier abord, mais non, c'est simplement une volonté de gagner le plus de place possible.
Le premier tiling window manager est apparu dans le Xerox Star, sorti en 1981. Ensuite,
Windows 1.0 a repris le principe parce qu'il ne pouvait pas utiliser des fenêtres flottantes (Apple avait déjà utilisé ce système et s'est entendu avec Microsoft à ce sujet). Depuis, Windows gère ses fenêtres de façon classique, même s'il est toujours possible de les placer en mosaïque (mais c’est pratiquement inutilisable et pas du tout pensé pour être efficace). Des sociétés (Siemens, IBM) auraient, après Windows 1.0, développé de tels gestionnaires de fenêtre, mais rien de notable ne s’est passé avant 2000, et l’apparition de larswm et Ion, qui ont permis de commencer la relative démocratisation de ce genre de gestionnaires.
Ion ne nous intéresse pas vraiment ici, sachez simplement qu’il est dit « statique » dans le sens où c’est l’utilisateur qui doit faire de la place, puis placer ses fenêtres au bon endroit.
larswm ou encore awesome font partie de l’autre grande famille de tiling window managers, les window managers « dynamiques ». Le gestionnaire sait qu’il doit placer ses fenêtres selon une certaine façon, et cela lui permet, lors de la création d’une nouvelle fenêtre, de faire de la place comme l’utilisateur le souhaite. L’avantage est simple : c’est vraiment le window manager qui s’occupe de la position des fenêtres, l’utilisateur n’a plus qu’à les créer et les fermer (voire les déplacer). L’inconvénient majeur est que toutes les façons différentes de placer ses fenêtres ne sont pas forcément disponibles : il faut en effet un cadre (des règles fixes) pour permettre au gestionnaire de gérer les fenêtres correctement.
Le projet awesome
Caractéristiques
awesome (sans majuscule) est un gestionnaire de fenêtres libre écrit pour X11 (
système de fenêtrage utilisé sur la plupart des distributions GNU/Linux et BSD) qui a commencé il y a un an par une réécriture du code de
dwm (en), qui s’inspire lui même de
larswm. Voici la liste des principales fonctionnalités intéressantes de awesome :
- des tags peuvent être assignés aux fenêtres, leur permettant ainsi d'apparaître dans plusieurs groupes différents, pouvant êtres affichés simultanément ;
- il utilise le langage Lua pour sa configuration, ce qui permet d’ajouter un certain nombre de fonctionnalités (notamment des onglets et des tags dynamiques) en plus d’avoir un fichier de configuration facile à modifier ;
- on peut utiliser différents algorithmes pour gérer le positionnement, ce qui permet de s’adapter à un grand nombre d’utilisations ;
- de nombreux standards de bureaux (définis par freedesktop.org) sont supportés, ce qui permet par exemple d’avoir accès aux icônes de vos applications KDE ou GNOME ;
- le multi-écran est géré : ainsi, vos fenêtres ne seront pas coupées entre deux écrans différents ;
- etc.
Les nouveautés de la version 3
Il a beaucoup évolué en un an, comme le témoigne le
nombre de
changements apportés (plus d’un millier). Il est donc impossible de faire une liste complète, on peut cependant tenter de listes les plus importantes :
- la bibliothèque XCB est maintenant utilisée à la place de la Xlib : plus jeune, XCB permet notamment de communiquer de manière asynchrone avec le système de fenêtrage, n'obligeant ainsi plus awesome à attendre une réponse pour continuer son exécution. awesome est actuellement le seul window manager à l'utiliser ;
- la liste des positionnements possibles s’est encore allongée, à la grande joie des utilisateurs aimant personnaliser au maximum leur système ;
- de nouvelles options de configuration ont été rajoutées ;
- on peut accéder entièrement aux fenêtres via le langage Lua, ajoutant ainsi un grand nombre de possibilités de scriptage ;
- on peut assigner des actions automatiques à certains événements (déplacement du focus par exemple) ;
- il est possible de créer des widgets pour par exemple afficher plus d’informations dans la barre de statut ou dans la barre des fenêtres (disons par exemple la température, ou l’utilisation du processeur) ;
- et enfin plein d'autres petites choses qui font qu’awesome est de plus en plus abouti et agréable à utiliser.
Au final, awesome est un window manager qui, bien que jeune, semble avoir tout pour plaire aux adeptes de tiling window managers dynamiques, et est promis à un bel avenir : il est réellement novateur sans n’avoir rien à envier à ses concurrents. Attention cependant si vous voulez le tester : les bibliothèques utilisées sont très récentes et pas toujours disponibles par défaut pour toutes les distributions (Ubuntu, notamment). Il existe cependant de la
documentation (en) à ce sujet.
Awesome WM en action
Liens relatifs
Merci à Dark-Side, Katen, lasts et rayman pour les captures d'écrans.
56 Participations
Connectez-vous !
Connectez-vous !
Revenir à la liste des news