Ich wollte einige Gnome-Shell-Erweiterungen entwickeln, da sie nur in Javascript sind, aber ich habe nachgeschaut und es gibt praktisch keine Dokumentation. Überall, wo ich hinschaue, sagen die Leute nur, dass sie die grundlegende Gnome-Dokumentation verwenden sollen, aber das hilft NICHT, das kann ich Ich habe keine Dokumentation für den Import von Erweiterungen oder irgendeine Art von Javascript-API für die Erweiterungsentwicklung gefunden. Ich habe versucht, einige der Tutorials durchzusehen (die meisten sind für Gnome 3.0, nicht für 3.2), aber nichts hilft.
Weiß jemand, ob er Dokumentationen für die Erweiterungsentwicklung erstellt? Ich würde wirklich gerne eine gute Dokumentation haben ...
development
gnome-shell-extension
KoRnKloWn
quelle
quelle
Antworten:
Der Grund, warum ich mit dem Demo-Code und den Tutorials nicht zufrieden bin, ist, dass sie eine Menge zufälliger Importe einführen und niemals erklären, was sie sind oder wie sie verwendet werden. Ich konstruiere meine eigene Antwort, die andere ergänzen können, damit die Leute tatsächlich wissen, welche Funktionen sie aufrufen können, was sie importieren können usw.
Es wurde eine Dokumentation für Gnome Shell erstellt , die jedoch etwas unvollständig ist - ich konnte die meisten Dinge, die ich in verschiedenen Tutorials, Beispielen und veröffentlichten Erweiterungen gesehen habe, nicht finden.
Die einzige wirklich zuverlässige Dokumentation ist die Gnome-Shell-Quelle selbst. Es gibt einfach keine andere aktuelle oder vollständige Methode, um zu wissen, was verfügbar ist.
Diese beiden Ansatzpunkte sind besonders gut:
Die C-Quelle zeigt, dass es ein wichtiges Objekt gibt, das aufgerufen wird
global
, das nicht importiert werden muss, und bietet Zugriff auf den Fenstermanager (einschließlich Tastenkombinationen), die Sitzungsinformationen, die verfügbaren Bildschirme und andere solche Dinge. Hier ist die Quelle:Ich wollte wissen, wie man das
global.display
Objekt benutzt , und im Moment ist die beste Dokumentation die von Alan Knowles .Andere Dinge können über die GObject-Introspection-Bindungen importiert werden, zum Beispiel:
imports.gi.Clutter
)imports.gi.GLib
)imports.gi.St
)Im Allgemeinen können Sie in der Referenzdokumentation der verschiedenen Gnome-Komponenten nach weiteren Importen suchen.
Ein Hinweis zum Spiegel: Es gibt jedoch einige Macken bei der Verwendung dieser Importe im Spiegel - ich habe viel Zeit verschwendet, nur um Dinge im laufenden Betrieb zu testen. Beispielsweise:
... wird nicht funktionieren, da
Clutter
bereits vorhanden. Aber dann:... geht auch nicht;
MyClutter
ist undefiniert und kann nicht verwendet werden. Du musst:Natürlich in diesem Fall
Clutter
bereits, so dass es nicht wirklich notwendig ist. Da jedoch nicht dokumentiert ist, was sich im Looking-Glass-Namespace befindet und was nicht, sollten Sie dies berücksichtigen, wenn Sie versuchen, etwas zu importieren und diese Probleme haben.Verbleibende Fragen:
Mainloop
? Dies wird importiertmain.js
und scheint Funktionen zu haben, die sich auf die GLib-Hauptschleife beziehen. Gibt es dafür Unterlagen?imports.misc
? Es scheint einige wirklich nützliche Dinge zu haben, wieExtensionUtils
- was ist das?quelle
Die Dokumentation ist etwas verzögert, eine mögliche Informationsquelle sind Musings eines Betriebssystem-Installateurs , z. B. dieser Beitrag zur Aktualisierung der GNOME-Shell-Erweiterungen auf Version 3.2
Abhängig von den gewünschten Informationen können Sie die Gnome-Mailingliste ausprobieren.
quelle
Diese Schritt-für-Schritt-Anleitung zum Erstellen von Erweiterungen für Gnome 3.4 kann hilfreich sein: https://live.gnome.org/GnomeShell/Extensions/StepByStepTutorial
quelle