!/bin/sh

SESSION="$1"

for desktop in /usr/share/xsessions/*.desktop; do
    exec_line=$(grep '^Exec=' "$desktop" | cut -d= -f2)

    if [ "$exec_line" = "$SESSION" ]; then
        DESKTOP_NAME=$(grep '^DesktopNames=' "$desktop" | cut -d= -f2)
        break
    fi
done

if [ -n "$DESKTOP_NAME" ]; then
    export XDG_CURRENT_DESKTOP="$DESKTOP_NAME"
    export XDG_SESSION_DESKTOP="$DESKTOP_NAME"
fi

export XDG_SESSION_TYPE=x11

systemctl --user import-environment \
    DISPLAY \
    XDG_CURRENT_DESKTOP \
    XDG_SESSION_DESKTOP \
    XDG_SESSION_TYPE

dbus-update-activation-environment --systemd \
    DISPLAY \
    XDG_CURRENT_DESKTOP \
    XDG_SESSION_DESKTOP \
    XDG_SESSION_TYPE

systemctl --user --no-block start snuk-x11-session.target

exec "$@"
