aboutsummaryrefslogtreecommitdiff
path: root/resources
diff options
context:
space:
mode:
authorVladimir-csp <4061903+Vladimir-csp@users.noreply.github.com>2025-07-12 10:48:26 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2025-07-14 13:20:30 +0300
commit88339633b1dcbbafc42f1be6f51cc1ec8d895239 (patch)
treeecd85ead9392531515857b58ad0bc06ef198d637 /resources
parent22e43193e05ad49e2c3a34a0755ce41bc0c880a0 (diff)
downloadniri-88339633b1dcbbafc42f1be6f51cc1ec8d895239.tar.gz
niri-88339633b1dcbbafc42f1be6f51cc1ec8d895239.tar.bz2
niri-88339633b1dcbbafc42f1be6f51cc1ec8d895239.zip
Detect external session management
This should make `uwsm start niri.desktop` possible like with other compositors.
Diffstat (limited to 'resources')
-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") &&