En route pour compiz 0.9

Un des développeurs de compiz publie une suite d’articles en préparation de la prochaine version de compiz.

Pour rappel, cette version 0.9 sera une réécriture complète de compiz, passant du C au C++. L’initiateur de cette réécriture (un autre développeur) a posté une feuille de route pour cette réécriture qui a commencée en fin d’année 2008. On peut citer:

  • la séparation des « moteurs », OpenGL et composition (XRender) dans des plugins séparés, permettant en théorie à compiz de tourner sans avoir besoin ni d’OpenGL ni de la composition (comme un gestionnaire de fenêtres normal)
  • Réorganisation du système de plugins (voir ci-dessous).
  • Utilisation de CMake
  • Réécriture en C++
  • Effet de simplification, le support du multi-affichage (plusieurs serveurs X) et du multi-cartes serait abandonné, mais le multi-écran type xinerama ou RANDR 1.2 (multi-head) serait maintenu.

Je vous propose un petit résumé des ces articles, avec quelques commentaires.

Le premier revient sur la nouvelle architecture de compiz, plus modulaire car plus orientée objet que l’originale. C’est l’une des raisons du passage au C++, car l’écriture orientée objet étant, selon les développeurs, plus simple qu’en C. Le futur compiz va reposer sur des plugins qui pourront être facilement dérivés pour élargir leurs fonctionnalités. Par exemple, le plugin cubeaddon sera une extension du plugin cube, en ajoutant des fonctionnalités. Il y aura même des plugins « bibliothèques », ne faisant que fournir des fonctionnalités aux autres plugins (exemple, le plugin texte). Cela permet de mieux organiser le code, d’éviter d’en réécrire, et permet d’étendre plus facilement les fonctionnalités des plugins.

Le deuxième apporte des réponses à 2 questions récurrentes : la prévisualisation des fenêtres minimisées, et l’input redirection.

Comme vous avez du le remarquer, quand une fenêtre est minimisée, il n’y a aucune prévisualisation possible (dans scale, la barre de tâches, le switcher etc …). Cela vient du fait que le serveur X ne surveille plus les fenêtres qui sont minimisées. L’auteur cite plusieurs solutions, en allant du bidouillage vers la solution la plus « propre » selon lui :

1. Prendre une photo de la fenêtre avant d’être minimisée, et l’afficher quand on la demande. C’est la solution actuelle et ne fournit donc pas de prévisualisation.

2. Temporairement dé-minimiser les fenêtres. L’auteur n’est pas un fan, car cela engendrerait beaucoup de bidouilles pour rendre cette méthode utilisable.

3. Dire aux fenêtres qu’elles sont minimisées, les animer comme cela, mais en réalité, ne pas les minimiser et ne pas les afficher. Cela permet de disposer des informations de la fenêtre pour avoir une prévisualisation, mais ça mets un peu le bazar dans la gestion des fenêtres (elles pensent être minimisées, mais en fait non :)).

4. Ne pas dire aux fenêtres qu’elles sont minimisées, mais les animer comme si elles l’étaient, et ne pas les afficher. Cela permet aux fenêtres de se comporter comme si elles étaient affichées (les vidéos continuent), mais elles seraient quand même en attente d’interaction avec l’utilisateur (exemple des jeux).

Même si les solutions 3 et 4 sont définitivement les meilleurs (KWin et Mutter semblent avoir une option comme cela), cela engendrerai du boulot non négligeable, soit au niveau du serveur X, soit au niveau de la standardisation des gestionnaires de fenêtres (EMWH).

Au final, aucune solution n’a encore été décidée, donc ne vous attendez pas à avoir cette fonctionnalité tout de suite dans compiz.

La deuxième question concerne l’input redirection, qui tarde toujours à arriver. Il semble que tous les développements côté X soient faits, mais pas encore été intégrés officiellement. Donc en bonne voie, mais comme depuis plusieurs mois 😦

On attends maintenant la suite sur les nouvelles fonctionnalités de cette version de compiz. En espérant qu’une année de réécriture va porter ces fruits.

Awn 0.4 en beta test

Après des mois de développement, la réécriture complète du dock Awn est enfin disponible pour les testeurs, dans une version « beta ». Pour les utilisateurs d’Ubuntu, des paquets sont disponibles sur le dépôt PPA Awn-Testing (paquets avant-window-navigator-trunk). Attention, ce n’est pas une version définitive, mais elle a été jugée par les développeurs suffisamment stable pour être testée à grande échelle.

