diff options
Diffstat (limited to 'data/org.gnome.Shell@wayland.service.in')
-rw-r--r-- | data/org.gnome.Shell@wayland.service.in | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/data/org.gnome.Shell@wayland.service.in b/data/org.gnome.Shell@wayland.service.in new file mode 100644 index 0000000..76d5ccb --- /dev/null +++ b/data/org.gnome.Shell@wayland.service.in @@ -0,0 +1,37 @@ +[Unit] +Description=GNOME Shell on Wayland +# On wayland, force a session shutdown +OnFailure=org.gnome.Shell-disable-extensions.service gnome-session-shutdown.target +OnFailureJobMode=replace-irreversibly +CollectMode=inactive-or-failed +RefuseManualStart=on +RefuseManualStop=on + +After=gnome-session-manager.target + +Requisite=gnome-session-initialized.target +PartOf=gnome-session-initialized.target +Before=gnome-session-initialized.target + +[Service] +Slice=session.slice +Type=notify +# NOTE: This can be replaced with ConditionEnvironment=XDG_SESSION_TYPE=%I in +# the [Unit] section with systemd >= 246. Also, the current solution is +# kind of painful as systemd had a bug where it retries the condition. +# Only start if the template instance matches the session type. +ExecCondition=/bin/sh -c 'test "$XDG_SESSION_TYPE" = "%I" || exit 2' +ExecStart=@bindir@/gnome-shell +# Exit code 1 means we are probably *not* dealing with an extension failure +SuccessExitStatus=1 + +# unset some environment variables that were set by the shell and won't work now that the shell is gone +ExecStopPost=-/bin/sh -c 'test "$SERVICE_RESULT" != "exec-condition" && systemctl --user unset-environment GNOME_SETUP_DISPLAY WAYLAND_DISPLAY DISPLAY XAUTHORITY' + +# On wayland we cannot restart +Restart=no +# Kill any stubborn child processes after this long +TimeoutStopSec=5 + +# Lower down gnome-shell's OOM score to avoid being killed by OOM-killer too early +OOMScoreAdjust=-1000 |