Документация для написания расширений оболочки GNOME


меня попросили настроить макет рабочего стола GNOME 3. По-видимому, способ сделать это-написать "расширение".

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

на сайте GNOME есть сотни расширений для скачивания. Это не тривиальные 3-лайнеры; это сложные фрагменты кода. Это бросает вызов вере, что кто-то может написать их без документации, объясняющей, как это сделать.

пожалуйста, может кто-нибудь сказать мне, где фактическая документация? До сих пор лучшее, что мне удалось сделать, это разобрать существующие расширения, пытаясь отследить волшебную команду, которая делает конкретный бит, который я интересуюсь. (Не простая задача!)

имена команд, пути к объектам, примеры программ,что-нибудь было бы полезно!

2 51

2 ответа:

Я недавно сам в этом покопался. Документация в основном отсутствует или устарела. Вот некоторые источники, которые помогли мне начать (и развития):

поскольку документация почти недоступна (или обновлена), вам нужно будет сделать большое источник-чтение. Я связал источники gnome-shell выше (часть JavaScript), которая является хорошим началом при погружении в части, которые не охвачены официальной документацией (которая является наиболее полной вещью, которую вы найдете).

что также особенно полезно, это проверка extensions.gnome.org для расширений, которые делают подобные вещи, что вы хотите создать, и посмотрите на их источники (большинство из них с открытым исходным кодом на GitHub или Bitbucket. Вы также можете установить их и найти источники в соответствии ~/.local/share/gnome-shell/extensions/).

при поиске чего-то для использования или более документации по конкретной функции, вы также можете обратиться к руководствам для Привязок на разных языках (думал, что параметры и возвращаемые значения могут не совпадать).


последнее, но не менее, вот некоторые советы по отладке:

LookingGlass не особенно полезно. Он показывает только одну строку исключения (описание) и только если они происходят во время запуска (при первом запуске расширения).

для полных StackTraces и runtime-исключений, обратитесь к ~/.xsession-errors-файл. Он может быть очень длинным и раздутым. Я использую это удобный скрипт читать:

# Grabs the last session-errors from the current X11 session.
# This includes full Stack-Trace of gnome-shell-extension errors.
# See https://live.gnome.org/GnomeShell/Extensions/StepByStepTutorial#lookingGlass
tail -n100 ~/.cache/gdm/session.log | less

Примечание что с Gnome 3.6, если вы используете gdm как диспетчер отображения, текущий журнал сеанса-это файл ~/.cache/gdm/session.log.

на некоторых новых дистрибутивах с помощью systemd вы можете получить журналы ошибок с:

journalctl -f /usr/bin/gnome-session

на отладка префов-часть расширения, вы можете запустить Настройки с помощью gnome-shell-extension-prefs - инструмент из терминала, чтобы увидеть любое исключение-вывод на консоль (вы также можете вызвать инструмент, как gnome-shell-extension-prefs [uuid], чтобы непосредственно показать ваши предпочтения расширений).

поскольку в настоящее время нет реальной возможности отладки с точками останова (есть, но это сложно), вы можете войдите в консоль для быстрого проверка, используйте print()-функция. Вы увидите вывод, как указано выше (либо в файле sessions-error, либо на терминале при запуске gnome-shell-extension-prefs-инструмент).


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


я написал блог-пост с несколько большей детализацией, который можно найти здесь: Создание Расширений Gnome-Shell

обширный список литературы можно найти на Gnome Developer-API Reference