Pourquoi GNOME ?

Maintenant que Mark Shuttleworth vient d’annoncer l’abandon d’Unity 8 (et probablement celui de Mir), certains se posent la question du choix de GNOME sur les forums, plutôt qu’un environnement plus traditionnel comme peuvent l’être MATE ou Xfce.

Je vais donc profiter de l’occasion pour rappeler qu’un environnement de bureau ne se limite pas à la partie visible, que ce soit avec ou sans panel au bas de l’écran et autre menu principal.

Mais avant toute chose, il est important de rappeler qu’Ubuntu a toujours utilisé GNOME, ne remplaçant finalement que son shell par ce fameux Unity. Mais pour tout le reste, que ce soit les applications de base (gestionnaire de fichiers, éditeur de texte, visionneur d’images, agenda, contacts, terminal…), le centre de contrôle ou les technologies sous-jacentes (GTK+, GVFS, GStreamer, Cairo, D-Bus, dconf…), la majeure partie des différentes briques nécessaires pour pouvoir proposer un environnement complet, homogène, fonctionnel… provenaient du projet GNOME.

Ce même GNOME qui n’a aucun problème à s’appuyer sur des projets modernes tels que systemd, PulseAudio, NetworkManager… qui permettent de construire un environnement robuste et pleinement fonctionnel, parfaitement adapté à notre époque (technologies récentes, informatique dans les nuages, mobilité…), là où d’autres préfèrent partir dans des trolls sans fin, préférant voir l’utilisateur tout configurer par lui-même plutôt que de lui proposer un environnement qui juste marche.

Ensuite, et c’est le plus important, il ne faut pas limiter un environnement de bureau à un panel et un menu principal. Ça se doit d’être avant tout une plateforme proposant un certain nombre de technologies (bibliothèques, frameworks, couches d’abstraction, système de configuration…) facilitant le travail des développeurs tout en leur permettant de concevoir des applications qui seront parfaitement intégrées à l’environnement et qui pourront interagir les unes avec les autres.

Cinq jours avant l’annonce de Mark Shuttleworth, Dustin Kirkland, le chef de projet d’Ubuntu, intervenait sur Hacker News pour interroger la communauté et connaître ses retours et ses attentes quant à la version 17.10 d’Ubuntu. Une intervention suivie avec grand intérêt par Christian Schaller, le responsable de l’équipe Red Hat en charge de l’environnement de bureau GNOME. Deux jours avant l’annonce de Mark Shuttleworth, ce dernier publiait à son tour un long billet de blog pour rappeler que la majeure partie des demandes étaient déjà présentes dans Fedora au travers de GNOME, Wayland, libinput et autres technologies libres nécessaires pour obtenir un bureau pleinement fonctionnel.

Parmi les principaux points soulevés, on peut citer la prise en charge des écrans à haute densité de pixels, qui se trouvent être déjà fonctionnels sous GNOME avec une mise à l’échelle 2, et dont la mise à l’échelle fractionnée (par exemple, 1.5) devrait arriver dans Fedora 27, voir même dans Fedora 26 s’ils arrivent à tout finaliser dans les temps. Il en profite d’ailleurs pour rappeller qu’en plus de sa prise en charge dans GNOME, Red Hat a employé des développeurs pour que Firefox et LibreOffice puissent utiliser GTK+ 3 et être compatibles avec Wayland.

Pouvoir utiliser les pavés tactiles avec trois doigts ou plus. Pendant longtemps, on ne pouvait utiliser que des gestes utilisant maximum deux doigts. Là encore, dans le but de supprimer une telle limitation, Red Hat a mis des développeurs sur le coup pour créer libinput et améliorer les pilotes comme celui de Synaptics, qui utilisait encore le port de communication PS/2, ce qui limitait les possibilités.

Faire des progrès sur la consommation énergétique en cas d’utilisation d’un ordinateur portable. Là encore, Red Hat a embauché des développeurs pour investiguer, corriger ce qui pouvait l’être, discuter avec les fabricants de matériel en vue d’améliorer leurs pilotes (comme ceux de nVidia, qui ne sont malheureusement pas libres).

GNOME Battery Bench

