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