Документация для разработки расширения оболочки gnome?

Я хотел разработать некоторые расширения оболочки Gnome, так как они находятся только в javascript, однако я искал и документации практически нет, везде, где я смотрю, люди просто говорят использовать базовую документацию Gnome, но это НЕ помогает Я не могу найти какую-либо документацию для импорта расширений или какой-либо javascript api для разработки расширений, я попытался просмотреть некоторые учебники (большинство из которых для Gnome 3.0, а не 3.2), но ничего не помогает.

Кто-нибудь знает, пишут ли они документацию для разработки расширений? Я бы очень хотел получить хорошую документацию ...

22
задан 27 June 2014 в 05:53

3 ответа

Причина я не доволен демонстрационным кодом и учебными руководствами, состоит в том, что они представляют набор случайного импорта и никогда не объясняют, что они или как использовать их. Я создаю свой собственный ответ, к которому могут добавить другие, так, чтобы люди могли на самом деле знать то, что функционирует, они могут звонить, что они могут импортировать и т.д.

Существует сгенерированная документация для Gnome Shell, но это несколько неполно — я не мог найти большинство вещей, которые я видел в различных учебных руководствах, примерах и опубликовал расширения.

Единственная действительно надежная документация является Gnome сам источник Shell. Просто нет никакого другого актуального или полного способа знать то, что доступно.

Эти две начальных точки особенно хороши:

Источник C показывает, что существует важный названный объект global это не должно быть импортировано и обеспечивает доступ к вещам как менеджер окон (включая привязки клавиш), информация о сессии, экраны, доступные и другие такие вещи. Вот источник:

Я хотел знать, как использовать global.display объект и на данный момент лучшая документация - обеспеченный Alan Knowles.

Другие вещи могут быть импортированы через привязку самоанализа GObject, например:

В целом можно просмотреть справочную документацию для различных компонентов Gnome для нахождения другого импорта.

Примечание по зеркалу: существуют некоторые причуды об использовании этого импорта в зеркале, хотя — я потратил впустую много времени, просто пытаясь проверить вещи на лету. Например:

const Clutter = imports.gi.Clutter;

... не будет работать, потому что Clutter уже существует. Но затем:

const MyClutter = imports.gi.Clutter;

... также не будет работать; MyClutter не определено и не может использоваться. Необходимо сделать:

MyClutter = imports.gi.Clutter;

Конечно, в этом случае Clutter уже существует, таким образом, это не действительно необходимо. Но так как это не документируется, что и уже не находится в пространстве имен зеркала, при попытке импортировать что-то и иметь эти проблемы, имеете в виду его.

Оставление вопросами:

  • Что Mainloop? Это импортируется в main.js и, кажется, имеет функции, связанные с Бойким основным циклом. Есть ли документация для этого?
  • Что imports.misc? Это, кажется, имеет некоторые действительно полезные вещи там, как ExtensionUtils — что это?
  • Как Вы используете DBus? Что относительно самоанализа?
6
ответ дан 27 June 2014 в 05:53

Этот пошаговый учебник по созданию расширений для GNOME 3.4 может помочь: https://live.gnome.org/GnomeShell/Extensions/StepByStepTutorial

0
ответ дан 27 June 2014 в 05:53

Документация немного запаздывает, один потенциальный источник информации - Рассказы о сантехнике ОС , например. этот пост об обновлении расширений GNOME Shell для работы с версией 3.2

В зависимости от того, какую информацию вы хотите, вы можете попробовать список рассылки gnome.

0
ответ дан 27 June 2014 в 05:53

Другие вопросы по тегам:

Похожие вопросы: