92

When making changes to extensions or installing applications I have sometimes found it neccessary to restart the GNOME shell for the changes to take effect. In the past, pressing Alt + F2, typing 'r' and pressing enter would do this.

However, this does not seem to be available on Wayland.

enter image description here

I can log out and back in but this is not convenient when I have many apps and windows open working on a project.

HarlemSquirrel
  • 1,021
  • 1
  • 7
  • 6

7 Answers7

25

Turning @gravity's comment into an answer, a Gnome mailing list thread says that:

runDialog: Disable restart command on wayland

Clients can be expected to deal with the WM going away temporarily, but not the display server - so when running as wayland compositor, a restart is generally a fancy way of killing the user session, and there's little we can do about it except for preventing the user to shoot herself in the foot by throwing an error.

dmh
  • 352
  • 3
  • 8
22

Under Wayland, gnome-shell does not have a graceful way to restart and leave the applications open. If you must restart gnome-shell then you are probably better off saving all of your work and using the menu to log out. If that's not working for some reason, the command killall -HUP gnome-shell will get it done from the command runner (Alt+F2) or terminal.

Segfault
  • 653
  • 1
  • 6
  • 16
  • If you are a single desktop user, for example, with the username _foo_... **`killall -u foo`** – noobninja Feb 07 '18 at 02:55
  • After using killall, I was able to restart using export DISPLAY=:N Xwayland. (where you can find N using alt Fn keys). – S2L Apr 25 '23 at 00:24
7

I wanted to restart due notifications being stuck all the time, especially because of Google Calendar notifications. On X.Org I used to solve this issue by restarting Gnome (i.e. ALT + F2 and then r).

On Wayland I simply use the lock screen feature (don't logout!) and then I log back in. Just press SUPER + L.

That's it, the notifications are gone when I log back in so it's quite possible that Gnome got restarted as well. The advantage is that I don't have to close all my applications.

DarkDiamond
  • 1,875
  • 11
  • 12
  • 19
6

There is no way on wayland, see this QA:

In an Xorg session one can restart GNOME shell without losing application state as applications are running against a separate server (X). But unlike Xorg in case of a Wayland session GNOME shell is not separate from the Wayland server.

So there isn't any way to restart GNOME shell in Wayland without losing application state as the display server also goes down. It's similar to restarting X server in an Xorg session.

That is the reason why this shell restart option is disabled in Wayland (recall that usually the key sequence to kill the X server is also disabled by default in the Xorg session) and there will probably never be any non-destructive way to restart GNOME shell in Wayland.

You may see this GNOME bug report for details.

But, as you already pointed out, on Xorg it is possible by just doing ALT + F2 and then entering r in the dialogue.

rubo77
  • 4,680
  • 11
  • 45
  • 79
4

There is an extension that allows you to restart any extension from the notice bar itself.

Tested on Gnome 3.38

Aurovrata
  • 201
  • 1
  • 4
  • 1
    Unfortunately the extension page starts off with this: >Gnome Shell Extension Reloader, extension-reloader@nls1729 - Effective March 29, 2021 the extension is NOT MAINTAINED. I give my permission to anyone who may want to become the maintainer. I no not have the free time or energy necessary to maintain the extension. – DaveLak Apr 22 '23 at 02:45
4

I found another cool way to debug a shell extension instead of reloading it, by running it in a nested session:

dbus-run-session -- gnome-shell --nested --wayland
Aurovrata
  • 201
  • 1
  • 4
2

EDIT DEC 2021: This solution no longer works on Gnome 3.38. shell command returns

Reloading extensions does not work correctly and is no longer supported

I found a way to load/enable manually installed shell-extensions on Wayland. This article explains how to do this,

The gnome-shell command will give you the shell version currenlty installed to make sure you download the correct extension version,

> gnome-shell --version
GNOME Shell 3.30.2

in my case I have version 3.30.2. I Downloaded a shell extension for that version and proceeded to extract it content into a new folder. The name of this folder must match the uuid string found in the metadata.json file in the root of the extension. I then proceeded to create a new folder under,

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

After unzip the extension archive content into this folder, I used the following command to enable the the new extension,

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

the gnome-shell-extension-tool also allows you to reload an extension (-r) and disable it too (-d).

Aurovrata
  • 201
  • 1
  • 4
  • I don't see how this answers the question. The linked article states that it's author doesn't now a solution to this question other than logout/login. Not enough karma to downvote. – dreua Jul 06 '21 at 16:23
  • 2
    Read the question, not just the title! It answers the question of how to get newly installed extensions to reload and take effect. One way to do this is to restart Wayland, another is to reload the extension as explained in this answer. – Aurovrata Jul 07 '21 at 13:21
  • Huh if -r actually works that would be great, thanks – dreua Jul 08 '21 at 14:55
  • 1
    Reloading doesn't work on recent versions. Tried this on Fedora 34, got the following message: .. > Reloading extensions does not work correctly and is no longer supported – Gareve Dec 02 '21 at 19:01
  • I confirm, current running Gnome 3.38 and getting the same msg – Aurovrata Dec 06 '21 at 11:37