Lý do tôi không hài lòng với mã demo và hướng dẫn là vì họ giới thiệu một loạt các nhập khẩu ngẫu nhiên và không bao giờ giải thích chúng là gì hoặc làm thế nào để sử dụng chúng. Tôi đang xây dựng câu trả lời của riêng mình mà người khác có thể thêm vào, để mọi người thực sự có thể biết họ có thể gọi chức năng gì, họ có thể nhập những gì, v.v.
Có tài liệu được tạo cho Gnome Shell , nhưng nó chưa hoàn chỉnh - tôi không thể tìm thấy hầu hết những điều tôi thấy trong các hướng dẫn, ví dụ và phần mở rộng được xuất bản khác nhau.
Tài liệu thực sự đáng tin cậy duy nhất là nguồn Gnome Shell. Đơn giản là không có cách cập nhật hay hoàn chỉnh nào khác để biết những gì có sẵn.
Hai điểm khởi đầu này đặc biệt tốt:
Nguồn C cho thấy có một đối tượng quan trọng được gọi là global
không cần nhập và cung cấp quyền truy cập vào những thứ như trình quản lý cửa sổ (bao gồm cả phím bấm), thông tin phiên, màn hình có sẵn và những thứ khác. Đây là nguồn:
Tôi muốn biết làm thế nào để sử dụng global.display
đối tượng , và bây giờ tài liệu tốt nhất là tài liệu được cung cấp bởi Alan Knowles .
Những thứ khác có thể được nhập thông qua các ràng buộc nội quan GObject, ví dụ:
Nói chung, bạn có thể xem qua tài liệu tham khảo cho các thành phần Gnome khác nhau để tìm các mục nhập khác.
Một lưu ý về kính nhìn: Có một số điều kỳ quặc về việc sử dụng các mặt hàng nhập khẩu này trong kính nhìn - tôi đã lãng phí rất nhiều thời gian chỉ để thử mọi thứ một cách nhanh chóng. Ví dụ:
const Clutter = imports.gi.Clutter;
... sẽ không hoạt động, bởi vì Clutter
đã tồn tại. Nhưng sau đó:
const MyClutter = imports.gi.Clutter;
... cũng sẽ không hoạt động; MyClutter
không xác định và không thể được sử dụng. Bạn phải làm:
MyClutter = imports.gi.Clutter;
Tất nhiên, trong trường hợp này Clutter
đã tồn tại, vì vậy nó không thực sự cần thiết. Nhưng vì nó không được ghi lại là gì và chưa có trong không gian tên kính, nếu bạn cố gắng nhập một cái gì đó và có những vấn đề này, hãy ghi nhớ nó.
Các câu hỏi còn lại:
- Là
Mainloop
gì Điều này được nhập vào main.js
và dường như có các chức năng liên quan đến vòng lặp chính GLib. Có tài liệu cho việc này?
- Là
imports.misc
gì Dường như có một số thứ thực sự hữu ích trong đó, như ExtensionUtils
- đó là cái gì?
- Làm thế nào để bạn sử dụng DBus? Còn nội tâm thì sao?