diff --git a/data/gnome-shell-wayland.service.in b/data/gnome-shell-wayland.service.in index 848a3ea32..351571c7f 100644 --- a/data/gnome-shell-wayland.service.in +++ b/data/gnome-shell-wayland.service.in @@ -17,10 +17,9 @@ Before=gnome-session-initialized.target #Conflicts=gnome-shell-x11.service [Service] -Type=dbus +Type=notify ExecStart=@bindir@/gnome-shell # Exit code 1 means we are probably *not* dealing with an extension failure SuccessExitStatus=1 # On wayland we cannot restart Restart=no -BusName=org.gnome.Shell diff --git a/data/gnome-shell-x11.service.in b/data/gnome-shell-x11.service.in index 142f26b24..2c9fec1b5 100644 --- a/data/gnome-shell-x11.service.in +++ b/data/gnome-shell-x11.service.in @@ -21,7 +21,7 @@ StartLimitIntervalSec=15s StartLimitBurst=3 [Service] -Type=dbus +Type=notify ExecStart=@bindir@/gnome-shell # Exit code 1 means we are probably *not* dealing with an extension failure SuccessExitStatus=1 @@ -29,4 +29,3 @@ SuccessExitStatus=1 Restart=always # Do not wait before restarting the shell RestartSec=0ms -BusName=org.gnome.Shell diff --git a/src/main.c b/src/main.c index 6faf9934f..8be1395f7 100644 --- a/src/main.c +++ b/src/main.c @@ -24,6 +24,14 @@ #include "shell-perf-log.h" #include "st.h" +#ifdef HAVE_SYSTEMD +#include +#else +/* So we don't need to add ifdef's everywhere */ +#define sd_notify(u, m) do {} while (0) +#define sd_notifyf(u, m, ...) do {} while (0) +#endif + extern GType gnome_shell_plugin_get_type (void); #define SHELL_DBUS_SERVICE "org.gnome.Shell" @@ -524,6 +532,7 @@ main (int argc, char **argv) shell_init_debug (g_getenv ("SHELL_DEBUG")); shell_dbus_init (meta_get_replace_current_wm ()); + sd_notify (0, "READY=1"); shell_a11y_init (); shell_perf_log_init (); shell_introspection_init ();