| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- #!/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 "Triggering input hotplug..."
- udevadm trigger --subsystem-match=input
- echo
- echo "Starting Sunshine..."
- /usr/bin/sunshine &
- SUNSHINE_PID=$!
- echo "Waiting for Sunshine virtual input devices..."
- for i in $(seq 1 30); do
- if grep -q 'Name="Mouse passthrough"' /proc/bus/input/devices; then
- echo "Sunshine virtual input devices detected."
- break
- fi
- if ! kill -0 "${SUNSHINE_PID}" 2>/dev/null; then
- echo "ERROR: Sunshine exited."
- wait "${SUNSHINE_PID}"
- exit $?
- fi
- sleep 1
- done
- echo "Triggering input hotplug..."
- udevadm trigger --subsystem-match=input
- wait "${SUNSHINE_PID}"
|