Retrouvez cet article dans : Linux Pratique 35
Le Novell Linux Desktop (NLD), présenté par Novell à Solutions Linux 2006, est une preuve de l'intérêt grandissant des grands éditeurs envers les bureaux en 3D. Plus généralement, les "beaux" bureaux séduisent de plus en plus d'utilisateurs. Ceux-ci sont friands des effets graphiques de qualité, des fenêtres qui virevoltent, des effets de transparence, etc. Et même si tout cela est loin d'être indispensable !
L'affichage graphique sous Linux
X Window System (aussi appelé X Window, X11 ou encore X) est un système basé sur le protocole X, permettant de gérer l'affichage graphique sur les environnements de type Unix. X est le protocole de communication utilisé entre les applications et le terminal graphique (le serveur X). Ce protocole définit la manière dont les applications doivent être affichées à l'écran. Il permet en outre l'exportation de l'affichage sur des machines distantes. X a été développé par le MIT au milieu des années 80 et est largement utilisé depuis sur les bureaux Linux.
X se compose en fait de deux éléments, car son fonctionnement est basé sur le modèle client/serveur :
- le logiciel serveur X, qui reçoit et traite les requêtes d'affichage, les saisies au clavier et les déplacements de la souris:
- un logiciel client X, qui se connecte au serveur X et lui envoie les requêtes d'affichage.
Parmi les différents clients X, on peut évoquer notamment le gestionnaire de fenêtres, chargé de gérer l'affichage, le déplacement ou encore le redimensionnement des fenêtres des différentes applications. Il faut bien distinguer ces "gestionnaires de fenêtres" (ex. : Metacity, Enlightenment, FluxBox, etc.) des "environnements graphiques" (Gnome, KDE, XFCE, etc.). En effet, un environnement graphique contient lui-même un gestionnaire de fenêtres.
Sous Linux, il existe deux implémentations libres du système X-Window : il s'agit de XFree86 et X.org (nous allons voir ci-après que le caractère "libre" de XFree86 est cependant remis en question...). Pendant longtemps, XFree86 était l'implémentation phare de X sur les distributions GNU/Linux. Cependant, on lui a ensuite reproché un certain retard sur les avancées technologiques, dû à un manque de réactivité de la part de quelques développeurs du projet. En outre, la version 4.4 de XFree86, sortie en février 2004, a vu sa licence changée, le rendant incompatible avec les termes de la licence GNU GPL. De ce fait, plusieurs distributions ont refusé d'inclure XFree86 4.4 dans leurs nouvelles versions et ont préféré migrer vers X.Org.
X.Org est basé sur la même architecture que XFree86. Sa première version (X11R6.7.0) est basée sur XFree86 4.4 RC2, à cause de la nouvelle licence de XFree86 4.4. Un bon nombre de développeurs des anciennes version d'XFree86 se sont d'ailleurs joints au projet X.org. Celui-ci a déjà été adopté par Debian, Gentoo, Fedora Core, Slackware, SuSE, Mandriva Linux, Cygwin, Ubuntu, OpenBSD et FreeBSD à la place de XFree86.
L'un des avantages de X.org (dernière version : X11R7.0 – décembre 2005) par rapport à XFree86 (dernière version : 4.5.0 – mars 2005) est le support de la transparence et des ombrages. Il contient également quelques pilotes en plus. À cause des problèmes de licences posés par Xfree86, X.org devient de plus en plus populaire et tend à évincer complètement son "concurrent".
Pour les effets 3D : OpenGL
Open Graphic Library, communément appelée OpenGL, est une API (autrement dit une interface de programmation) regroupant divers outils et fonctions graphiques permettant de réaliser de jolis effets en 3D. Initiée par Silicon Graphics Inc. (SGI), elle est disponible sur toutes les plateformes et, de ce fait, est utilisée dans de nombreuses applications scientifiques et industrielles, mais aussi pour la réalisation de jeux en 3D (Quake, Doom 3, Medal of Honor, etc.). Sa concurrente directe est la bibliothèque DirectX, créée par Microsoft Windows qui, elle, ne fonctionne qu'avec les applications Windows.
Afin d'uniformiser les fonctions 3D des différents systèmes d'exploitation, une "spécification" OpenGL a été créée. Elle est dirigée par l'OpenGL Architecture Review Board (ARB), un consortium formé en 1992 par plusieurs entreprises du domaine, notamment 3Dlabs, Apple, ATI, Dell Computer, IBM, Intel, NVIDIA, SGI et Sun Microsystems, qui font partie des membres votants (d'après le site officiel d'OpenGL – mars 2006). Le rôle de l'ARB est de "surveiller" l'évolution d'OpenGL. Il est chargé en outre de mettre en place des tests de conformité et de valider (ou non) les nouvelles fonctionnalités proposées pour OpenGL. L'établissement d'un tel "standard" permet ainsi aux constructeurs d'ajouter facilement de nouvelles fonctionnalités sous forme d'extensions.
Mesa (dernière version : 6.5 – mars 2006) est une implémentation libre d'OpenGL sous Linux, développée par Brian Paul. Mesa implémente toutes les fonctions d'OpenGL, excepté une petite partie des textures. Elle est de plus compatible avec AUX, GLU et GLUT, des bibliothèques de fonctions pour OpenGL.
Un bureau en 3D n'est pas seulement agréable pour les yeux. Les environnements 3D offrent en effet un espace considérable puisque l'on peut redimensionner, déplacer, cacher les fenêtres des applications à volonté. Un moyen efficace d'élargir et d'organiser au mieux son poste de travail ! En contrepartie l'utilisateur s'expose à une plus grande consommation des ressources matérielles, puisqu'il peut ouvrir davantage d'applications sans vraiment s'en rendre compte (car l'encombrement sur le bureau ne se fait plus sentir...).
Le projet XGL : "l'autre" serveur X
Le projet XGL est un autre type de serveur X, développé par David Reveman (équipe Novell), basé sur OpenGL et la bibliothèque Glitz. XGL (aussi appelé Xglx) est en fait un client X qui a besoin d'un serveur X (X.org) pour fonctionner (un peu à la manière d'Xnest 1). Cette dépendance vis-à -vis de l'accélération OpenGL d'un serveur X étant gênante, on parle déjà d'un successeur pour XGL. Il s'agit de Xegl. Xegl est en effet un type de serveur directement intégré à X, qui permet l'affichage sans passer par un serveur X sous-jacent.
XGL permet d'utiliser les capacités 3D des cartes graphiques modernes. Ainsi, un environnement de bureau utilisant XGL comporte divers effets d'affichage tels que la transparence et la rotation des fenêtres, les ombrages, etc. Le projet est aujourd'hui en développement très actif, car il lui manque encore certaines fonctionnalités importantes. D'ores et déjà , XGL supporte un grand nombre de pilotes de cartes graphiques. Les sources de XGL ont été libérées très récemment (début janvier 2006), et sont incluses dans le projet freedesktop.org 2.
Vous avez sans doute beaucoup entendu parlé de XGL au mois de février dernier. XGL a en effet bénéficié d'une certaine publicité suite à la présentation publique du nouveau Novell Linux Desktop, lors du salon Solutions Linux. L'équipe de Novell a fait bonne impression auprès du public grâce à son nouvel environnement de bureau aux multiples effets visuels tels que des fenêtres transparentes et un bureau 3D sur lequel on peut effectuer des rotations.
XGL permet notamment des mouvements de fenêtres "gélatineux", une répartition des bureaux sur les faces d’un cube en 3D, une rotation de ce cube, des puissantes fonctions de zoom sans perte de qualité, la transparence des fenêtres, des fonds d'écran 3D, etc.
Le rôle de la carte graphique
La carte graphique, parfois appelée " carte vidéo " ou " accélérateur graphique ", est le composant de l'ordinateur chargé de convertir les données numériques en données graphiques pouvant être affichées à l'écran.
À l'époque des premières cartes graphiques, c'est le processeur central (CPU) des ordinateurs qui se chargeait de tous les calculs 3D mais, aujourd'hui, les cartes graphiques intègrent pour la très grande majorité des fonctions d'accélération 3D (on parle alors " d'accélération matérielle "). Ces cartes sont équipées de processeurs spécialisés dans le calcul de scènes graphiques complexes. Ce qui allège considérablement la charge de calcul des processeurs de la carte mère...
Les effets graphiques sont implémentés à l'aide d'un gestionnaire de fenêtres "spécial", utilisant OpenGL, développé par David Reveman lui-même : il s'agit de Compiz. Au fond, c'est grâce à lui que vous pouvez observer tous ces beaux effets graphiques. Notons que Compiz utilise la célèbre bibliothèque Cairo pour les fonctions vectorielles ainsi qu'un canal alpha pour la transparence. Il est en outre doté d’un système de plugins permettant de lui ajouter autant d’effets graphiques qu’on le souhaite.
NdR : Découvrez dès à présent les possibilités d'XGL en testant le liveCD inclus dans ce numéro ! (voir page 04)
Quelques exemples de "beaux" projets...
Looking Glass
Le projet Looking Glass, communément appelé LG3D, est un environnement de travail pour Linux et Solaris, sponsorisé par la société Sun Microsystems, et orienté vers les applications 3D. Basé sur Java, le langage de Sun, Looking Glass peut être porté sous tout type d'environnement, à savoir Linux, Mac OS ou encore Windows. Ce projet constitue une interface graphique d'un nouveau genre où chaque élément du bureau est un élément graphique en 3D. L'arrière-plan lui-même est un paysage en trois dimensions dans lequel vous pouvez faire évoluer le curseur de votre souris...
L'interface de Looking Glass se démarque non seulement par sa qualité esthétique, mais aussi par l'ergonomie apportée par un tel environnement de travail. Les fenêtres peuvent en effet être rangées, au sens propre du terme : un clic de souris et on déplace négligemment les fenêtres sur le côté de l'écran. Celles-ci se positionneront ensuite toutes seules...