Au programme, beaucoup d’améliorations avec toujours le même but : un dock simple, facile à utiliser, et le plus ergonomique possible. Voici une liste des améliorations les plus visibles :

Positionnement du dock : enfin, vous pouvez positionner le dock en haut, en bas, à droite ou à gauche de l’écran ! On peut également régler la distance par rapport au coin (exemple, en bas complètement à gauche). A noter également qu’il gère très bien le multi-écran (positionné à gauche, les fenêtres restent maximisées à droite).

Nouveaux styles : de nouveaux styles de dock sont disponibles

Incurvé (curved) :

curved

Volant (floaty) :

floaty

En coin (edgy) (à noter que l’élément à gauche peut être n’importe quel applet) :

edgy

Mode étendu : le dock peut être étendu sur toute la largeur de l’écran. (Screencast)

Auto-hide automatique (auto-hide) a été complètement revu. Il existe plusieurs modes : auto-hide, mise en transparence (le dock devient transparent plutôt que de disparaitre), ou mise automatiquement en dessous (chaque fenêtre couvre le dock).

Un nouvel effet simple (juste mise en surbrillance).

Mode lanceurs seulement : Permet d’avoir uniquement un dock avec les raccourcis pour lancer les applications, sans la liste des fenêtres ouvertes. (Screencast)

Intellihide (ou auto-hide intelligent) : Détermine automatiquement si le dock doit être caché ou non. Par exemple, si une fenêtre est maximisée, le dock se cache automatiquement. Si cette même fenêtre redevient normale, le dock réapparait. C’est une fonctionnalité présente à l’origine dans Gnome-Do (Screencast).

Groupage de fenêtres : Lorsque plusieurs fenêtres d’une même application sont présentes, elles se regroupent automatiquement sous une même icône. Il y a toujours la possibilité d’interagir avec toutes les fenêtres. (Screencast), mais rien ne vous empêche de revenir à la configuration précédente (Screencast).

group

Améliorations des icônes : Vous remarquerez surement que les icônes sont plus belles (ou moins laides, c’est selon). Ce n’est pas qu’une impression, Awn utilise maintenant la même icône que vous avez au niveau du menu GNOME, plutôt que celle de la fenêtre. C’est notamment flagrant pour les icônes OpenOffice, qui était avant horrible.

Glisser & Déplacer des fenêtres : vous pouvez désormais déplacer les icônes des fenêtres en faisant un simple glisser & déposer (vérifier que l’option Drag & Drop est activée dans l’onglet avancé de Awn-settings, voir juste après).

Animation du chargement / crash d’applet : Quand un applet est en train de charger, il y a maintenant une petite animation en cercle pour montrer que l’applet est en train de se lancer. De même, une « tête » apparait maintenant quand l’applet plante. Un double clic sur cette « tête » permet de relancer l’applet.

anim

Mode Docklet : Les applets ont maintenant la possibilité de prendre toute la barre pour afficher des informations (cf ici l’applet Log out). Inspiré aussi d’une fonctionnalité Gnome-Do.docklet

Awn-settings : le nouveau gestionnaire de paramètres s’appelle Awn-settings (Awn-manager n’existe plus). L’ergonomie a été un peu revu (et risque d’être encore revu avant la sortie officielle). On peut noter quand même le glisser & déposer pour les applets, les catégories pour les applets, et un onglet « Avancé », pour modifier les options cachées. A noter que ces options ne sont pas encore toutes dans Awn-settings, le mieux étant d’utiliser gconf-editor. Il existe notamment la possibilité de modifier ou non les icônes du dock.

Utilisation de libdesktop-agnostic : créé par Mark Lee, un développeur de Awn, cette bibliothèque permet de développer la gestion des paramètres une fois et qu’ils puissent fonctionner avec tous les systèmes supportés (pour l’instant gconf ou un simple fichier .ini). Il en va de même pour la gestion des volumes comme GIO, gnome-vfs et thunar-vfs. Encore expérimentale, elle permettra de ne dépendre que des éléments déjà installés sur le système (évitant d’installer des dépendances GNOME si vous installer Awn sous XFCE).

Support non-composite : permet de faire tourner Awn sans avoir besoin du composite, donc sans compiz, ou avec metacity avec son paramétrage par défaut.

