Carpetas y archivos
Una sola regla, y mucha libertad.
Un tema es una carpeta colocada en /recalbox/share/themes/.
La única regla
Esa carpeta debe contener un archivo
theme.xml.
Eso es todo. theme.xml es el punto de entrada: Recalbox lo busca en la raíz de la carpeta, y si no está, el tema no existe.
Nada más es obligatorio. Ni nombres de subcarpetas, ni división, ni organización. Puedes escribir un tema entero en ese único archivo.
Dividir, porque es más práctico
Un tema serio pronto alcanza miles de líneas. Así que se divide en varios archivos XML, ordenados como quieras, que theme.xml incluye:
mon-theme/
theme.xml ← el único nombre impuesto
variables.xml
views/
system.xml
detailed.xml
menu.xml
data/
fonts/
images/
Esos nombres son tuyos: llámalos como quieras. La costumbre, tanto en los temas publicados como en las exportaciones del estudio, es escribirlos en inglés — views/, data/, fonts/ — porque es el idioma de las etiquetas que contienen.
El mecanismo de inclusión se explica en Dividir el tema.
Las rutas
Una ruta escrita en un archivo es relativa a ese archivo. En cuanto se divide en subcarpetas, eso se convierte en una fuente de errores.
Pasa por ${root}, que siempre designa la raíz del tema:
<path>${root}/data/images/fond.jpg</path> <!-- ✅ funciona desde cualquier archivo -->
<path>../data/images/fond.jpg</path> <!-- frágil: depende de dónde se escriba la línea -->