#!/bin/sh
# PaganDE — start sesji Wayland.
# Wywoływany przez menedżer logowania (wpis wayland-sessions) lub ręcznie.
#
#   1. ustawia zmienne sesji (XDG_CURRENT_DESKTOP itd.)
#   2. przy pierwszym logowaniu rozkłada domyślne konfiguracje do ~/.config
#   3. startuje PipeWire/Wireplumber (jeśli nie działają)
#   4. exec labwc (resztę startuje plik labwc/autostart)

set -e

DE_NAME="PaganDE"
DE_VERSION="0.1.0"

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

# ── Domyślne konfiguracje (pierwsze logowanie) ───────────────
# Pakiet pagande instaluje je do /etc/xdg/pagande/; 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

  # pary: katalog-źródło  katalog-docelowy
  stage_one "labwc" "labwc"
  stage_one "shell" "pagande"
}

stage_one() {
  _d="$1"
  _target="$2"
  [ -e "$_src/$_d" ] || return 0
  [ -e "$_dst/$_target" ] && return 0
  cp -a "$_src/$_d" "$_dst/$_target"
  echo "${DE_NAME}: zainstalowano domyślne ustawienia (~/.config/$_target)"
}
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 ────────────────────────────────────────────────
exec labwc "$@"
