Подтвердить что ты не робот

Как тестировать/отлаживать расширения GNOME Shell? Есть ли для этого инструмент?

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

Есть ли какие-либо инструменты для этой цели? Есть ли какая-нибудь консоль реального времени, как у современных браузеров или серверов javascript?

4b9b3361

Ответ 1

Да, консоль реального времени называется "Look Glass" и может быть запущена нажатием Alt + F2 и набрав lg в приглашении.

Дополнительная информация: https://live.gnome.org/GnomeShell/LookingGlass

Ответ 2

В Fedora 20 (и, возможно, в любом новом дистрибутиве linux) вы можете использовать эту команду:

journalctl /usr/bin/gnome-session -f -o cat

Он постоянно (-f) печатает ошибки, сгенерированные gnome-session в окне терминала. Я предпочитаю флаг -o cat, поскольку он показывает полные сообщения без временных табло.

На Fedora 22, я считаю, он был заменен на:

journalctl /usr/bin/gnome-shell -f -o cat

Ответ 3

Зазеркалье отлично. Если вам нужна прямая консоль, вы можете получить ее, но не через LG, по крайней мере, не 3,6.

Если вы открываете терминал и набираете gnome-shell --replace, из него будет запускаться gnome-shell, вместо этого будет заменен исполняемый экземпляр, а затем будет выводиться глобальный журнал.

Вы можете проверить его с помощью Glass Glass, выполнив Alt - F2 lg, а затем global.log("foo") на вкладке "Оценщик".

Ответ 4

Я предпочитаю читать файлы ~/.xsession-errors и ~/.cache/gdm/session.log для более подробной информации. Некоторые сообщения об ошибках могут иметь отношение к другим исключениям или ошибкам.

Ответ 5

Я еще не могу комментировать другие ответы, поэтому подумал, что добавлю - как бы это ни было поздно:

  • Для комментария 2 ответа Джеффа просто перезапустите оболочку через alt+f2 - then r и enter, когда это произойдет - сеанс терминального сеанса завершится автоматически (по крайней мере, на Debian).

  • Я бы рекомендовал jsnjack answer для общей отладки, которая также работает с Debian Jessy; вероятно, хотите sudo, хотя. Он будет показывать ошибки gnome, а также сообщения global.log() в любом терминале, в котором вы его запустили.

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

Ответ 6

Anjuta Dev-Studio - отличный инструмент для работы с расширениями gnome-shell; он оснащен отладчиком, дизайнером GUI, контролем версий и т.д. Там даже руководство по использованию Anjuta с проектами расширения gnome-shell над gnome wiki-pages

Ответ 7

Другие ответы на самом деле не работали для меня при разработке моего собственного расширения. Что же было:

journalctl /usr/lib/gnome-session/gnome-session-binary -f -o cat 

Если вы хотите объявить вывод только для своего приложения, вы можете использовать:

journalctl /usr/lib/gnome-session/gnome-session-binary -f -o cat | grep [myAppId]

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

global.log('[myAppId]', valueToLog);

Если вы не знаете правильный путь к сеансу gnome, вы также можете использовать:

journalctl -f | grep gnome-session

Почему он не работает, вероятно, из-за моего двоичного пути, связанного с gnome-session, был другим, что может быть связано с установкой более новой версии gnome.

Ответ 8

Мы разрабатываем пакет emacs, предназначенный для расширения расширения gnome-shell здесь: https://github.com/paperwm/gnome-shell-mode

Он все еще находится в "бета" (dec. 2017), но его уже очень полезно.

Функции

  • Autocompletion (muuuch лучше, чем выглядит смотрящее стекло)
  • Eval of line, selection, current function, buffer (необязательно вставка результата в буфер в комментарии)
  • Выделение ошибки при обходе
  • Помощник поиска документации
  • Помощник для перезагрузки модуля, над которым вы работаете, без перезапуска gnome-shell