#!/usr/bin/env bash # =========================================================================== # FOSFENO :: arranque en modo portatil (Linux de escritorio) # # Lanza el servidor, abre el panel y las visuales, y lo cierra todo con Ctrl+C. # Antes hay que instalar una vez con: bash install.sh --laptop # =========================================================================== set -u DIR="$(cd "$(dirname "$0")" && pwd)" PORT=8080 export FOSFENO_PORT="$PORT" export FOSFENO_NO_KIOSK=1 if [ ! -x "$DIR/.venv/bin/python3" ]; then echo "FOSFENO no esta instalado todavia. Ejecuta primero:" echo " bash install.sh --laptop" exit 1 fi SERVER_PID="" STAGE_PID="" cleanup() { echo echo "Cerrando FOSFENO..." [ -n "$STAGE_PID" ] && kill "$STAGE_PID" 2>/dev/null [ -n "$SERVER_PID" ] && kill "$SERVER_PID" 2>/dev/null exit 0 } trap cleanup INT TERM echo "Arrancando FOSFENO..." "$DIR/.venv/bin/python3" "$DIR/backend/server.py" & SERVER_PID=$! # Espera (hasta 20 s) a que el servidor responda for _ in $(seq 1 40); do curl -s "http://localhost:$PORT/" >/dev/null 2>&1 && break sleep 0.5 done # Abre las visuales en una ventana propia de Chromium. Es una ventana normal: # arrastrala al proyector y pulsa F11 para ponerla a pantalla completa. BROWSER="$(command -v chromium-browser || command -v chromium \ || command -v google-chrome || true)" if [ -n "$BROWSER" ]; then "$BROWSER" --app="http://localhost:$PORT/stage" \ --user-data-dir="/tmp/fosfeno-stage" \ --use-fake-ui-for-media-stream \ --autoplay-policy=no-user-gesture-required \ >/dev/null 2>&1 & STAGE_PID=$! else echo "Aviso: no se encontro Chromium. Abre las visuales a mano en:" echo " http://localhost:$PORT/stage" fi # Abre el panel de control en el navegador por defecto xdg-open "http://localhost:$PORT/" >/dev/null 2>&1 || true cat <