#!/bin/sh
# PaganDE — start sesji Wayland.
# Wywoływany przez menedżer logowania (wpis wayland-sessions) lub ręcznie.
#
#   Projekt: PaganBuild/PaganDE — budowany od zera wg pagande.md
#
#   1. ustawia zmienne sesji (XDG_CURRENT_DESKTOP itd.)
#   2. przy pierwszym logowaniu rozkłada domyślne konfiguracje
#      z /etc/xdg/pagande do ~/.config (dostarcza meta-pakiet `pagande`)
#   3. startuje PipeWire / Wireplumber (jeśli nie działają)
#   4. exec labwc — resztę środowiska wstaje config/labwc/autostart

set -e

DE_NAME="PaganDE"

export XDG_CURRENT_DESKTOP="${DE_NAME}:wlroots"
export XDG_SESSION_DESKTOP="pagande"
export XDG_SESSION_TYPE="wayland"

# ── Domyślne konfiguracje (pierwsze logowanie) ────────────────
# Kopiujemy do ~/.config TYLKO jeśli użytkownik nie ma jeszcze własnych.
stage_defaults() {
    _src="/etc/xdg/pagande"
    _dst="${XDG_CONFIG_HOME:-$HOME/.config}"
    [ -d "$_src" ] || return 0

    # Katalogi z /etc/xdg/pagande/ trafiają do ~/.config o tej samej nazwie.
    # Lista = warstwy powłoki (pagande.md §3); rośnie w miarę budowy projektu.
    for _d in labwc waybar rofi mako foot kanshi gtk-3.0; do
        [ -e "$_src/$_d" ] || continue
        [ -e "$_dst/$_d" ] && continue
        cp -a "$_src/$_d" "$_dst/$_d"
        echo "${DE_NAME}: zainstalowano domyślne ustawienia (~/.config/$_d)"
    done
}
stage_defaults

# ── Audio (PipeWire) ───────────────────────────────────────────
if command -v pipewire >/dev/null 2>&1 && ! pgrep -x pipewire >/dev/null 2>&1; then
    pipewire &
fi
if command -v wireplumber >/dev/null 2>&1 && ! pgrep -x wireplumber >/dev/null 2>&1; then
    wireplumber &
fi

# ── Kompozytor (fork labwc — compositor/labwc, pakiet labwc-pagan) ──
exec labwc "$@"
