gnome-shell/data/org.gnome.Shell@wayland.service.in
Hans Ulrich Niedermann 38d642541c Correct the systemd version required for ConditionEnvironment=
According to systemd's NEWS file, the ConditionEnvironment= setting
has only been introduced in systemd 246, not in 245 like the comment
in the services files claimed.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1472#note_942075

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1472>
2020-12-09 15:08:15 +00:00

35 lines
1.3 KiB
SYSTEMD

[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
# 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