JailDesigner 38c4f50965 La consola fa créixer la finestra en comptes de menjar espai a la llista
En desplegar/replegar la consola, la finestra creix/encongeix la mateixa alçada
en lockstep amb el panell (i es fixa l'alçada de la consola min=max perquè agafi
exactament aquest espai), de manera que la llista de jocs es manté constant i no
es mou. Si la finestra està maximitzada cau al comportament d'encongir la llista.
També s'allarga el marge de gràcia abans de replegar en mode auto (1.8s -> 4s).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 10:42:28 +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%