Corriger les problèmes concernant l’UEFI. Là encore, un employé Red Hat est membre du comité UEFI, ce qui aide grandement à ce que tout se passe bien avec le libre. Tout comme ils ont également embauché des développeurs pour que la mise à jour des firmwares UEFI puissent se faire directement depuis la logithèque GNOME. Christian Schaller en profite d’ailleurs pour annoncer que normalement, d’ici la fin de l’année tous les principaux fabricants devraient fournir des mises à jour au travers du service fwupd qu’utilise la logithèque GNOME.

Wayland. Les utilisateurs d’Ubuntu réclamaient Wayland. Ça tombe bien, c’est le choix par défaut sous GNOME :p Christian Schaller annonce qu’en plus du multi-DPI, on devrait voir arriver la prise en charge du HDR (grande gamme dynamique) ainsi que la prochaine génération de machines hybrides (multi-GPU), en travaillant de concert avec nVidia pour s’assurer que leurs pilotes fonctionnent parfaitement sur des systèmes libres (comprendre, sans avoir à bidouiller).

Quelque chose comme Redshift. Pour rappel, il s’agit d’une application permettant d’ajuster la température de couleur d’un écran en fonction du moment de la journée. Et là encore, ça tombe bien, avant même qu’Apple ne propose son Night Shift avec macOS 10.12.4 ou Microsoft son Mode Nuit avec la Creators Update de Windows 10, GNOME proposait déjà un mode nuit dans GNOME 3.24.

Le mode nuit dans GNOME 3.24

Amélioration du processus de mise à jour des pilotes graphiques. Je ne vais pas le répéter à chaque fois (enfin si, un peu, ça permet de bien réaliser tout ce qu’aurait dû faire Canonical dès le début), mais là encore, Red Hat possède toute une équipe pour travailler sur la pile graphique Linux (Wayland, Mesa, les pilotes…). Et un projet important aura été le développement avec nVidia de la bibliothèque glvnd qui permet d’utiliser plusieurs implémentations d’OpenGL en parallèle. Finis le risque de voir le pilote nVidia écraser les fichiers de Mesa ou inversement. Plus besoin non plus d’une bidouille à la Bumblebee pour utiliser son APU au quotidien, puis basculer facilement sur le GPU de la carte dédiée quand on souhaite se faire une petite partie de jeu vidéo.

Amélioration de la prise en charge des imprimantes. Là encore, plusieurs développeurs Red Hat s’assurent que CUPS (qui est un projet Apple, pour l’anecdote) fonctionne parfaitement bien. Et côté GNOME, la version 3.24 offre désormais une gestion des imprimantes bien plus simple et efficace.

Meilleure prise en charge du Bluetooth. Là encore, il y a plusieurs développeurs Red Hat sur le coup. Et parmi les changements à venir (sans doute dans PulseAudio 11), on peut citer par exemple une modification de Christian Kellner qui améliorera le choix des périphériques par défaut. Actuellement, PulseAudio privilégie la carte audio PCI, suivi des cartes audio USB, pour finir par un périphérique Bluetooth. À l’avenir, les choix par défaut devraient être plus logiques. Si l’on branche une carte audio USB, c’est sans doute que l’on ne souhaite pas utiliser le chipset audio fournit de base avec la carte mère. Même chose pour les micro-casques, dont la sortie audio n’était pas automatiquement redirigée vers ces derniers. Autre apport intéressant, le rapport d’état de la batterie de certains modèles devrait également faire parti des changements à venir.

Tout ça pour conclure que si l’on regarde honnêtement des bureaux comme MATE ou Xfce, qui ne gèrent pas ou de façon limitée tous les points soulevés (et tous n’ont pas été abordés, comme la prise en charge des services en ligne, la compatibilité Microsoft Exchange nécessaire aux entreprises, de meilleures applications de productivité (agenda, contacts…), la documentation, le design et l’ergonomie…), on comprend mieux le choix de Canonical de continuer à privilégier GNOME.

D’autant plus que rien ne les oblige à proposer un GNOME vanilla. Ils pourraient très bien adapter leur dock ou proposer certaines extensions par défaut.

Sortie de la première beta de GNOME 3.22

Le 22 août, Frederic Peters a annoncé, avec cinq jours de retard sur le planning initial, la sortie de GNOME 3.21.90, première beta devant donner lieu à GNOME 3.22. Une deuxième beta étant prévue fin août, suivi d’une release candidate mi-septembre, avant la sortie de la version finale, prévue quant à elle pour le 21 septembre.

