9d13c2434b11cbc4f7a9665e8c888257284b6c12
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
- Download: 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 (
- Run: si hay
build_cmd, compila primero; luego ejecutarun_cmd. Para estos juegos bastarun_cmd = "make run"(compila y ejecuta), conbuild_cmdvacío.
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