Wie schreibe ich Gnome Shell Erweiterungen?
Habe ich festgestellt, dass es sehr schwer zu finden-Dokumentation über die Gnome-Shell-Erweiterungen. Ich fand einige Stücke auf Gnome-Wiki (und es ist first-level-links), aber es ist nicht viel:
http://live.gnome.org/GnomeShell/Extensions
Das problem hier ist, GJS und es Bindungen. Absolut keine Dokumentation, bekam viel SIGSEGVs, die Bindung ist einfach nicht bereit (GLib, Gio und andere). Die einzige Arbeit ist eine inoffizielle Dokumentation generiert aus GIR für Saatgut der JavaScript-Implementierung:
http://roojs.org/seed/gir-1.2-gtk-2.0/seed/
Wo weitere Beispiele? Ich will Lesen, Verzeichnisse, Dateien, spawn-Prozesse, offene Netzwerk-sockets und andere Sachen.
Update: Zeig mir, wie zu Lesen, eine Datei zeilenweise in GJS. Laut Google ist dies nicht möglich. Danke.
InformationsquelleAutor der Frage lzap | 2011-11-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
GNOME-Shell verwendet GJSnicht Samen. Es gibt einige Unterschiede zwischen den beiden von Ihnen, und es könnte erklären, warum Sie Probleme haben.
Mit GOBject Introspection Lesen Sie die Dokumentation für die original-Bibliothek und passen Sie die Signatur jeder Methode/Funktion, um die Sprache, die Sie verwenden.
In Ihrem speziellen Fall für Dateien, Netzwerke, etc.. möchten Sie vielleicht zu prüfen,GIO. Sie können die Plattform-Übersicht zu überprüfen, was sonst noch zur Verfügung steht. Sie können auch überprüfen, einige Beispiele (nicht Erweiterungen) in JavaScript.
Nicht zuletzt, sehr bald eine website mit der Erweiterung gestartet werden.
InformationsquelleAutor der Antwort gpoo
Gut, angeblich, mit Gnome3, haben Sie eine ziemlich einheitliche API über verschiedene Programmiersprachen, die erzeugt wird von den gleichen GIR-Dateien. Man sollte also (zumindest theoretisch) in der Lage sein, zum abrufen der API - ich hoffe mit Dokumentation - von der GObject-Introspektion.
Und Umgekehrt, sollten Sie in der Lage sein zu verwandeln, Beispiel-code aus einer anderen Sprache in JavaScript für diese API leicht.
Theoretisch. Ich vermeide JavaScript, wo möglich, die Entwicklung einer desktop-Anwendung in JavaScript ist das Letzte, was ich tun würde.
InformationsquelleAutor der Antwort Anony-Mousse