—
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).
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.
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.
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 :
- Alternate tab propose un fonctionnement différent pour l'ALT+TAB où les fenêtres ne sont pas regroupées par application
- Alternative status menu fait apparaître les items "hiberner" et "éteindre" dans le menu utilisateur (n'est plus disponible pour les versions récentes)
- Applications menu ajoute un menu "classique" (comme sur Cinnamon, Xfce ou Budgie) dans la barre supéreure
- Auto move window permet de choisir pour chaque application dans quel bureau virtuel ses fenêtres s'ouvriront
- Native window placement propose un affichage moins monotone des fenêtres dans le mode exposition
- Launch new instance si une application est déjà lancée, cliquer sur l'icône du dash lance une nouvelle fenêtre au lieu de restaurer celle existante.
- Place status indicator ajoute à la zone de notification un raccourci vers les signets de Nautilus (Documents, Musique, etc.)
- Removable drive menu ajoute un raccourci à la zone de notification permettant d'accéder aux médias amovibles, s'il y en a de branchés
- Screenshot window sizer ctrl+alt+s redimensionne les fenêtres en format 16:9 pour qu'on puisse prendre de jolis screenshots
- System monitor ajoute dans la barre de notification (en bas) un graphique indiquant la consommation mémoire et processeur
- User theme permet de charger les thèmes du répertoire ~/.themes
- Workspace indicator ajoute dans la zone de notification un indicateur du bureau virtuel en cours et la possibilité d'atteindre un autre bureau
- Window navigator permet de naviguer au clavier dans le mode exposition entre les différentes fenêtres (ALT) ou les différents bureaux (CTRL)
Exemples d'utilisation des extensions
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
- Dash to dock
Transforme le dash de la vue activités en un dock disponible directement depuis le bureau, et richement paramétrable (taille, transparence, position, comportement, etc.) - Activities Configurator
Permet de personnaliser en détails la barre supérieure (couleur, transparence), le bouton "Activités" (texte, icône, etc.), le "hot corner", etc. - Clipboard Indicator
Un gestionnaire de presse-papier assez avancé. - Axe Menu ou Applications Menu (extension officielle)
un menu classique pour ceux qui n'aiment pas la vue des applications ni la recherche au clavier. - Places Status Indicator (extension officielle) mais diverses alternatives existent.
- Lock Keys
Affiche des indicateurs dans la barre supérieure pour indiquer si le verrouillage numérique ou le verrouillage majuscule sont activés. - Pixel Saver
Supprime les barres des fenêtres maximisées n'ayant "que" un titre et des boutons. Le titre est mis à la place de l'appmenu dans la barre supérieure, et les boutons de fenêtre sont eux aussi déplacés dans la barre supérieure. - Todo.txt
Pense-bête et gestion avancée des tâches, hautement paramétrable. - Topicon plus
Les applications comme Skype, Discord ou Steam qui mettent un icône dans la zone de statut des barres de tâches des environnements habituels sont assez dérangeantes avec Gnome Shell, et dépassent généralement en bas de l'écran. Cette extension les envoie dans la barre supérieure. - Remove Dropdown Arrows
Supprime les petites flèches irritantes qui indiquent que les extensions sont des menus. - Coverflow AltTab
Remplace le banal sélecteur AltTab par défaut par un défilement en 3D des fenêtres.
Extensions intéressantes
- Dash to panel
Fusionne le dash et la barre supérieure en une unique "barre de tâches" moderne et élégante, avec miniatures de fenêtres au survol, qui vous rappellera peut-être des interfaces comme Windows 7 ou 10. - Caffeine
Empêche la session de se verrouiller ou l'ordi de se mettre en veille si l'indicateur est activé. - Media Player Indicator
Permet d'avoir un indicateur en haut à droite permettant de contrôler les lecteurs multimédia compatible MPRIS. - Remove Accessibility
Enlève le menu 'accessibilité' de la barre supérieure. - Open Weather
Affiche la météo dans la barre supérieure, avec un menu qui montre les prévisions sur plusieurs jours. - Remove Recent Item
Permet d'effacer certains fichiers récent de la recherche dans le tableau de bord. - Recent Items
Affiche un menu permettant d'accéder aux documents ouverts récemment. - Removable Drive Menu(extension officielle)
Indispensable si vous avez réglé le système pour qu'il ne fasse rien par défaut, et surtout pour qu'il n'ouvre pas à la fois Nautilus ET un pop-up quand un média amovible est inséré. - Steal My Focus
Supprime les notifications du type “votre application est prête” et donne automatiquement le focus à la nouvelle fenêtre ouverte. - User Themes (extension officielle).
Permet de changer le thème de Gnome Shell (et NON cette extension n'est pas du tout nécessaire pour changer le thème des fenêtres !).
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
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 :
- metadata.json Ce fichier décrit l'extension (son nom, son identifiant, la description qui apparaît dans Gnome Tweak Tool, là où ses éventuels paramètres sont accessibles dans dconf, etc.) et surtout les versions de Gnome Shell théoriquement compatibles avec l'extension.
- extension.js Ce fichier contient le code de l'extension : une fonction init(), une fonction enable() et une fonction disable() y sont forcément présentes.
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 :
- un dossier "locale" où se trouvent les traductions ;
- un dossier "schemas" où se trouvent les préférences dans un format compris par dconf (avec un peu de débrouillardise, vous pouvez donc paramétrer certaines extensions avec la commande gsettings ou l'éditeur dconf !) ;
- prefs.js qui contient la petite fenêtre de préférences de l'extension accessible depuis Gnome Tweak Tool ;
- un fichier .css pour gérer l'apparence des composants de l'extension (polices, couleurs, tailles, etc.)
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
- Tutoriel : personnaliser GNOME