#!/bin/sh
# p2i-fermer-session — ferme la session du bureau P2i.
#
# On demande au compositeur (labwc ou Wayfire) de s'arrêter proprement : l'écran
# de connexion revient alors normalement. Il ne faut PAS tuer la session entière
# (loginctl terminate-session) : le gestionnaire de connexion y voit un plantage
# et laisse l'écran noir.
uid="$(id -u)"

# Filet de sécurité (en root, sans mot de passe) : vérifie que l'écran de
# connexion revient, et le ramène sinon. Voir /usr/libexec/p2i/garde-connexion.
if [ -x /usr/libexec/p2i/garde-connexion ] && command -v pkexec >/dev/null 2>&1; then
    timeout 5 pkexec /usr/libexec/p2i/garde-connexion >/dev/null 2>&1
fi
# Signale à lancer-bureau que l'arrêt est voulu (pas de relance du bureau)
: > "${XDG_RUNTIME_DIR:-/run/user/$uid}/p2i-fermeture" 2>/dev/null

if pgrep -u "$uid" -x wayfire >/dev/null 2>&1; then
    pkill -TERM -u "$uid" -x wayfire
elif [ -n "${LABWC_PID:-}" ] && kill -0 "$LABWC_PID" 2>/dev/null; then
    labwc --exit 2>/dev/null || kill -TERM "$LABWC_PID"
else
    pkill -TERM -u "$uid" -x labwc
fi
