#!/usr/bin/env bash
# Abre el panel en SU PROPIA VENTANA, no en una pestaña del navegador.
#
#   ventana.sh [url]
#
# Existe porque habia dos sitios abriendo el panel de dos maneras distintas:
# jarvis.py lo abria con `chromium --app=`, que sale como una aplicacion, y
# arranca.sh —cuando JARVIS ya estaba en marcha— tiraba de `xdg-open`, que abre
# el navegador POR DEFECTO en una pestaña mas. Segun si ya estaba abierto o no,
# el mismo icono daba una cosa u otra.
#
# ## Que hace que parezca una aplicacion y no una web
#
#   --app=URL          sin barra de direcciones, sin pestañas, sin marcadores
#   --user-data-dir    perfil propio: no se mezcla con la navegacion del
#                      usuario, no hereda sus extensiones y no arrastra su
#                      sesion. Ademas asi la ventana es un proceso aparte y
#                      cerrarla no toca al navegador de verdad.
#   --class            para que el gestor de ventanas la trate como una
#                      aplicacion propia: entrada suya en la barra de tareas y
#                      su icono, no el del navegador. Va acompañado del
#                      StartupWMClass del .desktop.
#
# Firefox queda como ultimo recurso: su `--kiosk` no deja ni cerrar la ventana
# comodamente y no tiene un equivalente limpio a --app. Si es lo unico que hay,
# se abre en ventana nueva y se avisa.
set -uo pipefail

RAIZ=$(cd -P "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd)
URL=${1:-http://127.0.0.1:${JARVIS_PUERTO:-8790}/}
PERFIL=${XDG_CACHE_HOME:-$HOME/.cache}/jarvis-panel
CLASE=jarvis-nucleo

for navegador in chromium chromium-browser google-chrome brave-browser; do
    command -v "$navegador" >/dev/null || continue
    exec "$navegador" \
        --app="$URL" \
        --user-data-dir="$PERFIL" \
        --class="$CLASE" \
        --window-size=1500,940 \
        --no-first-run \
        --no-default-browser-check \
        --disable-features=TranslateUI \
        >/dev/null 2>&1
done

if command -v firefox >/dev/null || command -v firefox-esr >/dev/null; then
    FF=$(command -v firefox || command -v firefox-esr)
    echo "sin chromium: el panel se abre en una ventana de Firefox, con su barra" >&2
    exec "$FF" --new-window "$URL" >/dev/null 2>&1
fi

echo "no hay ningun navegador con el que abrir el panel: $URL" >&2
exit 1
