Tài liệu cho phát triển mở rộng vỏ gnome?


22

Tôi đã muốn phát triển một số tiện ích mở rộng Gnome Shell vì chúng chỉ có trong javascript, tuy nhiên tôi đã tìm kiếm và thực tế không có tài liệu nào, ở mọi nơi tôi nhìn mọi người chỉ nói sử dụng tài liệu Gnome cơ bản, nhưng điều này KHÔNG giúp được gì, tôi có thể không tìm thấy bất kỳ tài liệu nào cho việc nhập khẩu cho các tiện ích mở rộng hoặc bất kỳ loại api javascript nào cho việc phát triển tiện ích mở rộng, tôi đã thử xem qua một số hướng dẫn (hầu hết trong số đó là cho Gnome 3.0, không phải 3.2), nhưng không có gì hữu ích.

Có ai biết nếu họ đang trong quá trình viết tài liệu để phát triển mở rộng? Tôi thực sự thích một số tài liệu tốt ...


Bạn đã thấy trang này chưa: live.gnome.org/GnomeShell/Extensions ?
Benjamin

Câu hỏi tương tự trên SO: stackoverflow.com/questions/13107743/ từ
Wilf

Câu trả lời:


7

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à globalkhô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; MyClutterkhô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:

  • Mainloopgì Điều này được nhập vào main.jsvà 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?
  • imports.miscgì 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?

4

Tài liệu bị trễ một chút, một nguồn thông tin tiềm năng là Musings của một thợ sửa ống nước hệ điều hành , ví dụ bài đăng này về việc cập nhật các phần mở rộng của Gnome Shell để hoạt động với phiên bản 3.2

Tùy thuộc vào thông tin bạn muốn, bạn có thể thử danh sách gửi thư gnome.


1
Trong khi về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
hhlp

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.