Cette beta marquant le gel des API/ABI, des fonctionnalités ou des interfaces utilisateur, à quelques rares exceptions près, plus aucune nouveauté ne devrait faire son apparition. Nous pouvons donc d’ores et déjà jeter un œil aux différents changelogs pour voir ce que cette future version nous réserve.

Et pour être franc, je dois dire que je suis un peu déçu. Alors oui, il y a pas mal de petits changements bienvenus par-ci par-là, mais rien de réellement transcendant. Aucune killer feature qui ferait baver les gens d’envie et les pousserait à migrer. Pire encore, un certain nombre de modules, et pas des moindres, n’ont pas reçu la moindre mise à jour durant ce cycle.

La liste des différentes applications est classée par ordre alphabétique, avec le nom des modules entre parenthèses. Ne sont listées que les améliorations touchant directement les utilisateurs finaux, et plus encore les nouvelles fonctionnalités. Sont ainsi passées sous silence les milliers de corrections de bugs, réusinage de code et autres améliorations qui ne concernent que les développeurs.

  • Agenda (gnome-calendar) : on peut désormais changer de mois au clavier; tous les événements du mois peuvent être vus en cliquant sur le nom du mois; la navigation dans la vue année a été grandement améliorée; implémentation du glisser-déposer des événements; la boîte de dialogue d’édition des événements a été améliorée; ajout de la prise en charge des alarmes; partage du numéro de semaine avec GNOME Shell.
  • Analyseur d’utilisation des disques (baobab) : la vue périphériques et emplacements a été légèrement retravaillée.
  • Bluetooth (gnome-bluetooth) : prise en charge des joysticks.
  • Builder (gnome-builder) : nouveau système de recherche et de remplacement; nouvelle barre de compilation qui fournit des informations sur la configuration, la branche du système de gestion de versions et autres informations importantes; un nouvel outil pour le profilage de code basé sur Sysprof; amélioration des modèles de projets; ajout d’une interface de configuration des logiciels de gestion de versions; amélioration de la prise en charge de Vim; nouveau greffon de gestion des couleurs; amélioration de l’interface concernant la commande git clone, le sélecteur de fichiers ou l’assistant; nouvelle icône.
  • Cartes (gnome-maps) : utilise désormais Mapbox. Plutôt que de passer par un proxy pour éviter une nouvelle interruption de service en cas de changement de fournisseur de tuiles, un fichier service.json est désormais téléchargé depuis les serveurs de GNOME pour savoir quel fournisseur de tuiles utiliser directement, ce qui rend l’affichage bien plus rapide.
  • Cheese : le nom du sous-répertoire de destination des photos et vidéos est désormais traduit.
  • Comptes en ligne (gnome-online-accounts) : prise en charge de la connexion au service Pocket depuis un compte Firefox.
  • Disques (gnome-disk-utility) : meilleure prise en charge de Wayland et correction de divers problèmes concernant l’utilisation de l’application en dehors de GNOME.
  • Documents (gnome-documents) : prise en charge initiale du format ePub dans Livres, ajout du plein écran et du mode nuit dans la barre d’outils.
  • Éditeur dconf (dconf-editor) : l’interface a été entièrement revue sous forme de fenêtre unique, permettant l’application différée de multiples modifications, ou d’appliquer récursivement les paramètres par défaut à toute une arborescence. Les clés sans schéma peuvent désormais être supprimées. La navigation au clavier a également été améliorée.
  • Evolution : utilisation de WebKit2 en lieu et place de WebKit1 pour l’affichage des courriels, contacts, tâches, mémos ou pour la composition des messages, ainsi que plusieurs dizaines de corrections de bugs et autres améliorations.