Quand aux applets, ils ont été principalement portés vers cette nouvelle version, et améliorés. Par exemple, la zone de notification est maintenant transparente, l’applet Corbeille a été réécrit pour fonctionner sur tous les environnements …

Voilà pour les principales améliorations visibles, le gros du travail ayant été de réécrire toute l’application « sous le capot », permettant d’implémenter des fonctionnalités plus facilement, et quelques fois étonnantes.

Avant-window-navigator (Awn) sort en version 0.3.2

1 an après la 0.2.6, la nouvelle version de Awn (Avant-window-navigator) est sortie. C’est le résultat d’un an de travail, avec principalement des corrections de bugs, des optimisations, et de nouveaux applets.

Pour ceux qui ne connaîtraient pas Awn, c’est un lanceur d’applications qui ressemble au dock Mac OS X.

Le dock de mhr3, un développeur de Awn. Image licencée sous WTFPL.

Le dock de mhr3, un développeur de Awn. Image licenciée sous WTFPL.

Plus d’informations sur le site du projet ou sur le wiki.

Au programme :

  • Une option pour démarrer le dock automatiquement au démarrage.
  • Un message d’erreur plus visible si le dock ne démarre pas.
  • La plupart des icônes d’applets peuvent maintenant être modifiés par simple « glissé & déposé »
  • Meilleure compatibilité avec Metacity.

Nouveaux applets :

  • Animal Farm: Des animaux qui racontent de belles histoires
  • Cairo Clock: Une pendule avec support des localisations
  • Comics!: Lecteur de comics en ligne.
  • CPU Frequency Monitor: Contrôle et surveille le processeur (utile pour des portables)
  • Desktop Manager: Change le papier peint du bureau pour GNOME et Xfce.
  • Media Player: Joue n’importe quel fichier que vous déposez dessus.
  • ThinkHDAPS: Surveille l’accéléromètre pour les disques durs IBM/Lenovo ThinkPad.
  • PyNot: Une zone de notification configurable
  • Remember The Milk: Une interface simple au site.
  • To-do: Une « todo » liste.
  • Tomboy: Une interface simple à Tomboy.

A noter que les options cachées dont je parlais ici sont toujours là.

Revue de presse  :

  • L’annonce complète faite par un développeur.
  • L’article chez OS News.

Téléchargements

  • Téléchargement de Awn-core
  • Téléchargement de Awn-extras
  • A noter que des paquets Ubuntu sont fournis par le projet via un PPA.

Quand aux paquets « officiels », ils sont en cours de validation chez Debian, pour redescendre juste après sous Ubuntu. S’il n’y a pas de problème, la 0.3.2 devrait faire parti de Jaunty.

Le développement ne s’arrête pas là. En parallèle de cette version, la réécriture complète du dock est en marche. Ce n’est toujours pas utilisable à grande échelle, mais maintenant que la 0.3.2 est sortie, le développement va se porter principalement sur cette branche, qui devrait amener à la 0.4.0. Beaucoup de changements sont programmés, tous ne seront peut être pas de la partie. Mais il y a déjà des choses sympathiques, comme le positionnement de la barre en haut et sur les côtés, la fonction de masquage automatique grandement améliorée, une mise à jour automatiquement des options 🙂 Mais bien d’autres choses sont en préparation 🙂

La folie des onglets sous GNOME (mise à jour)

Mise à jour : A part pour Nautilus, ils semblent bien que les infos sur les onglets soient faussent. Encore une folie qui découle d’une nuit trop arrosée à GUADEC 🙂

Il y a quelques jours avait lieu GUADEC, la réunion annuelle des développeurs GNOME. Depuis, il semble qu’un vent de folie souffle sur ces développeurs : la folie des onglets.

On connaissait déjà les onglets sous Nautilus :

on pourrait également utiliser les onglets pour Totem :

mais aussi dans Banshee :

dans Empathy aussi :

ou encore pour la calculatrice GNOME :

Et je suis sûr qu’en attendant quelques heures/jours, il y en aura d’autres.

Je suis également sûr que certains vont crier au scandale, que cela est inutile, que cela n’a aucun sens … Pour ma part, je trouve cela surtout très marrant 🙂 C’est sûr que dans certains cas, c’est moins pratique/utile que dans d’autres. Mais après tout, il suffira de ne pas faire Ctrl + T 🙂

