#!/bin/bash set -euo pipefail echo "==============================================================" echo " Sunshine Gaming Desktop" echo "==============================================================" echo echo "Starting existing desktop stack..." # On conserve temporairement tout le mécanisme Selkies existant : # Xorg NVIDIA, XFCE, PipeWire, WirePlumber, D-Bus, etc. /usr/bin/supervisord -c /etc/supervisord.conf & SUPERVISOR_PID=$! cleanup() { echo "Stopping supervisor..." kill "${SUPERVISOR_PID}" 2>/dev/null || true wait "${SUPERVISOR_PID}" 2>/dev/null || true } trap cleanup EXIT TERM INT echo echo "Waiting for Xorg on ${DISPLAY}..." for i in $(seq 1 60); do if xdpyinfo -display "${DISPLAY}" >/dev/null 2>&1; then echo "Xorg is ready." break fi if ! kill -0 "${SUPERVISOR_PID}" 2>/dev/null; then echo "ERROR: supervisord exited before Xorg became available." exit 1 fi if [ "${i}" -eq 60 ]; then echo "ERROR: Xorg did not become ready." exit 1 fi sleep 1 done echo echo "GPU:" nvidia-smi --query-gpu=name,driver_version --format=csv,noheader || true echo echo "Display:" xdpyinfo -display "${DISPLAY}" \ | grep -E 'dimensions:|resolution:' \ || true mkdir -p "${HOME}/.config/sunshine" cat > "${HOME}/.config/sunshine/sunshine.conf" <<'EOF' system_tray = disabled capture = nvfbc encoder = nvenc EOF echo "Sunshine configuration:" cat "${HOME}/.config/sunshine/sunshine.conf" echo echo "Starting Sunshine..." exec /usr/bin/sunshine