Built-In Variables


Rainmeter automatically creates a number of helpful variables for each skin. These variables do not need to be defined in the [Variables] section and cannot be directly modified by actions in a skin. Some built-in variables are dynamic.

Note: All path variables already contain a trailing slash "\".

Path variables

#PROGRAMDRIVE# Example: C: or \\server\Users\

Drive or server Rainmeter is located on.

#PROGRAMPATH# Example: C:\Program Files\Rainmeter\

Path to the program folder containing Rainmeter.exe.

#SETTINGSPATH# Example: C:\Users\YourName\Appdata\Roaming\Rainmeter\

Path to the folder containing Rainmeter.ini and other settings files and folders.

#SKINSPATH# Example: C:\Users\YourName\My Documents\Rainmeter\Skins\

Path to the skins folder.

#PLUGINSPATH# Example: C:\Program Files\Rainmeter\Plugins\

Path to the built-in plugins folder.

#ADDONSPATH# Example: C:\Users\YourName\Appdata\Roaming\Rainmeter\Addons\

Path to the addons folder.

Note: #ADDONSPATH# should be avoided when possible. Addons should be kept in the @Resources folder instead.

Skin variables

#@# Example: C:\Users\YourName\Documents\Rainmeter\Skins\illustro\@Resources\

Path to the @Resources folder for the current skin.

#CURRENTPATH# Example: C:\Users\YourName\Documents\Rainmeter\Skins\illustro\Clock\

Path to the folder containing the current skin file.

#CURRENTFILE# Example: Clock.ini

File name of the current skin.

#ROOTCONFIGPATH# Example: C:\Users\YourName\Documents\Rainmeter\Skins\illustro\

Path to Root config - Highest-level folder under the skins folder for the current skin.

#ROOTCONFIG# Example: illustro

Name of Root config - Highest-level folder under the skins folder for the current skin.

#CURRENTCONFIG# Example: illustro\Clock

Config name of current skin.

#CURRENTCONFIGX#, #CURRENTCONFIGY#, #CURRENTCONFIGWIDTH#, #CURRENTCONFIGHEIGHT#

Position and size of the current skin.

Note: These variables are dynamic.

Miscellaneous variables

#CRLF#

Creates a new line (carriage return / linefeed) where used.

#CURRENTSECTION#

The name of the section in which the variable is used. Provides a blank string if used in another context, such as GetVariable in a Lua script.

Monitor variables

Notes:

Monitor variables are dynamic, and DynamicVariables=1 will be required to detect changes when used in a skin. The values will be static when used in the [Rainmeter] section of a skin.

When the variables are used without specifying an @N monitor number, by default the values will be based on the primary monitor, where Rainmeter is started. In order to have the values reflect the monitor the skin is currently on, set AutoSelectScreen to "1" in Manage. or alternately, use the !AutoSelectScreen bang in the skin.

#WORKAREAX#, #WORKAREAY#, #WORKAREAWIDTH#, #WORKAREAHEIGHT#

Work area position and size of the current monitor.

#SCREENAREAX#, #SCREENAREAY#, #SCREENAREAWIDTH#, #SCREENAREAHEIGHT#

Screen area position and size of the current monitor.

#PWORKAREAX#, #PWORKAREAY#, #PWORKAREAWIDTH#, #PWORKAREAHEIGHT#

Work area position and size of the primary monitor.

#PSCREENAREAX#, #PSCREENAREAY#, #PSCREENAREAWIDTH#, #PSCREENAREAHEIGHT#

Screen area position and size of the primary monitor.

#WORKAREAX@N#, #WORKAREAY@N#, #WORKAREAWIDTH@N#, #WORKAREAHEIGHT@N#

Work area position and size of the Nth monitor.

#SCREENAREAX@N#, #SCREENAREAY@N#, #SCREENAREAWIDTH@N#, #SCREENAREAHEIGHT@N#

Screen area position and size of the Nth monitor.

#VSCREENAREAX#, #VSCREENAREAY#, #VSCREENAREAWIDTH#, #VSCREENAREAHEIGHT#

Position and size of the virtual screen.