#!/bin/bash
# Budgie Tovarisch Rescue — emergency Budgie Desktop launcher

# Source user override if exists
CONFIG_FILE="${XDG_CONFIG_HOME:-$HOME/.config}/budgie-tovarisch-rescue.conf"
if [ -f "$CONFIG_FILE" ]; then
    source "$CONFIG_FILE"
fi

# Default environment
export XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}"
export XDG_SESSION_TYPE=wayland
export GDK_BACKEND=wayland
export QT_QPA_PLATFORM=wayland
export CLUTTER_BACKEND=wayland
export XDG_CURRENT_DESKTOP=Budgie:GNOME
export XDG_SESSION_DESKTOP=budgie-rescue

# Recovery mode: use minimal config if requested
if [ "$1" = "--recovery" ] || [ "$1" = "-r" ]; then
    echo "Starting Budgie Tovarisch in RECOVERY mode"
    # Use minimal configuration
    LABWC_CONFIG="/etc/xdg/labwc/minimal-rc.xml"
else
    LABWC_CONFIG="/etc/xdg/labwc/rc.xml"
fi

# Check if config exists, fallback to default if not
if [ ! -f "$LABWC_CONFIG" ]; then
    echo "Warning: Config $LABWC_CONFIG not found, using built-in defaults"
    LABWC_CONFIG=""
fi

# Start labwc
if [ -n "$LABWC_CONFIG" ]; then
    labwc -C "$LABWC_CONFIG" &
else
    labwc &
fi
LABWC_PID=$!

# Give labwc time to initialize
sleep 2

# Launch Budgie components
budgie-panel &
budgie-desktop-view &
budgie-desktop-services &

# Wait for labwc to exit (session ends)
wait $LABWC_PID