Fichiers 3.21 (version de développement)
  • Fichiers (nautilus) : les deux menus de la barre d’en-tête ont été fusionnés, offrant désormais un bouton pour basculer rapidement entre la vue en liste et la vue en grille, et un autre bouton pour effectuer toutes les actions habituelles; prise en charge de la décompression d’archives au sein même de Fichiers sans passer par une application externe; l’option de tri Nom a été remplacée par deux options de tri A-Z et Z-A; le zoom s’effectue désormais à l’aide de boutons + et -; en mode liste, quand on sélectionne un fichier ou un dossier, l’information du nom, du poids et du nombre d’éléments située en bas à droite disparaît désormais quand on passe le curseur au dessus, permettant ainsi de voir sans problème les informations concernant le dernier élément de la liste.
  • Gestionnaire d’archives (file-roller) : prise en charge de l’algorithme de compression de données LZ4.
  • GNOME Display Manager (gdm) : prise en charge du mot de passe LUKS pour déverrouiller gnome-keyring lors de la connexion (quand la connexion automatique est activée).
  • GNOME Shell (gnome-shell) : meilleure prise en charge de Wayland; implémentation du système de permissions qui demandera à l’utilisateur s’il souhaite partager sa géolocalisation ou autoriser l’accès à certains périphériques (webcam, microphone…) pour les applications sandboxées qui en feront la demande. Ainsi que plusieurs dizaines de corrections de bugs.
  • Grilo : ajout de nouveaux greffons pour la prise en charge d’AcoustID et de TheGamesDB.
  • GVFS : meilleure prise en charge des périphériques Apple iOS, ainsi qu’une bonne vingtaine de corrections de bugs, dont plusieurs causes de plantages.
  • Jeux (gnome-games) : prise en charge des consoles Atari 2600 et Atari 7800; prise en charge des jeux CD-Rom pour la PC-Engine et le Mega-CD; ajout d’icônes pour LÖVE et Nintendo DS; ajout des pochettes de jeu pour la plupart des consoles (les pochettes sont récupérées depuis TheGamesDB.net pour les consoles et le magasin Steam pour les jeux Steam); prise en charge des manettes de jeu.
  • Logiciels (gnome-software) : prise en charge initiale de Steam; prise en charge des extensions GNOME Shell; les boîtes de dialogues pour la mise à jour de la distribution ont été refaites; l’information concernant la taille des paquets est désormais séparée en deux : la taille à télécharger et celle nécessaire pour l’installation; prise en charge des paquets flatpak et snaps; ajout d’un bouton d’annulation et d’informations de progression sur la page de détails; l’origine d’un paquet est désormais indiquée quand ce dernier est disponible depuis plusieurs sources différentes; prise en charge des liens appstream://; ajout d’informations concernant les applications sandboxées.
  • Machines (gnome-boxes) : ajout d’une option de clonage; l’ordre d’affichage des différentes machines virtuelles est préservé d’une session à l’autre; n’utilise plus de caractères dans les hostnames qui poseraient problème sous Microsoft Windows; les nouvelles machines virtuelles n’exposent plus la connexion SPICE à tous les utilisateurs; prise en charge des URLS SPICE spice+unix; ajout d’une action Redémarrer et suppression de l’action Pause dans le menu contextuel du mode Affichage.
  • Musique (gnome-music) : ajout de nouveaux raccourcis clavier et de la boîte de dialogue listant les différents raccourcis clavier; meilleur tri dans les vues Artistes et Albums; la boîte de dialogue Liste le lecture autorise la création d’une nouvelle liste; les performances ont été grandement améliorées.
  • Mutter : meilleure prise en charge de Wayland; meilleures interactions entre les applications X11 et Wayland (tel que le copier-coller); prise en charge des périphériques d’entrée virtuels; ajout d’une API de capture d’écran; prise en charge des profils d’accélération pour les souris et les trackballs; prise en charge des framebuffers individuels, améliorant ainsi le multi-écran avec des résolutions différentes (typiquement, un écran standard et un autre en HiDPI).
  • NetworkManager : la fenêtre de configuration autorise désormais la connexion simultanée à plusieurs VPN.