On peut observer, entre autres choses, des fenêtres en rotation par rapport à la verticale ou à l'horizontale, des petites notes "collées" au dos des fenêtres du navigateur, un sélecteur de musique qui fait penser à un véritable juke-box, etc.
À noter que LG3D est disponible en version liveCD (basé sur Slackware), pour vous permettre de tester ce magnifique bureau (image ISO à récupérer à l'adresse suivante : https://lg3d-livecd.dev.java.net/).
- Dernière version : 0.7.1 – Octobre 2005
- Site officiel : https://lg3d-core.dev.java.net/
Novell Linux Desktop 10



Ceux qui étaient présents au salon Solution Linux 2006 (début février) ont peut-être eu l'occasion de découvrir le nouvel environnement de bureau présenté par Novell, et en particulier la distribution Novell Linux Desktop 10. Celle-ci, basée bien évidemment sur Suse mais intégrant des spécificités Novell, intègre une nouvelle interface en 3D, où les multiples bureaux virtuels de l'utilisateur sont agencés en forme de cube. Les fenêtres sont également dotées d'effets "spéciaux" (effets de transparence, magnétisme, déformation, fonctions de zoom, etc.). Sans oublier le switcher de tâches qui offre un aperçu de toutes les fenêtres.
L'utilisation de l'interface graphique est basée sur XGL (voir précédemment). Ce nouveau moteur de rendu graphique sera intégré dans la future SUSE 10.1 (qui devrait être disponible au moment où vous lirez ces lignes). La distribution Ubuntu 6.04 (ou plutôt 6.06 !) devrait elle aussi contenir XGL (ou plus exactement le couple XGL/Compiz). Elle sortira début juin 2006.
- Annonce et démos sur le site officiel :
http://www.novell.com/linux/xglrelease/
Enlightenment
Enlightenment, aussi appelé E est un gestionnaire de fenêtres pour GNU/Linux. Enlightenment a été conçu pour être à la fois léger et performant de manière à pouvoir être utilisé aussi sur des systèmes qui disposent de peu de ressources.
La prochaine version d'Enlightenment, E17, est en préparation depuis de nombreuses années. Selon son concepteur principal, Rasterman, cette version E17 représente "l'évolution vers une nouvelle génération d'environnements de bureau". En effet, il veut faire d'E17 non pas un simple gestionnaire de fenêtres, mais un véritable Desktop Shell (c'est-à -dire qu'il combinerait à la fois les fonctions d'un gestionnaire de fenêtres et celles d'un gestionnaire de fichiers). Pour cela, E17 s'appuie sur un nouveau jeu de bibliothèques appelées "EFL" pour Enlightenment Foundation Libraries.
Selon Rasterman, E17 ne suivra pas la voie d'OpenGL. En effet, E17 est conçu pour être léger, rapide et portable, et son concepteur ne veut pas que son projet soit dépendant d'OpenGL. La dernière version stable d'Enlightenment (E16) est la version 0.16.8 (disponible en téléchargement sur le site officiel). Des binaires sont disponibles pour la plupart des distributions (Debian, Ubuntu, Fedora Core, Gentoo, etc.)
Deux distributions incluent actuellement Enlightenment :
- Elive : une distribution live, basée sur Debian (plus précisément Morphix). Mais à la place de Gnome ou KDE, vous disposerez de E16 ou E17 (au choix). Ainsi, vous aurez l'occasion de découvrir de nouveaux outils comme le visionneur d'images Exhibit, le ripper de CD Extrackt, le lecteur PDF Epdf, le gestionnaire de fichiers Entropy, etc. Vous constaterez que cette version de démonstration procure un système rapide, simple, mais néanmoins puissant. L'équipe de développement d’Enlightenment n'est pas à l'origine du projet Elive, mais elle le soutient. Ce CD est donc un bon moyen de se faire une idée de la nouvelle version de cet environnement graphique original. (dernière version stable 0.4.2 – mars 2006 – téléchargement : http://elivecd.ath.cx/fr/Telechargement/Stable/)


- Ebuntu, un projet de distribution Ubuntu comprenant l'environnement graphique E17. Aucune annonce officielle n'a été faite pour le moment. Cependant, les packages ainsi qu'une procédure d'installation sont d'ores et déjà disponibles sur le wiki dédié : https://wiki.ubuntu.com/Ebuntu. Le liveCD devrait être disponible bientôt, et le CD d'installation devrait arriver ultérieurement. La distribution tiendrait sur un seul CD, mais inclurait Abiword, Gnumeric et Sylpheed Claws à la place d’OpenOffice et d’Evolution.
- Dernière version : 0.16.8.1 (Mars 2006)
Site officiel : http://www.enlightenment.org/ - (Site français : http://fr.edevelop.org/)
1 Xnest est une application qui permet de lancer un système de fenêtrage virtuel dans le serveur X.
2 Le projet freedesktop.org est un lieu d'échange et de collaboration entre différents projets libres (Gnome, KDE, X.org, Gstreamer, etc.), qui a pour but de garantir l'interopérabilité des environnements graphiques sous GNU/Linux. Soulignons que Freedesktop n'a pas pour objectif de standardiser les interfaces, mais d'harmoniser leur infrastructure (fonctions de copier/coller, raccourcis clavier, etc.).

