| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #!/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
|