694d67f11e210c6419f042f25dd7d0e52197e813
jlauncher
Lanzador de juegos de jailgames. A partir de games.toml, lista los juegos, los
clona/actualiza desde sus repos Gitea, lee su icono y descripción, y los compila/ejecuta.
GUI en Python + PySide6, pensada para compilarse a binario nativo con Nuitka.
Requisitos
- Python 3.11+ (usa
tomllibde la stdlib) giten el PATHpip install PySide6
Ejecutar desde fuente
pip install PySide6
python -m jlauncher
La app crea una carpeta jlauncher_data/ junto al proyecto (o junto al binario, si está
compilado) con esta estructura anidada (Versión 1):
jlauncher_data/
<id_juego>/
repo/ # git clone del juego
metadata/
info.json # descripción, versión, rama por defecto, fecha de actualización
icon.png # copiado desde repo/release/icons/icon.png
Botones (interfaz en catalán)
- Descarrega: si no existe el clone, hace
git clone. Si existe, trae el remoto forzado (git fetch+git reset --hard origin/<rama>+git clean -fd), descartando cualquier cambio local. Después refresca la metadata:- descripción desde la API de Gitea (
/api/v1/repos/<org>/<repo>), - versión ejecutando
version_cmd(por defectogit describe --tags --always), - icono desde
release/icons/icon.png.
- descripción desde la API de Gitea (
- Juga: si hay
build_cmd, compila primero; luego ejecutarun_cmd. Para estos juegos bastarun_cmd = "make run"(compila y ejecuta), conbuild_cmdvacío. - Esborra: elimina la descarga local (carpeta del juego en
jlauncher_data/), sin quitar el juego delgames.toml.
Menú Opcions: Amaga els jocs no descarregats (filtro persistente) y
Comprova actualitzacions (marca los juegos descargados con commits pendientes).
Las preferencias se guardan en settings.json junto al ejecutable.
Las operaciones corren en segundo plano (QThreadPool); el log aparece en el panel inferior.
Configuración: games.toml
Una entrada [[game]] por juego. Campos:
| Campo | Obligatorio | Descripción |
|---|---|---|
id |
sí | slug → nombre de carpeta en jlauncher_data/ |
name |
sí | nombre visible |
clone_url |
sí | URL de git clone / pull |
run_cmd |
sí | comando que ejecuta el juego (cwd = repo) |
build_cmd |
no | comando de compilado; vacío = run_cmd ya compila |
version_cmd |
no | comando que imprime la versión (def. git describe --tags --always) |
info_url |
no | API Gitea del repo (def. derivada de clone_url) |
icon_rel |
no | ruta del icono dentro del repo (def. release/icons/icon.png) |
Compilar a binario (Nuitka)
pip install nuitka PySide6
./build.sh
# binario en dist/jlauncher.dist/jlauncher
Description