slobberbone
je sais plus si je l'avais mis sur ce forum ou non ...
Bon afin que les choses soient claires à propos de XGL, compiz, AIGLX, beryl ... je vous propose ceci :
On a quelques fois du mal à s'y retrouver. Il existe beaucoup de tutos pour les installer, mais peu expliquent à quoi correspond toutes ces manipulations. Pourtant, si les gens savaient plus précisément ce qu'ils installent, ils seraient plus à même de chercher de l'aide au bon endroit. Voici donc un petit descriptif de tous ces termes qu'on retrouve autour de compiz & compagnie, en évitant d'être trop technique et trop complet. C'est un résumé qui omet délibérément certains éléments que je ne comprends pas assez bien pour les expliquer, ou qui pourraient embrouiller le lecteur.
Qu'est que le bureau 3D ?
Il y a d'abord un problème de langage. Quand on dit "Je veux installer XGL", on veut sûrement avoir les effets 3D du bureau (transparence, cube etc ...). Or XGL ne le fait pas, c'est compiz qui le fait (nous verrons les détails plus tard). Si on veut résumer le bureau 3D, c'est un ensemble d'effets qui rendent le bureau beaucoup plus attrayant. Cela peut être la transparence des fenêtres, des effets de vagues, une représentation cubique en 3D... Pour cela, on utilise la puissance 3D de la carte graphique (ce qui explique que la 3D doit être activée pour que cela marche).
Il existe plusieurs façons de l'obtenir, et cela existe sur d'autres plate-formes que Linux. Sous Mac OSX, il existe l'Expose qui réarrange toutes les fenêtres ouvertes pour toutes les avoir présentes sur un seul écran. Sous Microsoft Vista, la transparence existe, et les fenêtres apparaissent en cascade. Ici nous ne traiterons que de ce bureau 3D sous Linux.
Un peu de vocabulaire
L'environnement graphique est quelque chose d'assez complexe, fait de plusieurs couches. D'abord, il y a le serveur X.org. Il gère notamment l'affichage (ainsi que les interactions avec des périphériques). C'est la base de l'affichage sous Linux. C'est avec lui que vont intéragir les drivers des cartes graphiques. Mais ce n'est pas lui qui va dessiner les fenêtres. C'est le rôle du gestionnaire de fenêtres (WM pour windows manager). Ce programme va interroger le serveur X et s'appuyer sur ces capacités pour dessiner les fenêtres et gérer leur déplacements sur le bureau. Comme exemple de WM, on peut citer metacity, kwin, fluxbox ...
Mais alors qu'est que Gnome, KDE, XFCE ? Ce ne sont pas des WM, mais des environnements de bureau (DE pour desktop environnement), c'est à dire une somme de programmes pour avoir un environnement de bureau complet. Par exemple, Gnome possède un explorateur de fichier (Nautilus), un programme de messagerie (Gaim), de mail (Evolution), et un gestionnaire de fenêtres : Metacity.
Là ou c'est intéressant, c'est que tous ces programmes sont interchangeables. Vous pouvez très bien remplacer Evolution par Thunderbird, le système continuera à marcher. C'est aussi vrai pour les gestionnaires de fenêtres. Ainsi, il est tout a fait possible de remplacer metacity par kwin (le WM de KDE) ou fluxfox par exemple. De même, on pourrait remplacer X par un autre système d'affichage.
Comment avoir un bureau 3D ?
Maintenant que vous connaissez la base du système, voyons comment obtenir un bureau en 3D. Basiquement, il suffit d'avoir un WM qui gère le "composite" (compositor en anglais). C'est une extension qui permet d'obtenir des effets 3D. Actuellement, 3 grands WM permettent de le faire : metacity, compiz et beryl. Dans le futur, le WM de KDE 4 devrait pourvoir le faire aussi. Il suffira donc de remplacer votre WM par l'un des 3 (on a vu plus haut que c'est possible).
Seulement avoir, un WM adapté n'est pas suffisant. En effet, il faut que le serveur d'affichage puissent interpréter et restituer ces effets. De plus, il faut que la carte graphique puisse aussi restituer ces effets au travers du serveur X (donc des drivers adaptés). Nous avons donc besoin d'un serveur X et de drivers adpatés. Pour le serveur X, il faut une version 7.0 minimum. C'est pour ça qu'on ne peut installer un bureau 3D que sur une Dapper minimum, car c'est la première version d'Ubuntu à intégrer X en version 7.0.
Ensuite, nous avons besoin d'une instruction très précise : GLX_EXT_texture_from_pixmap (appelé plus tard tfp) Sans elle, pas d'effets. Cette instruction, il existe 2 façons de l'obtenir : soit par des drivers adaptés, soit en la fournissant par un programme tiers qui se greffe au serveur X. Actuellement, il y a 2 "programmes" permettant de faire cela : AIGLX et XGL. Enfin, seuls les derniers drivers Nvidia (9625) incorporent directement cette instruction tfp.
Détails des éléments
Compiz : C'est un WM expérimental développé par Novell. Ce fut le premier a introduire des effets impressionnants et en grand nombre. Disponible depuis mars 2006, ce fut une petite révolution, alimentant beaucoup de conversations, même dans la presse non spécialisé (il y a un article de 20 minutes sur ça). C'est une version développée uniquement par Novell, et dans les dépôts on la retrouve souvent sous le nom de compiz-vanilla, pour la différencier de la version compiz de QuinnStorm qui s'appellait avant simplement compiz.
Beryl : C'est un fork de compiz. Développé par la communauté compiz.net, ce projet qui s'appelait avant compiz-quinn, à été rebatisé car les très nombreuses modifications l'avait éloigné du compiz d'origine, d'ou l'appélation de fork (partant de la même base, mais prenant une direction différente). Pour des détails historiques, vous pouvez vous rapporter à ce petit résumé. Il possède beaucoup plus d'effets, la possibilité d'appliquer des thèmes, un outil de configuration graphique ... Il est réputé moins stable mais de nombreux utilisateurs l'utilisent en permanence sans avoir de graves bugs.
Metacity "with compositor": Le 3e WM permettant d'avoir un bureau 3D est metacity au minimum dans sa version 2.16. Il permet d'avoir quelques effets simples comme la minimisation/maximisation, transparence et explosion. Cependant, il n'est encore qu'en version de test, et pour l'activer, il faut recompiler metacity avec l'instruction --enable-compositor. Il devrait être par défaut dans la version 2.18 de Gnome.
XGL : Ce fut la première implémentation de l'instruction tfp au niveau d'un programme tiers. Créé par la même équipe qui développe compiz, XGL a été mis au point pour tester compiz. En pratique, il s'agit de lancer un 2e serveur X, pour permettre une meilleure interaction avec les drivers et de fournir l'instruction tfp. Seulement, lancer un 2e serveur X n'est pas sans conséquence : + de place en mémoire, des applications 3D inutilisables, problèmes de clavier etc ...Mais XGL fut pendant longtemps la seule possibilité de faire tourner compiz avec des drivers propriétaires, ces derniers n'ayant pas besoin d'être réécris. On peut aussi faire tourner XGL avec des drivers libres, mais l'intérêt est assez limité (voir AIGLX). C'est donc une solution ethiquement limite (les drivers fermés pouvaient le rester), techniquement bancale, mais très simple à mettre en oeuvre. De plus, ce n'est pas une solution viable dans le temps, car en résumé, ce n'est qu'un bidouillage pour faire fonctionner compiz.
AIGLX : En parallèle, Red Hat développa une autre façon d'obtenir l'instruction tfp. Par contre, celle-ci nécessite une réécriture des drivers, et donc inaccessible pour des drivers propriétaires. C'est pour cela que cette solution est adaptée aux cartes graphiques qui supportent des drivers libres. AIGLX fut intégré à X dans sa version 7.1, et donc ne nécessite plus l'ajout d'un 2e serveur X comme pour XGL. C'est donc une solution plus "propre" mais pas toujours possible.
Drivers Nvidia : pour les heureux possesseurs d'une cartes Nvidia de moins de 10 ans, il est possible avec les drivers 9625, d'avoir des effets 3D sans XGL ni AIGLX. En effet, l'instruction tfp est déjà intégrée dans les drivers, donc inutile d'avoir un autre programme en plus. C'est un peu la solution ultime car tout est géré au niveau des drivers et non d'un programme tiers.
Cas d'utilisations Enfin en résumé, voilà ce qu'on peut utiliser selon la carte graphique que l'on a, et le système d'exploitation Ubuntu. A noter qu'on peut utiliser XGL dans + de cas, mais cette solution étant moins viable, je l'ai délibérément exclus dans les cas ou il n'était pas nécessaire.
Cartes graphiques : Nvidia : drivers propriétaires 9625 ou XGL
ATI : drivers libres (radeon, r300) + AIGLX ou drivers propriétaires (fglrx)+XGL
Intel : drivers libres (i810) + AIGLX
Système d'exploitation : Dapper (6.06) : AIGLX et XGL installables. Drivers Nvidia 9625 théoriquement possible (à vérifier)
Edgy (6.10) : AIGLX installé par défaut, XGL et Drivers Nvidia 9625 installable
voilà ce que j'avais retenu au debut d'XGL & Co ...mpiz :hammer: