GNOME kabuk uzatma gelişimi için dökümantasyon?


22

Ben sadece javascript olduklarından bazı Gnome Shell uzantıları geliştirmek istiyordum, ancak bakıyordum ve pratik olarak sıfır dokümantasyon var, her yerde insanlar sadece temel Gnome dokümantasyonunu kullanmak için söylüyorlar, ama bu yardım etmiyor. uzantılar için yapılan ithalatlar için herhangi bir belge veya uzantı gelişimi için herhangi bir javascript api bulamadım, bazı derslere bakmaya çalıştım (çoğu Gnome 3.0 için, 3.2 değil).

Uzatma geliştirme için dokümantasyon yazmanın devam edip etmediğini bilen var mı? Bazı iyi belgeleri gerçekten çok isterdim ...


Bu sayfayı daha önce gördünüz mü: live.gnome.org/GnomeShell/Extensions ?
Benjamin

SO üzerinde benzer bir soru: stackoverflow.com/questions/13107743/…
Wilf

Yanıtlar:


7

Demo kodundan ve derslerden memnun olmamamın nedeni, bir grup rasgele ithalatı tanıtmaları ve ne olduklarını veya bunları nasıl kullanacaklarını asla açıklamamasıdır. Başkalarının ekleyebileceği kendi yanıtlarımı oluşturuyorum, böylece insanlar aslında hangi işlevleri çağırabileceklerini, neleri içe aktarabileceklerini vb.

Gnome Shell için üretilen belgeler var , ancak biraz eksik - Çeşitli derslerde, örneklerde ve yayımlanan uzantılarda gördüğüm şeylerin çoğunu bulamadım.

Gerçekten güvenilir olan tek belge Gnome Shell kaynağının kendisidir. Mevcut olanı bilmenin başka hiçbir güncel veya eksiksiz yolu yoktur.

Bu iki başlangıç ​​noktası özellikle iyi:

C kaynağı, alınması globalgerekmeyen önemli bir nesnenin olduğunu ve pencere yöneticisi (tuş bağlamaları dahil), oturum bilgileri, mevcut ekranlar ve diğer şeyler gibi şeylere erişim sağladığını gösterir. İşte kaynak:

Nesnenin nasıl kullanılacağınıglobal.display bilmek istedim ve şu an için en iyi dokümantasyon Alan Knowles tarafından sağlandı .

Diğer şeyler GObject iç gözlem ciltleri aracılığıyla içe aktarılabilir, örneğin:

Genel olarak, diğer ithalatı bulmak için çeşitli Gnome bileşenlerinin referans belgelerine bakabilirsiniz .

Gözetleme camı üzerine bir not: Bu ithalatı gözetleme camında kullanmayla ilgili bazı tuhaflıklar var - Ben sadece olayları denemek için çok zaman harcadım. Örneğin:

const Clutter = imports.gi.Clutter;

... çalışmayacak, çünkü Clutterzaten var. Ama sonra:

const MyClutter = imports.gi.Clutter;

... ayrıca işe yaramayacak; MyCluttertanımsız ve kullanılamaz. Yapmak zorundasın:

MyClutter = imports.gi.Clutter;

Tabii ki, bu durumda Clutterzaten var, bu yüzden gerçekten gerekli değil. Ancak, görünen cam isim alanında neyin ve neyin olmadığı belgelenmediğinden, bir şeyi ithal etmeye ve bu sorunları yaşamaya çalışırsanız, aklınızda bulundurun.

Kalan sorular:

  • Nedir Mainloop? Bu içeri aktarılır main.jsve GLib ana döngüsüyle ilgili işlevlere sahiptir. Bunun için belgeler var mı?
  • Nedir imports.misc? İçinde gerçekten çok yararlı şeyler varmış gibi görünüyor ExtensionUtils- bu nedir?
  • DBus'u nasıl kullanıyorsunuz? İç gözlemden ne haber?


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.