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.
$systemThe $system variable is used to make the system name dynamic.
Example:
<include>
  ./$system/custom.xml
</include>
$languageThe $language variable allows you to use the code of the language chosen by the user.
Example:
<include>
  ./data/$language/texts.xml
</include>
$countryThe $country variable allows you to use the country chosen by the user.
Example:
<include>
  ./data/$country/logo.svg
</include>
$fullnameThe $fullname variable uses the full name of the current system.
Example:
<text name=“systemCurrent” text=“$fullname”></text>
$typeThe $type variable allows you to use the type of system from this list:
Example:
<text name=“systemGameName” text=“$type”></text>
$padThe $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>
$keyboardThe $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>
$mouseThe $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>
$releaseyearThe $releaseyear variable indicates the year the system was released.
Example:
<text name=“date” extra=“true”>
  <text>System release date: $releaseyear</text>
</text>
$netplayThe $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>
$lightgunThe $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>
$crtThe $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>
$jammaThe $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>
$tateThe $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>
$overscanThe $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>
$resolutionThe $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>