To make themes more dynamic, there are some variables you can use. These variables can be used anywhere in the tags.
Apart from the $system, $language and $country variables, all other variables have been present since Recalbox 9.2.
Contextual variables
Custom variables
The variables below are deprecated in Recalbox 10. We invite you to modify your themes with the latest variables.
The subpages listed above contain all the variables that can be used in Recalbox 10 minimum.
$system 
The $system variable is used to make the system name dynamic.
Example:
<include>
./$system/custom.xml
</include>
$language 
The $language variable allows you to use the code of the language chosen by the user.
Example:
<include>
./data/$language/texts.xml
</include>
$country 
The $country variable allows you to use the country chosen by the user.
Example:
<include>
./data/$country/logo.svg
</include>
$fullname 
The $fullname variable uses the full name of the current system.
Example:
<text name=“systemCurrent” text=“$fullname”></text>
$type 
The $type variable allows you to use the type of system from this list:
Example:
<text name=“systemGameName” text=“$type”></text>
$pad 
The $pad variable indicates whether a pad or joystick is required to take advantage of this system from this list:
Example:
<image>
<path path=“./data/assets/pad-$pad.svg”></path>
</image>
$keyboard 
The $keyboard variable indicates the level of need for a keyboard to take advantage of this system among this list:
<image>
<path path=“./data/assets/keyboard-$keyboard.svg”></path>
</image>
$mouse 
The $mouse variable indicates the level of need for a mouse to take advantage of this system from this list:
<image>
<path path=“./data/assets/mouse-$mouse.svg”></path>
</image>
$releaseyear 
The $releaseyear variable indicates the year the system was released.
Example:
<text name=“date” extra=“true”>
<text>System release date: $releaseyear</text>
</text>
$netplay 
The $netplay variable indicates by yes or no whether the system is Netplay-compatible or not.
Example:
<text name=“netplay” extra=“true”>
<text>Netplay available for system: $netplay</text>
</text>
$lightgun 
The $lightgun variable indicates by yes or no whether the system has lightgun-playable games.
<text name=“lightgun” extra=“true”>
<text>Lightgun game: $lightgun</text>
</text>
$crt 
The $crt variable indicates by yes or no whether a CRT adapter is active or not.
<text name=“crt” extra=“true”>
<text>CRT active: $crt</text>
</text>
$jamma 
The $jamma variable indicates by yes or no whether a Jamma adapter is active or not.
<text name=“jamma” extra=“true”>
<text>Jamma active: $jamma</text>
</text>
$tate 
The $tate variable indicates by yes or no whether the screen is flipped to 90° or -90°.
<text name=“tate” extra=“true”>
<text>Active tate: $tate</text>
</text>
$overscan 
The $overscan variable indicates by yes or no whether a CRT adapter without a Jamma adapter is active or not.
<text name=“overscan” extra=“true”>
<text>Overscan active: $overscan</text>
</text>
$resolution 
The $resolution variable is used to hold information for a certain screen resolution.
List of values:
qvga: less than or equal to 288 pixels in height.vga: less than or equal to 576 pixels in height.hd: less than or equal to 920 pixels in height.fhd: greater than 920 pixels in height.<text name=“resolution” extra=“true”>
<text>Resolution: $resolution</text>
</text>