Je m'y suis récemment penché. La documentation est généralement peu abondante ou obsolète. Voici quelques sources qui m'ont aidé à démarrer (et à développer) :
Comme la documentation est pratiquement indisponible (ou à jour), vous devrez faire ce qui suit beaucoup de la lecture des sources. J'ai lié les sources de gnome-shell ci-dessus (la partie JavaScript) qui est un bon début lorsque vous plongez dans des parties qui ne sont pas couvertes par la documentation officielle (qui est la chose la plus complète que vous trouverez).
Ce qui est aussi particulièrement utile, c'est de vérifier extensions.gnome.org pour les extensions qui font des choses similaires à ce que vous voulez créer, et regardez leurs sources (la plupart d'entre elles sont open-source sur GitHub ou Bitbucket. Vous pouvez aussi les installer et trouver les sources sous ~/.local/share/gnome-shell/extensions/
).
Lorsque vous cherchez quelque chose à utiliser ou plus de documentation sur une fonction particulière, vous pouvez également consulter les manuels des liaisons dans différentes langues (bien que les paramètres et les valeurs de retour puissent ne pas correspondre).
Enfin, voici quelques conseils de débogage :
LookingGlass n'est pas particulièrement utile. Il ne montre qu'une ligne d'une exception (la description) et seulement si elles se produisent au moment du démarrage (lorsque votre extension est lancée pour la première fois).
Pour obtenir des StackTraces complets et des exceptions d'exécution, consultez le site Web de la Commission européenne. ~/.xsession-errors
-fichier. Il pourrait être très long et gonflé. J'utilise ceci pratique script pour le lire :
# Grabs the last session-errors from the current X11 session.
# This includes full Stack-Trace of gnome-shell-extension errors.
# See https://live.gnome.org/GnomeShell/Extensions/StepByStepTutorial#lookingGlass
tail -n100 ~/.cache/gdm/session.log | less
Note que depuis Gnome 3.6, si vous utilisez gdm
comme gestionnaire d'affichage, le journal de session actuel est le fichier ~/.cache/gdm/session.log
.
Sur certaines distros plus récentes utilisant systemd, vous pouvez obtenir les journaux d'erreurs avec :
journalctl -f /usr/bin/gnome-session
Pour débogage de la partie préfs de votre extension, vous pouvez lancer les préférences en utilisant le bouton gnome-shell-extension-prefs
-à partir d'un terminal, pour voir toute sortie d'exception sur la console (vous pouvez également appeler l'outil comme suit gnome-shell-extension-prefs [uuid]
pour afficher directement les préférences de vos extensions).
Étant donné qu'il n'existe pas actuellement de véritable moyen de déboguer avec des points d'arrêt (il en existe, mais c'est délicat ), vous pouvez journal sur la console pour une vérification rapide, utilisez le print()
-fonction. Vous verrez la sortie mentionnée ci-dessus (soit dans le fichier sessions-error, soit dans le terminal lors du démarrage de la fonction gnome-shell-extension-prefs
-outil).
Bien qu'il soit un peu difficile d'y accéder, le cadre d'extension est assez puissant. Avoir amusant !
J'ai écrit un Blog-Post avec un peu plus de détails qui peut être consulté ici : Créer des extensions Gnome-Shell