2019-04-19 22:21:55 +00:00
|
|
|
[Unit]
|
|
|
|
Description=GNOME Shell on Wayland
|
|
|
|
# On wayland, force a session shutdown
|
2020-02-13 17:39:32 +00:00
|
|
|
OnFailure=org.gnome.Shell-disable-extensions.service gnome-session-shutdown.target
|
2019-04-19 22:21:55 +00:00
|
|
|
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]
|
2020-07-29 14:59:32 +00:00
|
|
|
Slice=session.slice
|
2019-08-25 05:26:12 +00:00
|
|
|
Type=notify
|
2020-06-09 11:01:39 +00:00
|
|
|
# NOTE: This can be replaced with ConditionEnvironment=XDG_SESSION_TYPE=%I
|
|
|
|
# with systemd >= 245. 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'
|
2019-04-19 22:21:55 +00:00
|
|
|
ExecStart=@bindir@/gnome-shell
|
2020-06-09 11:01:39 +00:00
|
|
|
# Exit code 1 means we are probably *not* dealing with an extension failure
|
|
|
|
SuccessExitStatus=1
|
2020-03-25 20:30:46 +00:00
|
|
|
|
|
|
|
# unset some environment variables that were set by the shell and won't work now that the shell is gone
|
2020-08-20 08:08:01 +00:00
|
|
|
ExecStopPost=-/bin/sh -c 'test "$SERVICE_RESULT" != "exec-condition" && systemctl --user unset-environment GNOME_SETUP_DISPLAY WAYLAND_DISPLAY DISPLAY XAUTHORITY'
|
2020-03-25 20:30:46 +00:00
|
|
|
|
2019-04-19 22:21:55 +00:00
|
|
|
# On wayland we cannot restart
|
|
|
|
Restart=no
|
2019-09-03 11:45:24 +00:00
|
|
|
# Kill any stubborn child processes after this long
|
|
|
|
TimeoutStopSec=5
|