Я хотел разработать некоторые расширения оболочки Gnome, так как они находятся только в javascript, однако я искал и документации практически нет, везде, где я смотрю, люди просто говорят использовать базовую документацию Gnome, но это НЕ помогает, я могу Не найдя никакой документации по импорту расширений или javascript api для разработки расширений, я попытался просмотреть некоторые учебные пособия (большинство из которых для Gnome 3.0, а не 3.2), но ничего не помогает.
Кто-нибудь знает, пишут ли они документацию для разработки расширений? Я бы очень хотел получить хорошую документацию ...
development
gnome-shell-extension
KoRnKloWn
источник
источник
Ответы:
Причина, по которой я не доволен демо-кодом и учебными пособиями, заключается в том, что они вводят несколько случайных импортов и никогда не объясняют, что они из себя представляют или как их использовать. Я строю свой собственный ответ, к которому другие могут добавить, чтобы люди действительно знали, какие функции они могут вызывать, что они могут импортировать и т. Д.
Сгенерирована документация для Gnome Shell , но она несколько неполная - я не смог найти большинство вещей, которые видел в различных руководствах, примерах и опубликованных расширениях.
Единственной действительно надежной документацией является сам исходный код Gnome Shell. Просто нет другого актуального или полного способа узнать, что доступно.
Эти две отправные точки особенно хороши:
Источник C показывает, что существует важный объект с именем
global
, который не нужно импортировать, и предоставляет доступ к таким вещам, как диспетчер окон (включая привязки клавиш), информацию о сеансе, доступные экраны и другие подобные вещи. Вот источник:Я хотел знать, как использовать
global.display
объект , и на данный момент лучшая документация предоставлена Аланом Ноулзом .Другие вещи могут быть импортированы через привязки самоанализа GObject, например:
imports.gi.Clutter
)imports.gi.GLib
)imports.gi.St
)В общем, вы можете просмотреть справочную документацию по различным компонентам Gnome, чтобы найти другие варианты импорта.
Примечание о зеркале: Есть некоторые причуды в использовании этого импорта в зеркале - я потратил много времени, просто пытаясь проверить вещи на лету. Например:
... не будет работать, потому что
Clutter
уже существует. Но потом:... также не будет работать;
MyClutter
не определено и не может быть использовано. Ты должен сделать:Конечно, в этом случае
Clutter
уже существует, поэтому в этом нет необходимости. Но так как не задокументировано, что находится и не находится в пространстве имен зазеркалье, если вы попытаетесь что-то импортировать и у вас возникнут эти проблемы, имейте это в виду.Остальные вопросы:
Mainloop
? Он импортированmain.js
и, похоже, имеет функции, связанные с главным циклом GLib. Есть ли для этого документация?imports.misc
? Кажется, там есть действительно полезные вещи, например ...ExtensionUtils
что это?источник
Документация немного отстает, одним из потенциальных источников информации является информация о слесарном деле ОС , например, этот пост об обновлении расширений GNOME Shell для работы с версией 3.2
В зависимости от того, какую информацию вы хотите, вы можете попробовать список рассылки gnome.
источник
Это пошаговое руководство по созданию расширений для GNOME 3.4 может помочь: https://live.gnome.org/GnomeShell/Extensions/StepByStepTutorial
источник