NB : les images sont extraites des blogs respectifs.

GNOME devient « fou »

Hier, j’ai pris connaissance de la Roadmap de GNOME pour la version 2.26 ainsi que des projets Google Summer of Code de cet été aussi pour GNOME. J’ai eu un peu de mal à croire tout ce qu’il y avait d’écrit.

Sans être véritablement révolutionnaire au sens « KDE4 » du terme, la prochaine version de GNOME va amener pas mal de changements qui pour un GNOMEiste de longue date peut faire sourire. Voici quelques exemples que j’ai noté.

Nautilus avec des onglets ?

La Roadmap de Nautilus spécifie une énigmatique « Tabbed interface ». Cela veut-il dire des onglets ? Une vue séparée ? Aucun détail n’est donné mais cela pourrait être la fin d’une des plus vieilles demandes d’amélioration pour GNOME ! Pourtant, c’est difficile à croire quand on sait que le mode spatial doit servir à dépasser ce mode par onglet. J’ai aussi du mal a croire que les développeurs aient le temps de développer cela alors que gio/gvfs est encore loin d’être parfait …

Roadmap de Nautilus

1 papier peint par bureau ?

Qui n’a jamais voulu mettre un papier-peint différent sur chacun de ses bureaux GNOME ? Qui n’a jamais voulu mettre un papier-peint par face du cube ? Alors oui, on peut le faire avec Compiz. Mais l’avoir directement dans GNOME, ça serait mieux quand même. Et bien, c’est l’un des projets sponsorisés par Google pour le SoC (Summer of Code). On peut donc espérer avoir cette nouvelle fonctionnalité pour la prochaine version.

GSoc correspondant

Compatibilité Viewport/Workspace

Je n’ai jamais compris pourquoi les bureaux sous GNOME et Compiz n’était pas compatibles (je n’ai jamais cherché à comprendre aussi :)) Mais il semble que cela va enfin changer. La bibliothèque GNOME qui sert à gérer ce genre de chose va essayer de rendre compatible Viewport et Worspace. Cela devrait aussi faciliter le papier-peint multiple (voir ci-dessus).

Roadmap de Libwnck

Webkit arrive en force.

Une autre évolution majeure et là certaine, c’est l’arrivée en force de Webkit sur le bureau GNOME. D’abord, c’est Epiphany qui a décidé de se baser uniquement sur Webkit dans l’avenir. Exit donc Gecko et le moteur de Firefox. D’autres programmes relatifs à GNOME devraient suivre la migration, comme Devhelp, Liferea et peut-être Evolution dans l’avenir.

Pour rappel, Webkit est le moteur de rendu utilisé par Safari et Konqueror notamment, donc OSX et KDE. C’est donc un rapprochement entre ces 3 environnements, et les développements seront donc mutualisés entre ces 3 environnements. Cependant, il ne faut pas oublier que Firefox/Gecko c’est envrion 20%-25% des navigateurs dans le monde 🙂

Pour rappel, Webkit est réputé être plus léger que Gecko et plus simple à utiliser, notamment autre part que dans un navigateur. Pour l’avoir essayé, il est effectivement un peu plus léger quand on ouvre pas mal d’onglets d’Epiphany. Mais Epiphany+Webkit n’est pas encore au niveau de Epiphany+Gecko en terme de fonctionnalités.

Un nouveau look

L’environnement graphique devrait aussi être un peu rénové avec quelques améliorations comme un nouveau fond d’écran, des nouveaux thèmes etc … De quoi donner un petit coup de jeune à GNOME.

Roadmap Artwork

Evolution sur Windows

Petite annectode, Evolution va être porté sous Windows, en plus d’amélioration diverses comme le meilleur support d’Exchange et de l’IMAP. Au moment où KDE et Kmail arrive sur Windows, les développeurs de GNOME vont chercher à montrer qu’ils peuvent aussi porter des applications 🙂

Migration continue sur GIO/Gvfs

Au rayon des améliorations, la migration de tous les modules vers GIO/GVFS va continuer.

Des sessions qui marchent

Dernière grosse evolution que j’ai pu lire : un nouveau système de session qui fonctionne bien. Allié à la réécriture de GDM, ça devrait donner un système de session qui tiens la route, avec pourquoi pas une page login sexy avec Clutter ? 😉

Roadmap GnomeSession

Liens utiles :