Dokumentasi untuk pengembangan ekstensi gnome shell?

22

Saya telah ingin mengembangkan beberapa ekstensi Gnome Shell karena hanya dalam javascript, namun saya telah mencari dan praktis tidak ada dokumentasi, di mana-mana saya melihat orang mengatakan untuk menggunakan dokumentasi dasar Gnome, tetapi ini TIDAK membantu, saya tidak bisa, saya bisa tidak menemukan dokumentasi untuk impor ekstensi, atau segala jenis javascript api untuk pengembangan ekstensi, saya mencoba melihat melalui beberapa tutorial (kebanyakan untuk Gnome 3.0, bukan 3.2), tetapi tidak ada yang membantu.

Adakah yang tahu jika mereka sedang dalam proses menulis dokumentasi untuk pengembangan ekstensi? Saya akan sangat menyukai dokumentasi yang bagus ...

KoRnKloWn
sumber
Apakah Anda sudah melihat halaman ini: live.gnome.org/GnomeShell/Extensions ?
Benjamin
Pertanyaan serupa pada SO: stackoverflow.com/questions/13107743/…
Wilf

Jawaban:

7

Alasan saya tidak senang dengan kode demo dan tutorial adalah karena mereka memperkenalkan banyak impor acak dan tidak pernah menjelaskan apa itu atau bagaimana menggunakannya. Saya sedang membangun jawaban saya sendiri yang dapat ditambahkan orang lain, sehingga orang dapat benar-benar mengetahui fungsi apa yang dapat mereka panggil, apa yang dapat mereka impor, dll.

Ada dokumentasi yang dibuat untuk Gnome Shell , tetapi agak tidak lengkap - saya tidak dapat menemukan sebagian besar hal yang saya lihat di berbagai tutorial, contoh dan ekstensi yang diterbitkan.

Satu-satunya dokumentasi yang benar-benar andal adalah sumber Gnome Shell itu sendiri. Tidak ada cara lain yang terbaru atau lengkap untuk mengetahui apa yang tersedia.

Dua poin awal ini sangat baik:

Sumber C menunjukkan bahwa ada objek penting yang disebut globalyang tidak perlu diimpor, dan menyediakan akses ke hal-hal seperti manajer jendela (termasuk ikatan kunci), informasi sesi, layar yang tersedia dan hal-hal lain semacam itu. Inilah sumbernya:

Saya ingin tahu cara menggunakan global.displayobjek , dan untuk saat ini dokumentasi terbaik adalah yang disediakan oleh Alan Knowles .

Hal-hal lain dapat diimpor melalui binding introspeksi GObject, misalnya:

Secara umum, Anda dapat melihat melalui dokumentasi referensi untuk berbagai komponen Gnome untuk menemukan impor lainnya.

Sebuah catatan pada kaca tampak: Ada beberapa kebiasaan menggunakan impor ini dalam kaca tampak - saya membuang banyak waktu hanya mencoba untuk menguji hal-hal dengan cepat. Sebagai contoh:

const Clutter = imports.gi.Clutter;

... tidak akan berfungsi, karena Cluttersudah ada. Tapi kemudian:

const MyClutter = imports.gi.Clutter;

... juga tidak akan bekerja; MyCluttertidak terdefinisi dan tidak dapat digunakan. Kamu harus melakukan:

MyClutter = imports.gi.Clutter;

Tentu saja, dalam hal ini Cluttersudah ada, jadi itu tidak benar-benar diperlukan. Tetapi karena itu tidak didokumentasikan apa yang ada dan belum ada di namespace kaca mencari, jika Anda mencoba untuk mengimpor sesuatu dan memiliki masalah ini, ingatlah.

Pertanyaan yang tersisa:

  • Apa Mainloop? Ini diimpor main.jsdan tampaknya memiliki fungsi yang terkait dengan loop utama GLib. Apakah ada dokumentasi untuk ini?
  • Apa imports.misc? Sepertinya ada beberapa hal yang sangat berguna di sana, seperti ExtensionUtils- apa itu?
  • Bagaimana Anda menggunakan DBus? Bagaimana dengan introspeksi?
detly
sumber
4

Dokumentasi sedikit terlambat, salah satu sumber potensial informasi adalah Renungan seorang tukang ledeng OS , mis. Posting ini tentang pembaruan ekstensi Shell GNOME agar berfungsi dengan versi 3.2

Bergantung pada informasi apa yang Anda inginkan, Anda dapat mencoba milis gnome.

Harimau kumbang
sumber
1
Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
hhlp
3

Tutorial Langkah demi langkah ini untuk membuat ekstensi untuk gnome 3.4 dapat membantu: https://live.gnome.org/GnomeShell/Extensions/StepByStepTutorial

agustibr
sumber
1
Ia mengatakan: "[API] sangat sulit, karena kurangnya dokumentasi ..." . Baiklah.
detly
1
Saya memberi Anda hadiah karena laman landas itu memiliki banyak tautan bermanfaat :)
detly