Les variables globales décrivent l'installation de Recalbox et son matériel. Elles ne changent pas pendant une session de l'interface, et sont utilisables partout : liste des systèmes, listes de jeux, menus.
Ces variables n'existent que pour les thèmes conçus pour Recalbox 10 minimum.
${root}Chemin absolu vers la racine du thème actif. C'est le moyen fiable de référencer une ressource sans se soucier du dossier courant.
/recalbox/share/themes/mon-theme
<image name="deco" extra="true" path="${root}/art/fond.png" />
${recalbox.version}Version de Recalbox installée.
10.1
${recalbox.built}Date et heure de compilation de la version installée.
Jul 20 2026 - 10:00:38
${settings.language}Code de la langue configurée, sur 2 caractères.
fr
${settings.locale}Locale complète au format xx_XX, où xx est la langue et XX le pays.
fr_FR
${settings.region}Région choisie dans MENU PRINCIPAL > OPTIONS DE L'INTERFACE > THÈME > RÉGION, parmi eu, jp et us. C'est cette valeur qui pilote les suffixes régionaux (text.EU, text.JP, text.US).
eu
${settings.timezone}Fuseau horaire configuré.
Europe/Paris
${hardware.board}Nom de la carte sur laquelle tourne Recalbox.
RPi 5
${hardware.crt}yes ou no selon qu'une sortie vidéo CRT est active (JAMMA inclus).
${hardware.jamma}yes ou no selon qu'une sortie vidéo JAMMA est active.
${hardware.ispc}yes ou no selon que la machine est un PC x86_64.
${hardware.ispi}yes ou no selon que la machine est un Raspberry Pi.
${hardware.isodroid}yes ou no selon que la machine est une Odroid Go Advance / RG351x.
${hardware.isanbernic}yes ou no selon que la machine est une Anbernic RG353x.
${display.tate}yes ou no selon que l'écran est en configuration verticale (TATE).
${display.tateleft}yes ou no selon que l'affichage TATE est tourné à 90°.
${display.tateright}yes ou no selon que l'affichage TATE est tourné à 270°.
${display.overscan}yes ou no selon que Recalbox est en overscan, c'est-à-dire CRT sans JAMMA.
${display.resolution}Tranche de résolution actuelle, parmi qvga, vga, hd et fhd.
fhd
${random.between(...)}Choisit une valeur au hasard parmi celles fournies, séparées par des virgules. Les espaces autour des valeurs sont ignorés. ${random.between()} ne retourne rien ; ${random.between(valeur1)} retourne toujours valeur1.
<text name="citation" extra="true" text="${random.between(Insert coin,Ready player one,Game over)}" />
${random.range(min,max)}Choisit un entier au hasard entre min et max, bornes incluses. S'il n'y a pas exactement deux paramètres, si l'un des deux n'est pas un entier, ou si min >= max, la variable est remplacée par une chaîne vide et une erreur est écrite dans themes.log.
<image name="fond" extra="true" path="${root}/art/fond${random.range(1,10)}.png" />