#!/bin/sh
# Avvia niri-session e, se la sessione di login viene chiusa (SIGTERM/SIGHUP da SDDM o logind),
# ferma niri.service invece di lasciarla orfana. Senza questo, il login successivo fallisce
# con "A niri session is already running" (laboratorio, report 01, E6).
# Come la fine normale di niri-session: si ferma niri.service e si chiude la sessione grafica
# (niri-shutdown.target), altrimenti le unità legate a graphical-session.target, come dms.service
# e i portali, ripartono senza schermo (report 02).
ferma() {
    systemctl --user stop niri.service
    systemctl --user start --job-mode=replace-irreversibly niri-shutdown.target
    exit 0
}
trap ferma TERM HUP INT
niri-session "$@" &
wait $!
