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 global
yang 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.display
objek , 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 Clutter
sudah ada. Tapi kemudian:
const MyClutter = imports.gi.Clutter;
... juga tidak akan bekerja; MyClutter
tidak terdefinisi dan tidak dapat digunakan. Kamu harus melakukan:
MyClutter = imports.gi.Clutter;
Tentu saja, dalam hal ini Clutter
sudah 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.js
dan 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?