Как я могу перезапустить оболочку 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 для деталей.
Но в 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
).