Как я могу перезапустить оболочку GNOME на Wayland?

При внесении изменений в расширения или установке приложений я иногда находил необходимым перезапустить оболочку GNOME, чтобы изменения вступили в силу. Раньше, нажимая Alt + F2, печатая 'r' и нажимая ввод, делали это.

Однако, это, кажется, не доступно на Wayland.

Я могу выйти и снова войти, но это не удобно, когда у меня открыто много приложений и окон, работающих над проектом.

7 ответов

Превращая комментарий @gravity в ответ, ветка списка рассылки Gnome сообщает, что:

runDialog: отключить команду перезапуска на Wayland

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

Под Уэйлендом, gnome-shell не имеет изящного способа перезапустить и оставить приложения открытыми. Если вы должны перезагрузить gnome-shell тогда вам, вероятно, лучше сохранить всю свою работу и использовать меню для выхода из системы. Если по какой-то причине это не работает, команда killall -HUP gnome-shell получит это от командного бегуна (Alt+F2) или терминала.

Я хотел перезапустить из-за того, что уведомления постоянно зависали, особенно из-за уведомлений Календаря Google. В X.Org я решал эту проблему, перезапуская Gnome (т. е. ALT+ F2, а затем r).

В Wayland я просто использую функцию блокировки экрана (не выходя из системы!), а затем снова вхожу в систему. Просто нажмите SUPER+ L.

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

На Wayland нет пути, посмотрите этот QA:

В сеансе Xorg можно перезапустить оболочку GNOME без потери состояния приложения, так как приложения работают на отдельном сервере (X). Но в отличие от Xorg в случае с сессиями Wayland оболочка GNOME не отделена от сервера Wayland.

Таким образом, невозможно перезапустить оболочку GNOME в Wayland без потери состояния приложения, так как сервер дисплея также выходит из строя. Это похоже на перезапуск X-сервера в сеансе Xorg.

Вот почему эта опция перезапуска оболочки отключена в Wayland (напомним, что обычно последовательность клавиш для отключения X-сервера также отключается по умолчанию в сеансе Xorg), и, вероятно, никогда не будет неразрушающего способа перезапустить оболочку GNOME. в Уэйленде.

Вы можете увидеть этот отчет об ошибке GNOME для деталей.

1: https://bugzilla.gnome.org/show_bug.cgi?id=741665

Но в Xorg это возможно, просто нажав ALT + F2 и затем введя r в диалоге.

Существует расширение , позволяющее перезапустить любое расширение из самой панели уведомлений.

Протестировано на Gnome 3.38.

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

      dbus-run-session -- gnome-shell --nested --wayland

РЕДАКТИРОВАТЬ ДЕКАБРЬ 2021 ГОДА: это решение больше не работает в Gnome 3.38. команда оболочки возвращает результат

      Reloading extensions does not work correctly and is no longer supported

Я нашел способ загрузить/включить установленные вручную расширения оболочки на Wayland. В этой статье объясняется, как это сделать,

The gnome-shellкоманда сообщит вам текущую установленную версию оболочки, чтобы убедиться, что вы загружаете правильную версию расширения,

      > gnome-shell --version
GNOME Shell 3.30.2

в моем случае у меня версия 3.30.2. Я загрузил расширение оболочки для этой версии и приступил к извлечению его содержимого в новую папку. Имя этой папки должно соответствоватьuuidстрока, найденная вmetadata.jsonфайл в корне расширения. Затем я приступил к созданию новой папки под:

      mkdir ~/.local/share/gnome-shell/extensions/<uuid-string-found-in-metadata.json-file>/

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

      gnome-shell-extension-tool -e <uuid-string-found-in-metadata.json-file>

тотgnome-shell-extension-toolтакже позволяет перезагрузить расширение (-r) и отключите его тоже (-d).

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