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.
This commit is contained in:
commit
8e4bc8ad94
125 changed files with 25033 additions and 0 deletions
54
nucleo/ventana.sh
Executable file
54
nucleo/ventana.sh
Executable file
|
|
@ -0,0 +1,54 @@
|
|||
#!/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
|
||||
Loading…
Add table
Add a link
Reference in a new issue