JailDesigner e0a93a9c28 Estil targeta tipus web a les files + tema seleccionable (system/clar/fosc)
UI:
- Files amb estil de targeta: icona arrodonida, títol gran, subtítol atenuat i
  'pills' amb estat, versió, data de llançament, jugadors, autor i topics. Els
  pills envolten amb un FlowLayout nou quan no caben.
- Submenú Opcions > Tema amb Sistema/Clar/Fosc; persisteix a settings.json
  (theme) i s'aplica a l'instant. El watcher del SO només actua en mode Sistema.

Dades:
- GameMeta guarda topics i created_at, llegits de la resposta de Gitea que ja
  demanàvem (gratis, auto-sincronitzats).
- games.toml: camps opcionals players i author per joc (la resta surt de Gitea).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 10:13:32 +02:00

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 tomllib de la stdlib)
  • git en el PATH
  • pip 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 defecto git describe --tags --always),
    • icono desde release/icons/icon.png.
  • Juga: si hay build_cmd, compila primero; luego ejecuta run_cmd. Para estos juegos basta run_cmd = "make run" (compila y ejecuta), con build_cmd vacío.
  • Esborra: elimina la descarga local (carpeta del juego en jlauncher_data/), sin quitar el juego del games.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 slug → nombre de carpeta en jlauncher_data/
name nombre visible
clone_url URL de git clone / pull
run_cmd 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, onefile)

build.sh lo hace todo: crea el .venv, instala dependencias (PySide6 + Nuitka + zstandard) y compila un único ejecutable comprimido, empaquetándolo en dist/jlauncher-v<versión>-<os>-<arch>.tar.gz junto a games.toml.

./build.sh
# binario: dist/jlauncher  (+ dist/games.toml)

El binario crea jlauncher_data/ y settings.json junto a sí mismo (resuelto vía NUITKA_ONEFILE_DIRECTORY). El punto de entrada para empaquetar es app.py (desde fuente se ejecuta con python -m jlauncher).

Prerequisitos del sistema (no los instala el script)

  • Python 3.11+ (usa tomllib).
  • Un compilador C:
    • Linux: gcc y patchelf (p. ej. apt install build-essential patchelf python3-dev).
    • macOS: Xcode Command Line Tools (xcode-select --install); aquí no hace falta patchelf (Nuitka usa install_name_tool).
  • git en el PATH.

macOS

Compila en el propio Mac (Nuitka no compila cruzado): ./build.sh genera jlauncher-v…-darwin-arm64.tar.gz. Como el binario no va firmado, la primera vez quizá debas hacer xattr -dr com.apple.quarantine jlauncher o abrirlo con clic derecho → Abrir. Lánzalo desde terminal (./jlauncher).

S
Description
Llançador de jailgames desde gitea
Readme 1.8 MiB
v1.0.5 Latest
2026-06-01 13:16:25 +02:00
Languages
Python 88.7%
PowerShell 5.9%
Shell 5.4%