Table des matières

, ,

Icone

Extensions GNOME Shell

Le bureau GNOME Shell se complète avec des extensions bien utiles écrites en JavaScript. Ces extensions vous permettent d'ajouter/supprimer/modifier des fonctionnalités de l'interface : barre de tâches, dock, gestionnaire de presse-papiers, menus pour les emplacements favoris ou les applications, etc.

Si vous envisagez de faire de GNOME Shell votre environnement principal, alors il est plus que recommandé d'y jeter un coup d’œil.

Installer des extensions

Un vaste catalogue

La SEULE source d'installation recommandée par les développeurs de Gnome Shell est le site officiel extensions.gnome.org : un vaste catalogue d'extension y est disponible (ci-dessous), vous pouvez également y constater quelles sont les extensions les plus populaires, et y accéder à la liste des extensions présentes sur votre système (onglet "Installed Extensions").

Grâce à de petits interrupteurs, on peut installer, mettre à jour, activer ou désactiver les extensions proposées directement depuis le site (compatible avec les navigateurs Epiphany (Gnome Web), Firefox, et aussi Chromium/Vivaldi/Chrome si ils disposent de l'extension pour navigateur appropriée).

Pensez à y rechercher des extensions compatibles avec votre version de Gnome Shell grâce aux paramètres de recherche du site.

Le but du site officiel extensions.gnome.org est de proposer des extensions dont le code a été lu et compris par des responsables liés à la fondation GNOME : les extensions proposées présentent donc rarement des bugs majeurs, et sont normalement dignes de confiance.

Le site officiel de Gnome recense l'immense majorité des extensions existantes. Les extensions sont installables via la logithèque
Installation via le site officiel Installation via la logithèque

Avec la logithèque GNOME (Logiciels, qui est la logithèque par défaut sur certaines versions d'Ubuntu), il est aussi possible d'installer de manière sûre les extensions en provenance du site officiel extensions.gnome.org sans avoir à utiliser un navigateur.

Le paquet des extensions officielles

Les développeurs de GNOME proposent une douzaine d'extensions réunies dans un seul paquet depuis Gnome 3.4 (donc depuis Ubuntu 11.04). Ces extensions sont normalement installées par défaut avec GNOME Shell, et visibles dans l'onglet "Extensions" de l'Outil de Personnalisation Gnome.

On peut installer ces extensions officielles par la commande
sudo apt-get install gnome-shell-extensions

Le redémarrage de la session est parfois nécessaire pour que ces extensions officielles soient disponibles dans l'utilitaire "Gnome Tweak Tool".

Voici une brève description de ces extensions officielles :

Exemples d'utilisation des extensions

Ces exemples ne sont pas tous avec Ubuntu, mais ça n'a aucune importance dans ce contexte. Les thèmes changent peu car le but est juste de montrer les extensions.
Exemples
Exemple 1 Exemple 2 Exemple 3 (menu horloge ouvert)
Exemple 1
(interface à la Windows)
Exemple 2
(dock vertical)
Exemple 3
(dock ; avec menu horloge ouvert)
Thème du Shell : aucun
(utilisation d'Activities Configurator)
Thème GTK+ (fenêtres) : Vertex-Dark
Thème d'icônes : Faenza
Extensions :
- Dash to Panel
- Activities Configurator
- Places status indicator
- Lock Keys Indicator
- Clipboard Indicator
- Caffeine
Thème du Shell : aucun
(utilisation d'Activities Configurator)
Thème GTK+ (fenêtres) : Vertex-Dark
Thème d'icônes : Faenza
Extensions :
- Pixel Saver
- Dash to Dock
- Activities Configurator
- Places status indicator
- Clipboard Indicator
- Caffeine
- etc.
Thème du Shell : Vertex
Thème GTK+ (fenêtres) : Vertex-Dark
Thème d'icônes : Faenza
Extensions :
- User Theme
- Dash to Dock
- Places status indicator
- Lock Keys Indicator
- Clipboard Indicator
- Emoji Selector
- Caffeine
- etc.

Petite sélection arbitraire d'extensions

Il existe près de 220 extensions disponibles pour Gnome Shell en version 3.22 en ce jour (28 avril 2017), et environ 800 toutes versions confondues ! Il est parfois dur de s'y retrouver. Aussi je vous propose un petit florilège de celles qui me paraissent les plus intéressantes, que vous pouvez bien sûr compléter. Si l'extension est disponible sur le site Gnome, un lien y mène, si l'extension est officielle, vous voudrez bien vous référer au paragraphe en question pour sa description.

Extensions qui me semblent indispensables

Extensions intéressantes

Avancé : installation manuelle des extensions et fonctionnement de base

Emplacement du code

Les extensions de l'utilisateur sont stockées dans ~/.local/share/gnome-shell/extensions/

Il est possible d'y installer des extensions depuis du code source trouvé sur un dépôt github par exemple, ou de modifier une extension existante, ou pourquoi pas d'y contribuer, d'en traduire une, ou d'en coder soi-même 8-)

Si vous ne comprenez pas ce que fait le code javascript d'une extension que vous trouvez quelque part sur internet, il peut être dangereux d'installer l'extension en question : le but du site officiel extensions.gnome.org est de proposer des extensions dont le code a été lu et compris par des responsables liés à la fondation GNOME, et si une extension a été rejetée de leur site, c'est qu'elle est codée n'importe comment, ou pire qu'elle présente une faille de sécurité, voire elle est malveillante. N'installez une extension depuis son dépôt source que si vous comptez par exemple y contribuer, ou si vous faites une confiance aveugle à son développeur et que vous voulez absolument la dernière version disponible.

Structuration du code

Chaque extension possède un dossier qui lui est propre et qui répond à des conventions de nommage spécifiques : les identifiants des extensions (uuid) ressemblent à des adresses email par exemple.

Ces dossiers contiennent forcément au moins :

Le code de chaque fichier extension.js est chargé en mémoire et interprété par GNOME Shell à chaque démarrage de session (la fonction enable sera exécutée si l'extension est active, init est exécutée même si l'extension est inactive). En cas de bug sur certaines extensions mal testées par le développeur ou par les reviewers de extensions.gnome.org, il est parfois nécessaire de redémarrer le shell (dans l'invite de commande alt+f2, tapez "r" et confirmez).

La plupart des extensions possèdent également :

Fonctionnement

Gnome Shell agit en fait comme un moteur Javascript, qui exécute d'abord le code de l'interface par défaut (qui est en Javascript aussi), puis le code des fonctions init de toutes les extensions, puis le code des fonctions enable des extensions activées.

Il s'agit d'ajouter des choses à l'interface, ou de réécrire des fonctionnalités existantes (souvent pour les enrichir) en redéfinissant dans la fonction enable() des fonctions de l'interface par défaut, ou en y injectant du code.

Les changements de GNOME Shell au cours du temps provoquent parfois des incompatibilités, et des extensions périmées peuvent hélas être chargées de manière incomplètes avant de commencer à buguer, et parfois cela rend l'interface inutilisable, il est donc essentiel de n'installer que des extensions faites pour la bonne version de GNOME !

Looking Glass

Une console Javascript, nommée "Looking Glass" permet d'analyser l'interface et d'exécuter quelques instructions en Javascript. On y accède en faisant Alt+F2, et en tapant la commande spéciale "lg" dans la boite de dialogue qui apparaît alors.

Voir aussi