Je voulais développer des extensions Gnome Shell car elles sont juste en javascript, mais j'ai cherché et il n'y a pratiquement aucune documentation, partout où je regarde les gens disent simplement d'utiliser la documentation de base de Gnome, mais cela n'aide pas, je peux ne trouvant aucune documentation pour les importations d'extensions, ou tout type d'api javascript pour le développement d'extensions, j'ai essayé de parcourir certains des tutoriels (dont la plupart sont pour Gnome 3.0, pas 3.2), mais rien n'y fait.
Quelqu'un sait-il s'il est en train d'écrire de la documentation pour le développement d'extensions? J'aimerais vraiment une bonne documentation ...
development
gnome-shell-extension
KoRnKloWn
la source
la source
Réponses:
La raison pour laquelle je ne suis pas satisfait du code de démonstration et des didacticiels est qu'ils introduisent un tas d'importations aléatoires et n'expliquent jamais ce qu'ils sont ni comment les utiliser. Je construis ma propre réponse à laquelle d'autres peuvent s'ajouter, afin que les gens puissent réellement savoir quelles fonctions ils peuvent appeler, ce qu'ils peuvent importer, etc.
Il existe une documentation générée pour Gnome Shell , mais elle est quelque peu incomplète - je n'ai pas pu trouver la plupart des choses que j'ai vues dans divers didacticiels, exemples et extensions publiées.
La seule documentation vraiment fiable est la source Gnome Shell elle-même. Il n'y a tout simplement pas d'autre moyen à jour ou complet de savoir ce qui est disponible.
Ces deux points de départ sont particulièrement bons:
La source C montre qu'il existe un objet important appelé
global
qui n'a pas besoin d'être importé, et donne accès à des choses comme le gestionnaire de fenêtres (y compris les raccourcis clavier), les informations de session, les écrans disponibles et d'autres choses de ce genre. Voici la source:Je voulais savoir comment utiliser l'
global.display
objet , et pour l'instant la meilleure documentation est celle fournie par Alan Knowles .D'autres éléments peuvent être importés via les liaisons d'introspection GObject, par exemple:
imports.gi.Clutter
)imports.gi.GLib
)imports.gi.St
)En général, vous pouvez consulter la documentation de référence des différents composants Gnome pour trouver d'autres importations.
Une note sur le miroir: Il y a cependant quelques bizarreries à propos de l'utilisation de ces importations dans le miroir - j'ai perdu beaucoup de temps à essayer de tester les choses à la volée. Par exemple:
... ne fonctionnera pas, car
Clutter
existe déjà. Mais alors:... ne fonctionnera pas non plus;
MyClutter
n'est pas défini et ne peut pas être utilisé. Tu dois faire:Bien sûr, dans ce cas
Clutter
existe déjà, donc ce n'est pas vraiment nécessaire. Mais comme il n'est pas documenté ce qui est et n'est pas déjà dans l'espace de noms du miroir, si vous essayez d'importer quelque chose et que vous rencontrez ces problèmes, gardez cela à l'esprit.Questions restantes:
Mainloop
? Ceci est importé dansmain.js
et semble avoir des fonctions liées à la boucle principale GLib. Existe-t-il une documentation à ce sujet?imports.misc
? Il semble y avoir des choses vraiment utiles, commeExtensionUtils
- qu'est-ce que c'est?la source
La documentation est un peu en retard, une source potentielle d'information est la réflexion d'un plombier OS , par exemple ce post sur la mise à jour des extensions GNOME Shell pour fonctionner avec la version 3.2
Selon les informations que vous souhaitez, vous pouvez essayer la liste de diffusion gnome.
la source
Ce tutoriel étape par étape pour créer des extensions pour gnome 3.4 peut aider: https://live.gnome.org/GnomeShell/Extensions/StepByStepTutorial
la source