28 votes

Comment commencer à écrire des extensions du Gnome Shell

J'ai constaté qu'il est très difficile de trouver de la documentation sur les extensions du Gnome Shell. J'ai trouvé quelques bribes sur Gnome Wiki (et ses liens de premier niveau), mais ce n'est pas grand chose :

http://live.gnome.org/GnomeShell/Extensions

Le problème ici est GJS et ses liaisons. Absolument aucune documentation, beaucoup de SIGSEGVs, les liaisons ne sont tout simplement pas prêtes (GLib, Gio et autres). La seule qui fonctionne est la documentation non officielle générée par GIR pour l'implémentation de Seed JavaScript :

http://roojs.org/seed/gir-1.2-gtk-2.0/seed/

Où trouver d'autres exemples ? Je veux lire des répertoires, des fichiers, lancer des processus, ouvrir des sockets réseau et faire d'autres choses.

Mise à jour : Montrez-moi comment lire un fichier ligne par ligne dans GJS. Selon Google, ce n'est pas possible. Merci.

14voto

gpoo Points 4687

GNOME Shell utilise GJS pas Semences . Il y a quelques différences entre les deux, et cela pourrait expliquer pourquoi vous avez des problèmes.

Avec GOBject Introspection, vous pouvez lire la documentation de la bibliothèque originale et adapter la signature de chaque méthode/fonction au langage que vous utilisez.

Dans votre cas particulier, pour les fichiers, la mise en réseau, etc. vous pourriez vérifier GIO . Vous pouvez vérifier le Aperçu de la plate-forme pour vérifier ce qui est disponible. Vous pouvez également consulter quelques exemples (pas d'extensions, cependant) dans JavaScript .

Enfin, très bientôt, un site web avec extension sera lancé.

1voto

Anony-Mousse Points 24646

Eh bien, en principe, avec Gnome3, vous avez une API assez uniforme dans les différents langages de programmation, qui est générée à partir des mêmes fichiers GIR. Vous devriez donc (du moins en théorie) être en mesure de récupérer toute l'API - avec la documentation, j'espère - à partir de l'introspection GObject. Et dans l'autre sens, vous devriez être en mesure de transformer facilement le code d'exemple d'un autre langage en JavaScript pour cette API.

En théorie. J'évite JavaScript autant que possible, développer une application de bureau en JavaScript est la dernière chose que je ferais.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X