aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xresources/niri-session10
1 files changed, 10 insertions, 0 deletions
diff --git a/resources/niri-session b/resources/niri-session
index 4e4fb096..ff9a5c6f 100755
--- a/resources/niri-session
+++ b/resources/niri-session
@@ -1,5 +1,15 @@
#!/bin/sh
+# Detect if being run as a user service, which implies external session management,
+# exec compositor directly
+if [ -n "${MANAGERPID:-}" ] && [ "${SYSTEMD_EXEC_PID:-}" = "$$" ]; then
+ case "$(ps -p "$MANAGERPID" -o cmd=)" in
+ *systemd*--user*)
+ exec niri --session
+ ;;
+ esac
+fi
+
if [ -n "$SHELL" ] &&
grep -q "$SHELL" /etc/shells &&
! (echo "$SHELL" | grep -q "false") &&