Документация для написания расширений оболочки GNOME
меня попросили настроить макет рабочего стола GNOME 3. По-видимому, способ сделать это-написать "расширение".
мне удалось сделать некоторые вещи, которые я хотел сделать, но я чувствую себя совершенно уморили информации. Я не могу найти никакой полезной документации в любом месте. Я потратил впустую весь дней моей жизни отчаянно гуглить все мыслимые поисковые запросы в отчаянной попытке найти полезные информация.
на сайте GNOME есть сотни расширений для скачивания. Это не тривиальные 3-лайнеры; это сложные фрагменты кода. Это бросает вызов вере, что кто-то может написать их без документации, объясняющей, как это сделать.
пожалуйста, может кто-нибудь сказать мне, где фактическая документация? До сих пор лучшее, что мне удалось сделать, это разобрать существующие расширения, пытаясь отследить волшебную команду, которая делает конкретный бит, который я интересуюсь. (Не простая задача!)
имена команд, пути к объектам, примеры программ,что-нибудь было бы полезно!
2 ответа:
Я недавно сам в этом покопался. Документация в основном отсутствует или устарела. Вот некоторые источники, которые помогли мне начать (и развития):
- Базовые Вещи
- основные материалы по разработке
- шаг за шагом
- неофициальная документация для Привязок JavaScript многих библиотеки
- источники Привязок JavaScript gnome-shell
- объяснение ст (интерфейс-набор инструментов Набор инструментов Ракушка) компонентов.
- некоторые неофициальные рекомендации, чтобы получить расширение на extensions.gnome.org
поскольку документация почти недоступна (или обновлена), вам нужно будет сделать большое источник-чтение. Я связал источники 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