Les nouveaux paramètres de GNOME (version de développement)
  • Paramètres (gnome-control-center) : mise en place d’une toute nouvelle interface, la grille d’icônes laissant place à une liste dans une barre latérale pour la navigation. Cette nouvelle disposition devant guider plus facilement les utilisateurs vers les options les plus importantes. L’ajout de nouvelles options devant être également facilité. Les modules réseau, son, écrans, utilisateurs, clavier, imprimantes… ayant également été retravaillés. La fenêtre est désormais redimensionnable.
  • Photos (gnome-photos) : prise en charge expérimentale du partage de photos (courrier électronique, Bluetooth, Google, Flickr…); possibilité d’annuler toutes les modifications effectuées sur une photo; on peut désormais exporter une photo depuis un service distant. Les fichiers GIFs étant mal pris en charge (les fichiers GIFs animés ne le sont pas toujours), ces derniers ne sont plus affichés pour le moment.
  • Polari : mise en avant des réseaux populaires; repli sur des serveurs alternatifs en cas d’échec de la connexion; prise en charge de la commande /close; prise en charge du collage de texte ou d’images depuis des fichiers; implémentation du glisser-déposer de texte ou d’images; amélioration de la mise en forme du texte (pseudonymes, messages système, horodatage, commande /me…); les messages qui ont été mis en surbrillance sont indiqués comme tel dans les journaux; ajout de raccourcis clavier pour se rendre plus facilement au début ou à la fin de la discussion.
  • Sound Juicer : mise à jour de l’interface; la recherche des métadonnées sur MusicBrainz est plus rapide; dans le cas où MusicBrainz serait surchargé, l’application retentera à nouveau la récupération des métadonnées; les pistes de données au début du disque sont désormais ignorées.
  • Terminal (gnome-terminal) : ajout d’une option dans le menu contextuel pour détacher un onglet; ajout d’un service systemd pour que les différents shells du terminal se terminent en même temps que le cgroup de l’utilisateur, mais que les sessions Screen ne soient pas tuées (voir le rapport de bug).
  • Tracker : prise en charge des fichiers DjVu; prise en charge du tag albumArtist dans les métadonnées des fichiers MP3.
  • Visionneur de documents (evince) : ajout d’une boîte de dialogue listant les différents raccourcis clavier; amélioration de la boîte de dialogue pour les annotations.
  • Web (epiphany) : ajout de la fonction « Coller l’URL et y accéder » dans la barre d’url; les pages d’erreur ont été retravaillées; autorise l’ouverture des fichiers WebP depuis le sélecteur de fichiers; ainsi qu’une trentaine de corrections de bugs et autres petites améliorations.

En ce qui concerne Terminal, ce dernier ne fournissant aucun changelog, j’ai du parcourir la liste des commits. Et en ce qui concerne Fichiers, ce dernier semblant être légèrement en retard sur son développement, aucune version de développement n’a encore été proposée, obligeant là-encore à parcourir la liste des commits ou se souvenir des différents billets de blog des développeurs.

Pour l’ensemble des modules, il se peut que je sois passé à côté de modifications intéressantes, comme il se peut que certains modules aient eu droit exceptionnellement à un peu plus de temps, et que toutes les nouveautés ne soient pas encore connues.

Maintenant, hormis pour d’éventuelles mises à jour de traductions ou de rares corrections de bugs, les modules suivants ne devraient recevoir aucune nouveauté :

Aide (yelp), Brasero, Calculatrice (gnome-calculator), Caractères (gnome-characters), Contacts (gnome-contacts), Éditeur de texte (gedit), Horloges (gnome-clocks), Journaux (gnome-logs), Météo (gnome-weather), Moniteur système (gnome-system-monitor), Mots de passe et clés (seahorse), Notes (bijiben), Sushi, Vidéos (totem), Visionneur de bureaux distants (vinagre), Visionneur d’images (eog).

Autre absence marquante, le graphe de scène qui devait faire son apparition dans GTK+ 3.22 pour effectuer plus de calculs sur la carte graphique et ainsi décharger le processeur central, ne sera malheureusement pas prêt à temps.

Si vous avez remarqué certains oublis ou autres erreurs grossières, n’hésitez pas à en faire part dans les commentaires ;)

Tests de performances OpenGL sur différents environnements de bureau

La mascotte Tux

Phoronix vient de publier un comparatif des performances de différents jeux et applications OpenGL sur différents environnements de bureau.

Et comme nous pouvons le constater, en ce qui concerne les performances des différents jeux vidéo, GNOME est loin d’être plus lent que d’autres environnements qui se veulent plus légers, tels que Xfce ou LXQt. En réalité, à une ou deux frames près, les différences ne sont guère perceptibles. Et il se trouve que GNOME prend même l’avantage sur certains tests.

Autre point important, les bien meilleures performances obtenues avec GNOME et Wayland, qui laissent présager le meilleur pour l’avenir.