JARVIS/nucleo/ventana.sh
sito 8e4bc8ad94 JARVIS: asistente de voz local para Linux
Nucleo propio: oye con whisper.cpp, piensa con un modelo de Ollama, habla
con Piper, y hace RAG sobre los apuntes del usuario. 100% local, sin
cuentas ni claves.

Escrito bajo una restriccion dura, 4 GB de VRAM: el cerebro y whisper
comparten tarjeta y solo caben porque estan dimensionados para ello. El
RAG usa embeddings estaticos con busqueda hibrida; la voz clonada se sirve
de una cache de frases.

Incluye instalador (install.sh), requisitos, y documentacion del stack,
del manejo de root y de las acciones. Los apuntes indexados y el diario NO
se incluyen: son privados y el .gitignore los bloquea.
2026-08-16 15:34:37 +02:00

54 lines
2.3 KiB
Bash
Executable file

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