Upload
zzzt
View
4
Download
0
Embed Size (px)
Citation preview
1
Rainmeter
Manual
Documentation for the latest beta version of Rainmeter. Use links in the sidebar to navigate.
Installation
Download the latest release or beta version from rainmeter.net.
Standard installation
The standard installation is recommended for most users. Simply run the installer and follow the instructions.
Portable installation
To run Rainmeter from a single folder, so it can be easily taken with you or even run directly from a removable drive, select 'Portable install' during the
install process. Note that the required C++ and .NET runtime libraries will have to be manually installed.
Silent installation (advanced)
To install Rainmeter without user interaction, use the installer command line switches.
Default file locations
Program folder:
C:\Program Files\Rainmeter
Skins folder:
C:\Documents and Settings\YourName\My Documents\Rainmeter\Skins (Windows XP)
C:\Users\YourName\Documents\Rainmeter\Skins (Windows Vista and later)
Rainmeter.ini and themes:
C:\Documents and Settings\YourName\Application Data\Rainmeter (Windows XP)
C:\Users\YourName\Appdata\Roaming\Rainmeter (Windows Vista and later)
Settings
The general configuration settings are in a file named Rainmeter.ini. To modify settings, use the Manage dialog by clicking on the Rainmeter tray icon.
Alternatively, right-click on the tray icon and select "Edit Settings" to modify the options with a text editor.
The Rainmeter.ini file has several sections: [Rainmeter], [TrayMeasure], and individual sections for each config which has been loaded. The Rainmeter
section contains general settings that can be used to change how Rainmeter behaves. The settings are used as default values for all new configs that are
opened. Once a config is opened it will write the settings under its own section in the Rainmeter.ini file.
Important: Some of the settings in the Rainmeter.ini file cannot be changed while Rainmeter is running becase a refresh will write the old values back to
the ini file. If you cannot change something, try changing the value after completely closing Rainmeter.
2
Settings-Rainmeter
The [Rainmeter] section of Rainmeter.ini defines general Rainmeter settings. The following must be put under the [Rainmeter] section:
Options
DesktopWorkArea
Sets a new work area for the desktop. The workarea defines the area maximized windows cover. Use four comma separated values to set the location
of the top-left and bottom-right corners of the area (e.g. DesktopWorkArea=0,0,1500,1200 ). The values are Left,Top, Right, Bottom. Note that
moving the taskbar will reset the workarea to Windows' default, as will changing screen resolution. If you have multiple monitors, you can set the
DesktopWorkArea for a specific monitor by adding @ and the number of the monitor to the end of
DesktopWorkArea. DesktopWorkArea= or DesktopWorkArea@0= is the primary monitor, and DesktopWorkArea@1 -@xx is a specific monitor.
DesktopWorkAreaType
If set to 1, the values in DesktopWorkArea will be used to define a margin relative to the edge of the screen. Default is 0.
If DesktopWorkAreaType is 0, then DesktopWorkArea defines a region on the screen by both size and position with Left, Top, Right, Bottom. If
DesktopWorkAreaType is 1, then DesktopWorkArea defines a region by excluding Left, Top, Right, Bottom amount of pixels from the edges of the
screen.
TrayIcon
Set to 0 to get rid of the tray icon.
TrayExecuteM, TrayExecuteR, TrayExecuteDM, TrayExecuteDR
Executes a command or !bang when the tray icon is clicked or double-clicked with the mouse. M and R denote middle and right buttons respectively.
Note that TrayExecuteR will override the normal context menu in the tray (hold the CTRL key to force default behaviour).
ConfigEditor
Defines the application that is used to edit the Rainmeter's configuration files when "Edit Skin" is chosen from the context menu. The default is
Notepad. Relative paths can be used here, which may be useful for portable installs.
SkinPath
Is set by Rainmeter automatically (or can be manually changed) to indicate the location of the Config/Skin folders for Rainmeter.
The default is:
Windows XP: C:\Documents and Settings\YOURNAME\My Documents\Rainmeter\Skins
Windows Vista & Win7: C:\Users\YOURNAME\My Documents\Rainmeter\Skins
Logging
If set to 1, Rainmeter will log errors and other information in a log file stored in %APPDATA%\Rainmeter\Rainmeter.log. You can start, stop, view and
delete this log by using the Rainmeter system tray context menu.
Debug
If set to 1, logging will be more verbose. This setting should be used only when debugging as it negatively impacts performance. Default is 0.
DisableVersionCheck
By default, Rainmeter will check to see if there is a newer RELEASE version of the application available. If so, it will prompt you with a link to the site
where the new version can be obtained. If you wish to disable this version checking, set DisableVersionCheck=1 . Note that only release (not beta)
versions of Rainmeter are checked for.
3
Settings-TrayMeasure
One special section is [TrayMeasure], which can be used to define a measure for the tray icon. You can use any measure for this as long as it returns some
meaningful values (i.e. numbers between some limits). The following must be put under the [TrayMeasure] section:
Options
Measure
The type measure to be shown as the tray icon. The normal parameters for that measure should follow.
TrayMeter
The manner in which the measure is depicted. This can be either Histogram or Bitmap.
TrayColor1
Defines the background color when TrayMeter=Histogram .
TrayColor2
Defines the foreground color when TrayMeter=Histogram .
TrayBitmap
Defines the name of the bitmap used when Bitmap is chosen for TrayMeter. The bitmap can have as many frames as you like but each frame must be
16x16 in size. The path is relative to the Skins folder. It's possible to also use icon files as the tray bitmap. You can use %i in the filename to define an
increasing number from 1. E.g. TrayBitmap=tray-%i.ico would read the icons files tray-1.ico, tray-2.ico, tray-3.ico and so on as long as it can find
them. The format specification is like printf (e.g. TrayBitmap=tray-%02i.ico will load tray-01.ico, tray-02.ico, ...)
Note: To use the default Rainmeter icon as the tray icon, remove the entire [TrayMeasure] section.
4
Settings-ConfigName
The following should be put under the the sections for their respective configs, e.g. [illustro\Clock]. Most of these settings can also be set via the skin right-click context menu or through the Manage dialog.
Options
WindowX, WindowY
These define the X and Y positions of the config on the screen in pixels. If the %-sign is added, the measurement will be in percentage. If a capital R is
added to the value then the position will be relative to the right edge of the screen instead of the left. By default the position is relative to the
primary screen. You can override this with @n where n is 0 to 32 and denotes which screen to position the meter on (1-32) or the virtual desktop (0).
The screen selection will apply to both WindowX and WindowY if the value is set on only one of them.
AnchorX, AnchorY
By default WindowX and WindowY control the position of the upper left corner of the config window. AnchorX and AnchorY allow that anchor position
to be changed. The Anchor can be defined in pixels from the upper left corner of the window or as a percentage of the config if % is used. If a letter R
or B is added to AnchorX or AnchorY, then the position is relative to the right or bottom edge of the window.
As an example, by setting WindowX, WindowY, AnchorX and AnchorY all to 50% the config will be truly centered in the primary monitor regardless of
screen resolution or aspect ratio.
SavePosition
If set to 1, the position of the window is stored in the Rainmeter.ini file so that it will be remembered when Rainmeter is executed the next time.
AlwaysOnTop
If set to 1, the window is always on top of other windows. If 0, the window positioning is normal. If set to -1 the window stays behind the other
windows. A value -2 pins the window to the desktop and 2 keeps the window ontop of other topmost windows.
Note that -2 (On Desktop) only works with Explorer.exe as the Window shell. Also be aware that the "order" of skins when two or more are set to "On
Desktop" and positioned on top of each other is determined by their order in Rainmeter.ini in ascending order. The first skin [section] in Rainmeter.ini
is on the bottom relative to ones that come after. A value of -2 (On Desktop) will work with XP/Vista/Windows 7 with the Aero Interface on or off. In
Vista and Windows 7 if a skin is set to On Desktop and Windows "Show Desktop" is used (WIN+D), the Rainmeter skins will stay visible.
Draggable
If set to 1, the window can be dragged around with the mouse. If 0, the window will be stationary.
SnapEdges
If set to 1, the window will snap, or "stick", to screen edges and other skins when moved. If shift, ctrl, or alt is held while moving, the window will not
snap.
HideOnMouseOver
If set to 1 the config will disappear if the mouse pointer is moved over it. The window will reappear when the mouse pointer is moved off the position
where the window was. If shift, ctrl or alt is held while moving the mouse, the window will not disappear (or reappear).
StartHidden
If set to 1, the config is hidden when started. You can use !Show bang to make it visible.
NativeTransparency
Set to 1 for native transparency support (only necessary for Windows XP).
AlphaValue
The transparency value (0 - 255) for the window. For Windows XP, NativeTransparency must be enabled.
FadeDuration
This defines the amount of time it takes to fade the window. The time is in milliseconds. To get rid of the fading set the value to 0.
ClickThrough
If set to 1 the mouse clicks go through the window. Only works if native transparency is enabled. If shift, ctrl or alt is held while clicking, the skin will
respond to clicks as normal.
KeepOnScreen
Set to 1 to keep the windows always on the monitor area.
LoadOrder
This determines the order in which the configs are loaded. Values can be positive or negative. Configs will load starting with the one with the lowest
value for LoadOrder, ending with the highest. Configs loaded first are below those loaded last, for example: Three configs having LoadOrder=-
1 , LoadOrder=2 and LoadOrder=5 would load the configs in that order, with the config with LoadOrder=-1 appearing beneath the one
with LoadOrder=2 which is in turn beneath the config containing LoadOrder=5 . If two configs have the same value for LoadOrder, they are then
loaded in alphabetical order. LoadOrder must be set manually in Rainmeter.ini by selecting "Edit Settings..." from the tray context menu.
Note: The value of LoadOrder has no bearing on what the position of the config is, i.e. "On Desktop", "Normal, "Topmost", etc. Configs in these
positions will continue to appear in the same manner, with LoadOrder only affecting how skins in the same position interact with each other. That is to
say, configs set to "Topmost" will always appear above configs set to "Normal", but two configs in "Topmost" will layer themselves according to their
LoadOrder value.
5
Settings-BuiltInVariables
The following are pre-existing variables that are set and controlled by Rainmeter. Their values cannot be manually changed.
Variables which return fully qualified paths.
#PROGRAMDRIVE# - Drive Rainmeter is installed to.
e.g. C: or \\server\Users\
Note that the following paths already contain a trailing slash.
#PROGRAMPATH# - Rainmeter program folder.
e.g. C:\Program Files\Rainmeter\
#SETTINGSPATH# - Folder which contains Rainmeter.ini.
e.g. C:\Users\YourName\AppData\Roaming\Rainmeter\
#SKINSPATH# - Skins folder.
e.g. C:\Users\YourName\My Documents\Rainmeter\Skins\
#PLUGINSPATH# - Plugins folder.
e.g. C:\Program Files\Rainmeter\Plugins\
#ADDONSPATH# - Addons folder.
e.g. C:\Program Files\Rainmeter\Addons\
#CURRENTPATH# - Path of current skin.
e.g. C:\PathToSkinsFolder\illustro\Clock\
#ROOTCONFIGPATH# - Path to highest-level folder under \Skins of current skin.
e.g. C:\Users\YourName\My Documents\Rainmeter\Skins\illustro\
Variables which return current skin information
#CURRENTFILE# - File name of current skin (e.g. Clock.ini )
#CURRENTCONFIG# - Config name of current skin (e.g. illustro\Clock )
#CURRENTSECTION# - Current [Section] name. Note that if used in [Variables], it will return "Variables" wherever used.
The variables below are dynamic in nature. As a result, DynamicVariables=1 must be set on the measure or meter in which they are used and they
may not be used in the [Rainmeter] or [Variables] sections.
#CURRENTCONFIGWIDTH# - Width of the current config in pixels
#CURRENTCONFIGHEIGHT# - Width of the height config in pixels
#CURRENTCONFIGX# - Left screen position of the current config in pixels
#CURRENTCONFIGY# - Top screen position of the current config in pixels
Variables which return information about your screen
#WORKAREAX# - X-position of the work area
#WORKAREAY# - Y-position of the work area
#WORKAREAWIDTH# - Width of the work area
#WORKAREAHEIGHT# - Height of the work area
#SCREENAREAWIDTH# - Width of the display resolution
#SCREENAREAHEIGHT# - Height of the display resolution
More variables and information when using multiple monitors with Rainmeter.
Miscellaneous variables
#CRLF# - Causes a line break when used in the Text option of a meter.
You may also use Windows environment variables, which can be obtained by the set command in cmd.exe (command prompt). To use them, use the name
of the environment variable within two percent sign (e.g. %APPDATA%). Note that environment variables may vary from system to system.
6
Settings-Groups
Configs can be categorized into "groups" to allow quick control of multiple configs at once. To add a Config to a group, simply add the Group statement to
the section under Rainmeter.ini. Alternatively, you may add Group under the [Rainmeter] section of the skin file.
Any number of groups may be added to a section, all of which must be separated by a vertical bar (i.e. "|"). Groups may also be specified under
the [Rainmeter] section of Rainmeter.ini. In this case, that group will be considered the default for all configs that have no groups defined.
Example (Rainmeter.ini):
[Enigma\Sidebar\Systems]
Active=0
WindowX=0
WindowY=0
AlphaValue=255
FadeDuration=250
ClickThrough=0
SavePosition=1
SnapEdges=1
KeepOnScreen=1
Group=Enigma | Systems
The Enigma\Sidebar\Systems config be added to the "Enigma" and "Systems" groups, which can then be controlled through several bangs.
Example (skin):
[Rainmeter]
Update=1000
Author=Me
Group=Enigma | Systems
The skin is added to the "Enigma" and "Systems" groups, which can then be controlled through several bangs.
7
Settings-Monitors
There is a "Display Monitor" submenu in [Skins Menu]-[Position] of the Rainmeter tray icon.
These menus set the position of the skin to the desired monitor in a multiple monitor configuration.
"Use default: Primary monitor"
Removes the @-directive from WindowX/Y.
@0, @1, @2, ...
Adds the specified monitor number to WindowX/Y. @0 means "The Virtual Screen".
More info at MSDN.
"Auto-select based on window position".
If checked, the WindowX and WindowY "@n" settings are made automatically based on the position of the meter's window.
If a monitor is selected directly using "Display Monitor" in the Rainmeter / skin context menu, this menu is unchecked. This setting can be manually
made in either the [Rainmeter] (all configs) or individual config sections of Rainmeter.ini. AutoSelectScreen
If set to 1, the WindowX and WindowY "@n" settings are made automatically based on the position of the meter's window. If a monitor is selected directly
using "Display Monitor" in the Rainmeter / skin context menu, this setting is reset to 0.
Built-in variables for multiple monitors
Variables for the virtual screen:
#VSCREENAREAX# is the X-position of the left-side of the virtual screen.
#VSCREENAREAY# is the Y-position of the top-side of the virtual screen.
#VSCREENAREAWIDTH# is the width of the virtual screen.
#VSCREENAREAHEIGHT# is the height of the virtual screen. Variables for the PRESENT monitor: Note that these variables automatically change by the WindowX and WindowY "@n" settings. If "@n" is not set, these variables return the value of the primary monitor.
#WORKAREAX# is the X-position of the left-side of the work area.
#WORKAREAY# is the Y-position of the top-side of the work area.
#WORKAREAWIDTH# is the width of the work area.
#WORKAREAHEIGHT# is the height of the work area.
#SCREENAREAX# is the X-position of the left-side of the monitor screen.
#SCREENAREAY# is the Y-position of the top-side of the monitor screen.
#SCREENAREAWIDTH# is the width of the display resolution.
#SCREENAREAHEIGHT# is the height of the display resolution. Variables for the PRIMARY monitor:
#PWORKAREAX# is the X-position of the left-side of the work area.
#PWORKAREAY# is the Y-position of the top-side of the work area.
#PWORKAREAWIDTH# is the width of the work area.
#PWORKAREAHEIGHT# is the height of the work area.
#PSCREENAREAX# is the X-position of the left-side of the monitor screen. (maybe, always 0)
#PSCREENAREAY# is the Y-position of the top-side of the monitor screen. (maybe, always 0)
#PSCREENAREAWIDTH# is the width of the display resolution.
#PSCREENAREAHEIGHT# is the height of the display resolution. Variables for the SPECIFIED monitor (@1, @2, ...):
#WORKAREAX@n# is the X-position of the left-side of the work area.
#WORKAREAY@n# is the Y-position of the top-side of the work area.
#WORKAREAWIDTH@n# is the width of the work area.
#WORKAREAHEIGHT@n# is the height of the work area.
#SCREENAREAX@n# is the X-position of the left-side of the monitor screen.
#SCREENAREAY@n# is the Y-position of the top-side of the monitor screen.
#SCREENAREAWIDTH@n# is the width of the display resolution.
#SCREENAREAHEIGHT@n# is the height of the display resolution.
Skins
All skins are placed in the skin folder. Each skin must be in its own subfolder. The actual skin file is a normal .ini file with several sections that define the
skin layout and values. A subfolder may contain several .ini files, but only one .ini file per folder can be active at a given time.
The skin .ini file is divided into several parts. All the general settings are put under the [Rainmeter] section, details about the are placed in the [Metadata]
section, and the variables in the [Variables] section. Then follow the measures (which collect data) and meters (which display data). While it is not
necessary to place the sections in this order, it is the convention that is observed by the vast majority of skin authors.
Note: Rainmeter reads and executes measures and meters in the order they are in the skin .ini file. This is important in particular for positioning of meters
relative to each other.
8
Skins-Rainmeter
The [Rainmeter] section of a skin defines skin-wide options.
Background Options
Background
Name of the background image. If this is omitted a copy of the desktop is taken and used as the background for the meters.
Changes to the image are applied in the following order: ImageCrop -> GreyScale -> ImageTint -> ImageFlip -> ImageRotate.
BackgroundMode
Defines the background mode. Valid values are:
o 0 - Image as defined by Background
o 1 - Transparent (default if no Background image defined)
o 2 - Solid color
o 3 - Scaled background image
o 4 - Tiled background image
BackgroundMargins
If BackgroundMode=3 , defined the margins of the background image that are not scaled. The parameters
are BackgroundMargins=left,top,right,bottom . For example, BackgroundMargins=0,10,0,20 implies that 10 pixels from the top and 20 pixels
from the bottom of the image are not scaled.
ImageCrop
Crops the image. The parameters are ImageCrop=X,Y,W,H,Origin . Origin is optional and can be set to one of the following:
o 1 - Top left
o 2 - Top right
o 3 - Bottom right
o 4 - Bottom left
o 5 - Center (both W and H)
Greyscale
If set to 1, the image will be greyscaled.
ImageTint
The color to tint an image. The colors are given in the same manner as SolidColor: RGB(A). If the alpha value is specified, the image can be made semi-
transparent (0 means invisible, 255 mean fully opaque). Default value is white (255, 255, 255, 255) which in effect means "no change".
Note: If you combine Greyscale and ImageTint you "recolor" the image to the defined color, if you use ImageTint alone, you "add" the defined color to
the image, creating a "tint".
ImageFlip
Flips the image. Valid values are:
o None
o Horizontal
o Vertical
o Both - flips both horizontally and vertically
ImageRotate
Rotates an image by the defined number of degrees. Negative numbers rotate counter-clockwise.
SolidColor
If BackgroundMode=2 , defines the color of the background.
SolidColor2
If BackgroundMode=2 , defines a second color for the background to create a gradient.
GradientAngle
If BackgroundMode=2 , defines the angle for the color gradient. The angle is defined in degrees.
BevelType
If BackgroundMode=2 , defines a bevel around the background.
o 0 - No bevel
o 1 - Raised
o 2 - Sunken
Blur
If set to 1, enables Aero blur on supported systems.
BlurRegion, BlurRegion2, ...
If BlurRegion is not specified, the blur is applied to the entire background of the skin. BlurRegion is defined as follows:
o 1,x1,y1,x2,y2 - Rectangular region
o 2,x1,y1,x2,y2,r - Rectangular region with rounded corners of radius r
o 3,x1,y1,x2,y2 - Elliptic region within the boundaries of the rectangle
(x1,y1) are the coordinates for the top-left corner while (x2, y2) are the coordinates for the bottom-right corner. If the first parameter is set to 0, that
specific BlurRegionN is ignored. A more detailed description with examples is available at Aero Blur.
9
Other Options
Update
The time between updates for the measures and meters. The value should be given in milliseconds. The default value is 1000 (i.e. once per second). A
setting of -1 will "disable" ongoing updating for the skin, so it will only update once, on load or refresh.
TransitionUpdate
The update time for the meter transitions. When a transition is active (i.e. a meter which supports transitions is changing its value) the redraw rate of
the window will be set to this value. The value should be given in milliseconds. The default value is 100. Currently, only Meter=BITMAP is supported.
DynamicWindowSize
If set to 1 the size of the window is calculated during every update. The window is scaled automatically if necessary.
DragMargins
Defines the area from where the window can be dragged. You need to define 4 values separated with comma. The values define the margin of non-
draggable area. It's also possible to use negative numbers in which case the margin is calculated from the opposite side. E.g. DragMargins=0,-
100,0,0
OnRefreshAction
Defines a command or !bang that is executed when the config is refreshed. This includes when the config is first loaded.
OnCloseAction
Defines a command or !bang that is executed when the config is closed / unloaded. This includes when exiting Rainmeter.
Author
The name and email of the author of the skin.
AppVersion
The minimum version of Rainmeter that is needed by this skin.If you specify an AppVersion in your skin, and the version of Rainmeter being used by the
end user is not equal to or greater than the version number in AppVersion, the end user will be prompted to upgrade.
It is not necessary to define this if you don't want to, however it should be noted that if your skin uses features or settings not available in the version
of Rainmeter the end user is running, the skin may fail to operate correctly. AppVersion is a single number that can be calculated like this:
Major * 1000000 + Minor1 * 1000 + Minor2. E.g. the value for Rainmeter 2.0 would be 2000000 and Rainmeter 2.1 would be 2001000.
LocalFont, LocalFont2, ...
Allows the use of fonts without installing into Windows\Fonts.
Example:
[Rainmeter]
LocalFont=#CURRENTPATH#\TheSaBdCp.ttf
[SomeMeter]
Meter=String
FontFace=TheSansBold-Caps
Be aware that the filename of a font is almost never the same as the fontface name used in the FontFace= statement. It is the skin author's
repsonsibility to ensure the correct FontFace name is used. Details on using fonts with Rainmeter can be found at A Note on Fonts.
10
Skins-Metadata
This section contains details about the skin. The information is displayed in the Manage dialog.
Options
Name
The name of the skin.
Information
A description of the skin, setup and usage instructions, credits, or other documentation elements, as needed. Use pipe separators ("|") to indicate line
breaks.
Version
The version number of the skin or parent suite.
License
Permissions and conditions for ports, mods and derivative works. If you use a standard license, e.g. Creative Commons or GNU, you can simply include
the name and version of the license.
Skins-Variables
Variables represent other values. There are several built-in variables, but custom variables may also be defined to centralize common values used later on
in the skin.
Variables are defined as follows under the [Variables] section:
VariableName=Value
The variable can then be referred in measures and meters as:
#VariableName#
For example, to set a variable for the size of the font you want to use on all your meters you might use:
[Variables]
Size=11
[SomeMeter]
FontSize=#Size#
[SomeMeter2]
FontSize=#Size#
If you want to use the variable name (and not its value), use asterisks to escape the variable:
#*VariableName*# . This is useful especially when using the !SetOption bang.
11
Skins-AeroBlur
Allows users on Windows Vista and later to enable Aero blur effects on transparent parts of the skin.
The following options must be in the [Rainmeter] section of the skin. The options have no effect on Windows XP or when Aero is disabled.
Options
Blur
Set to 1 to enable blur (default 0). If no BlurRegions are specified, the entire config background region is blurred.
BlurRegion, BlurRegion2, ...
Defines the area and shape of the region of the skin to be blurred. The setting is in the format BlurRegion=TYPE, TOPx, TOPy, BOTTOMx, BOTTOMy
(,RADIUS)
The first parameter, the type of the blur region, can be set to:
o 0 - Region is disabled
o 1 - Rectangular region
o 2 - Rectangular region with rounded corners. An additional parameter for the radius of the corners has to be specified
o 3 - Elliptical region
The following parameters define the size and shape of the region to be blurred. They are, in order:
o TopX - Top left horizontal point in the skin
o TopY - Top left vertical point in the skin
o BottomX - Bottom right horizontal point in the skin
o BottomY - Bottom right vertical point in the skin
o Radius - Radius of the corners of rounded rectangles (for use with type 2 only)
Formulas and variables can be used, although dynamic variables and measures aren't supported in the [Rainmeter] section. For example:
BlurRegion=1,#MyVar1#,#MyVar2#,(10 + 10),(#SCREENAREAHEIGHT# - 30)
Bangs
!ShowBlur / !HideBlur / !ToggleBlur
These effect ALL BlurRegions at once. It is used to turn on and off the blur effect in general.
!AddBlur "region" / !RemoveBlur "region"
These are used to add or remove blur regions. The "region" argument is identical to BlurRegion settings. Example Skin
Skins-DynamicVariables
By setting DynamicVariables=1 in a measure or meter, the measure or meter will respond to variable changes by the !SetVariable bang. Additionally,
if dynamic variables is enabled, a measure's name can be used as a variable by enclosing it in square brackets (e.g. [MyMeasure] ). Dynamic variables can
be used in any meter or measure, but not in the [Rainmeter] section.
Dynamic variables can only be used with a limited number of plugins. Currently, the following plugins support dynamic variables:
CoreTemp
FolderInfo
NowPlaying
PerfMon
Ping
QuotePlugin
RecycleManager
ResMon
SpeedFan
SysInfo
WindowMessage
12
Example:
[Rainmeter]
Update=1000
[Variables]
Width=100
[MeasureCalc]
Measure=Calc
Formula=Counter%100
[Square1]
Meter=Image
SolidColor=255,0,0
W=#Width#
H=50
MouseOverAction=!SetVariable Width 200
DynamicVariables=1
[Square2]
Meter=Image
SolidColor=0,0,255
W=[MeasureCalc]
H=50
Y=R
DynamicVariables=1
In this example, Square1 would show a red 100x50 pixel box. When the mouse is place over the box, it grows to 200x50 as the variable is changed. Square2
shows a blue box that is 50 pixels tall and continuously grows from 0 to 100 pixels wide as it gets its width from the value of MeasureCalc.
Skins-Include
The @Include option is used to load an external .ini file into the skin. The loaded file is treated as if the contents were included in the actual skin .ini
file. The option is often it is used in the [Variables] section of a skin to include common variables shared between skins. If there are multiple included files
within the same section, each @include statement should be numbered as follows:
@include1=...
@include2=...
@include3=...
Include files must use the INI format, meaning that they must have appropriate section names followed by key and value pairs. Commonly, Include files
use the .inc file extension (rather than .ini) to avoid listing the include files in the Rainmeter skin list.
The included file is read at the position where the @include is defined so the values from the included file with the same name as those from the .ini file
will overwrite the values from previous sections and vice versa. While the file is read at the given position, the contents of the file are treated as if they
are at the bottom of the file in which the @include is called.
Note: You may use a variable as the name of an @include file, but not a dynamic variable.
Example:
IncludeFile.inc:
[Variables]
Color=255,255,255,255
Skin.ini:
[Variables]
Font=Arial
@Include=IncludeFile.inc
[SomeMeter]
FontFace=#Font#
FontColor=#Color#
Further explanation as well as examples of use are available at The power of @include.
13
Skins-MeterMeasureGroups
Measures and meters can be categorized into groups to allow easier control over a set of meters and measures with the
Groupbangs (e.g. !HideMeterGroup ). To add a measure or meter to a group, simply add the Group= option. Any number of groups may be added to a
section, all of which must be separated by a vertical bar (i.e. | )..
Example: In this example, both of the meters belong to the "CPU" group. In addition, MeterCPUText belongs to the "Strings" group and MeterCPUBar in turn belongs to the "Bars" group.
[MeterCPUText]
Meter=String
MeasureName=MeasureCPU
Group=CPU | Strings
[MeterCPUBar]
Meter=Bar
MeasureName=MeasureCPU
Group=CPU | Bars
Meters in the CPU group, for example, can be hidden as follows: !HideMeterGroup CPU
Measures
Measures are sections that determine what information Rainmeter should retrieve. Within a .ini file, names for measures must be unique and they must
not have spaces. The meters use these section names to bind to the measures and display the results.
Note: Some meters require a range of values (Bar, Histogram, etc) so that they can display the measured value as relative to the minimum and maximum
values. Not all measures are able to calculate the minimum and maximum value automatically so you need to do that manually with MinValue and
MaxValue.
Measures-GeneralSettings
These general settings apply to all measure types.
Options
Measure
This defines what is measured. The valid values are:
o CPU - Measures total load from CPU or individual cores.
o Memory - Measures overall memory utilization.
o PhysicalMemory - Measures allocated physical memory.
o SwapMemory - Measures virtual memory allocation.
o Uptime - Measures how long computer has been on. This works only in a String meter.
o NetIn - Measures incoming network traffic.
o NetOut - Measures outgoing network traffic.
o NetTotal - Measures total network traffic.
o FreeDiskSpace - Measures free diskspace.
o Plugin - Measure is defined by an external plugin.
o Registry - Measures registry values.
o Time - Measures time and date.
o Calc - Calculates formulas.
InvertMeasure
If set to 1, the measured value is inverted. For example, you can measure the allocated disk space instead of free space.
Disabled
If set to 1, the measure is never updated. A disabled measure always returns zero as its value in numerical contexts (e.g. when used in a Calc formula
or with IfActions), but may still return a textual value (e.g. when used in String meters).
UpdateDivider
This value modifies the update rate of the measure. The global Update value (set in the [Rainmeter] section) is multiplied by this number to determine
the update rate for the measure. For example, if the Update=1000 and UpdateDivider=30 , the measure is updated every 30 seconds. The default
value is 1. A setting of -1 will disable ongoing updates for the measure, so it will only be executed once on load or refresh.
MaxValue
The maximum value the measure can have. The default is 1.0. - Formulas allowed in this setting.
Note: This option is used solely to scale the of result of some meters (e.g. Histogram). The actual value of the measure will remain unchanged.
MinValue
The minimum value the measure can have. The default is 0.0. - Formulas allowed in this setting.
Note: This option is used solely to scale the of result of some meters (e.g. Histogram). The actual value of the measure will remain unchanged.
AverageSize
Defines the window size of average measuring. For example, when AverageSize=10 , the returned value is the average of last ten values.
14
Measures-IfActions
Measure IfActions are commands you add to a measure to have Rainmeter take some action when a defined "above/equal/below" threshold value is
returned by the measure. You can have Rainmeter run a built-in !Bang, several !Bangs at once, or even execute some external command.
IfActions are done by using pairs of Above, Equal, and Below Value and Action statements. You may have one of each kind of IfAction in a single measure.
How an action is formatted varies somewhat depending on which !Bang is being used, or what an external application expects. The rules can be found at
the Bangs page.
Options
IfAboveAction
A bang or command that is executed when the measure goes above the value defined in IfAboveValue. The action is executed only at the moment when
the measure exceeds the value, so it needs to go below the defined value before the action is executed again.
IfAboveValue
The value used by IfAboveAction. - Formulas allowed in this setting.
IfBelowAction
A bang or command that is executed when the measure goes below the value defined in IfBelowValue. The action is executed only at the moment when
the measure falls below the value, so it needs to go above the defined value before the action is executed again.
IfBelowValue
The value used by IfBelowAction. - Formulas allowed in this setting.
IfEqualAction
A bang or command that is executed when the measure is equal with the value defined in IfEqualValue. The action is executed only once when the
measure is equal to the value, so it needs to go above or below the defined value before the action is executed again. The value is rounded to full
integer.
IfEqualValue
The value used by IfEqualAction. - Formulas allowed in this setting. Example Skin
Measures-Substitute
Substitute is an option used on measures to replace some or all of a string value returned by the measure with another string. When combined with the
RegExpSubstitute option, regular expressions can be used in the option.
[MeasureYear]
Measure=Time
Format=%Y
Substitute="2012":"Twenty Twelve","2013":"Twenty Thirteen","2014":"Twenty Fourteen"
Substitute
A list of comma separated "search":"replace" pairs that can be used to change strings returned by a measure. You must use quotes around the values.
E.g. Substitute="cat":"dog" would change all "cat" to "dogs" in the measured value, and Substitute="red":"green","blue":"yellow" would
change all "red" to "green" and "blue" to "yellow".
o When the measure is defined as the MeasureName= option in a meter, the substituted value will be used.
[MeasureYear]
Measure=Time
Format=%Y
Substitute="2012":"Twenty Twelve"
[MeterYearText]
Meter=String
MeasureName=MeasureYear
MeterYearText will display "Twenty Twelve".
o When the measure is directly used in a meter or another measure, for instance in a Measure=Calc measure, the substituted value will only be used if
the measure name is enclosed in [brackets] and DynamicVariables is used on the meter or measure. Otherwise, the original value will be used.
[MeasureYear]
Measure=Time
Format=%y
15
Substitute="12":"Twenty Twelve"
[MeasureYearNumber]
Measure=Calc
Formula=(2000 + MeasureYear)
[MeterYearText]
Meter=String
Text=[MeasureYear]
DynamicVariables=1
MeasureYearNumber will return 2012 and MeterYearText will display "Twenty Twelve".
o Substitutions are done from the left to right, in order and iteratively. In other words, the result of the substitution of the first "search":"replace"
pair is then used when the second pair is evaluated. This means the the order you define the substitution in is important, as well as defining the
searches in a way that does not cause unintended changes.
Substitute="1":"2","10":"3","100":"4"
This statement will not return what you might expect. First, Substitute will replace all "1" characters with "2". This means that "10" and "100" will
never be found, as they will already have been changed to "20" and "200". This can be handled by defining the Substitute in an order that is
unambiguous and with with "search":"replace" pairs that don't step on each other.
Substitute="100":"4","10":"3","1":"2"
o You may substitute quote characters in Substitute= statements. This is done by using single quotes to surround the first part of the "find":"replace"
pair. So Substitute='"':"" would remove all quotes from the text.
Note: Single and double quotes MUST be "mismatched" on the "find:replace" pairs when using single quotes as a delimiter, or the Substitute will fail.
Example: Substitute='"':"None" will replace a quote with the word None. Substitute="None":'"' will replace the word None with a quote.
However, Substitute='"':'None' will fail, as you can't use single quotes on both sides of the "find:replace" pairs. An easier to read example
is Substitute='red':'blue' , which will fail.
RegExpSubstitute
If set to 1, it is possible to use Regular Expressions within the substitute string. The section of the original string which is matched by the expression is
replaced by the contents of the second part of the substitute pair.
The second part can have parts of the original string embedded within it. You must capture any parts of the string you want using parentheses, then
these can be referenced by number in the replaced string using \1, \2 etc. It is also possible to use \0 to embed the whole matched section of the
string.
Examples:
Replace a 2 digit number with "It Works", then the first two characters with "This":
56
RegExpSubstitute=1
Substitute="\d\d":"It Works","^..":"This"
This Works
Mask an IP address:
192.168.1.101
RegExpSubstitute=1
Substitute="^(\d{1,3}).(\d{1,3}).(\d{1,3}).\d{1,3}$":"\1.\2.\3.***"
192.168.1.***
Truncate string by length and append "...":
Cloudy with chance of rain
RegExpSubstitute=1
Substitute="^(.{11,}).+$":"\1..."
Cloudy with...
16
Measures-Calc
The Calc measure is used to calculate formulas.
Options
Formula
This defines the formula to be calculated. You can use the names of other measures as variables. There is also a special variable called Counter, which
is incremented on every update. The variables are updated only after all other measures are updated, so the values are always one update cycle
behind.
UpdateRandom
When UpdateRandom=1 a new random number is set on each update cycle. When UpdateRandom=0 a random number is set on refresh.
LowBound
Defines the lower boundary for any Round functions used in the measure's formula.
HighBound
Defines the upper boundary for any Round functions used in the measure's formula.
Operators
+ (addition)
- (substraction)
* (multiplication)
/ (division)
** (power)
% (remainder or modulus)
& (bitwise and)
| (bitwise or)
^ (bitwise xor)
~ (bitwise not)
Logical Operators
<> (not equal)
= (equal to)
> (greater than)
< (less than)
<= (less than or equal to)
>= (greater than or equal to)
&& (logical and)
|| (logical or) Note: Conditional statements evaluate to 1 (true) or 0 (false).
Functions
ATAN(x), ASIN(x), ACOS(x), COS(x), SIN(x), TAN(x) - Standard trigonometric functions. Where x is measured in Radians.
ABS(x) - Absolute value of x.
EXP(x) - Returns ex.
LOG(x) - Base 10 logarithm of x.
LN(x) - Natural logarithm of x.
SQRT(x) - Square root of x.
SGN(x) - Return 1 if x is positive, -1 if x is negative.
FRAC(x) - Fractional, or decimal, part (e.g. FRAC(1.234) = 0.234).
TRUNC(x) - Integer par (e.g. TRUNC(1.234) = 1).
FLOOR(x) - Floor of x.
CEIL(x) - Ceiling of x.
ROUND(x[,precision]) - Rounds x to an integer, or to a specified number of decimal places. Precision is optional.
RAD(x) - Converts x from degrees to radians.
Constants
PI - Pi (~3.14159265...)
E - Euler's constant (~2.71828182...)
17
Conditional Operator
<condition> ? <expr. if true.> : <expr. if false.>
This will evaluate condition as being either true or false. If it is true, the expression to the left of the colon (:) is evaluated. If it is false, the expression to the right is evaluated. This is equivalent to the following if-then-else statement: if (condition) then expr. if true else expr. if false end if Example:
[Example]
Measure=Calc
Formula=1<2 ? 3 : 4
This measure would return the number 3 since the condition 1<2 evaluates to true. Rainmeter can also handle nested conditional operators. It should be noted that there is a maximum of 30 nested operators. Example:
[Example]
Measure=Calc
Formula=1>2 ? 3 : (4<5 ? 6 : 7)
This measure would return 6. Since the first statement of 1>2 is false the nested conditional operator in the else statement is executed.
Random Function The word RANDOM returns a random number between the values of "LowBound" and "HighBound" defined in the measure.
Other Bases
The Calc measure allows numbers to be represented numbering systems other than decimal. To use another base, prefix the number with a zero then the letter representing the system you wish to use. The following are accepted prefixes, which are case (lower) sensitive:
0b - Binary number (base 2) (ex: 0b110110 - returns 54 in decimal)
0o - Octal number (base 8) (ex: 0o123 - returns 83 in decimal)
0x - Hexadecimal number (base 16) (ex: 0xF1 - returns 241 in decimal) Example skin
Measures-CPU
Returns the percentage used of the entire CPU or individual cores.
Options
Processor
Can be set to the number (1, 2, ...) of the processor core to be measured. If set to 0 (default), the average of all cores will be returned. Example Skin
18
Measures-FreeDiskSpace
FreeDiskSpace returns usage statistics for the selected drive.
Options
Drive
This is the drive for which the disk space is measured. (eg: "C:")
Total
If set to 1 this returns the total size of the drive.
Label
If set to 1 this returns the label of the drive.
Type
If set to 1 this returns the type of the drive.
String >> numeric return:
o Error >> 0
o Removed >> 1
o Removable >> 3
o Fixed >> 4
o Network >> 5
o CDRom >> 6
o Ram >> 7
IgnoreRemovable
If set to 1 (default), removable drives are ignored. If set to 0, removable drives are measured. Be sure to set IgnoreRemovable=0 if you want to
measure a USB drive.
Note: FreeDiskSpace does not support CD or DVD drives other than Type and Label. Example Skin
Measures-Memory
Measures the amount of virtual memory free in bytes. Virtual memory is equal to Pagefile + RAM + RAM.
Options
Total
If set to 1 this returns the total memory. Example Skin
Measures-NetInOut
Measures various types of network traffic.
NetIn
Measures incoming network traffic.
NetInSpeed
The maximum speed of your network connection input. The value is given in bits per second. If this value is omitted or set to zero, the maximum value
is determined from the input. Watch out for peaks.
TrafficAction
Action to be executed when a certain amount of data has been downloaded.
TrafficValue
The value used by TrafficAction.
Interface
The index of the measured NIC. If this is set to 0 (default) all interfaces are added together. Value 1 means the first NIC, 2 the second, etc.
Cumulative
If set to 1, the measure gathers cumulative value (i.e. adds the measured values together). This can be used to measure the total amount of
transferred data during certain period of time.
19
NetOut
Measures outgoing network traffic.
NetOutSpeed
The maximum speed of your network connection output. The value is given in bits per second. If this value is omitted or set to zero, the maximum
value is determined from the input.
TrafficAction
Action to be executed when a certain amount of data has been uploaded.
TrafficValue
The value for the TrafficAction.
Interface
The index of the measured NIC. If this is set to 0 (default) all interfaces are added together. Value 1 means the first NIC, 2 the second, etc.
Cumulative
If set to 1, the measure gathers cumulative value (i.e. adds the measured values together). This can be used to measure the total amount of
transferred data during certain timeperiod.
NetTotal
Measures total network traffic.
NetTotalSpeed
The maximum speed of your total network connection. The value is given in bits per second. If this value is omitted or set to zero, the maximum value
is determined from the input.
TrafficAction
Action to be executed when a certain amount of data has been uploaded and downloaded.
TrafficValue
The value for the TrafficAction.
Interface
The index of the measured NIC. If this is set to 0 (default) all interfaces are added together. Value 1 means the first NIC, 2 the second, etc.
Cumulative
If set to 1, the measure gathers cumulative value (ie: adds the measured values together). This can be used to measure the total amount of transferred
data during a certain time period. Example Skin
Measures-PhysicalMemory
Measures the amount of physical RAM memory free in bytes.
Options
Total
If set to 1 this returns the total physical memory. Example Skin
Measures-Plugin
A plugin in Rainmeter is a dynamic link library (.dll) program specifically written to provide additional functionality not built into Rainmeter. A plugin is
used in Rainmeter with the specific measure type Measure=Plugin. Each plugin in turn has its own settings that must be placed in this section.
See Plugins to learn more on the plugins included with Rainmeter and what settings are required for each.
You may also use a 3rd-party plugin developed for Rainmeter but not included with the installation. Simply place the new plugin .dll file into the Plugins
folder under the location of your Rainmeter.exe and the new plugin can be used like any of the default ones. Note: Be sure that the 3rd-party plugin you
add was compiled for the same architecture version of Rainmeter (32bit or 64bit) as the version you are using. You may not use a 32bit plugin with 64bit
Rainmeter or a 64bit plugin with 32bit Rainmeter.
Options
Plugin
The path and name of the plugin relative to the program folder, where Rainmeter.exe is (e.g. Plugin=Plugins\WebParser.dll ).
Example Skin
20
Measures-Registry
Provides a way to read data from the Windows Registry.
Options
RegHKey
The name of the HKEY. Possible values are:
o HKEY_CURRENT_CONFIG
o HKEY_CURRENT_USER
o HKEY_LOCAL_MACHINE
o HKEY_CLASSES_ROOT
o HKEY_PERFORMANCE_DATA
o HKEY_DYN_DATA
RegKey
The name of the registry key.
RegValue
The name of the registry key's value. Only string and long values are supported.
Registry data types
If you open Regedit.exe to the location you are trying to read, you will notice the second column in the right pane is called "Type". There are several
different types, but the two most common - and the two supported by Rainmeter - are REG_SZ and REG_DWORD. If the value is of type REG_SZ it means it
is a string. If it is REG_DWORD it is a number. Many of Rainmeter's meter types require a number as input rather than a string. This means that if the value
you are trying to read is of type REG_SZ, meters like Line, Histogram, Bar, etc. will not recognize the value. Even if the value is entirely numeric, it will
still be read as a string.
Numeric string values from the registry can be used as a number if you convert them with a Measure=Calc.
[MeasureRegistry]
Measure=Registry
...
[MeasureStringToNum]
Measure=Calc
Formula=[MeasureRegistry]
MinValue=0
MaxValue=100
DynamicVariables=1
Example Skin
21
Measures-Script
The Script measure allows the execution of Lua (a scripting lanague) code. The Lua script can be used to retrieve the values of measures, send bangs, and
more. A Lua script can do programming that would be difficult or impossible in native Rainmeter code, and can return values or change settings in the
Rainmeter skin.
Options
ScriptFile
Name of valid Lua script file.
Custom options can be added to the measure, which can then be retrieved and used with SELF:GetOption() or SELF:GetNumberOption() in the script.
Example:
[MeasureScript]
Measure=Script
ScriptFile=MyLua.lua
ItemsToCount=5
Bangs
The Script measure can be controlled with the !CommandMeasure bang. The argument must be valid Lua code and will be executed in the context of
ScriptFile.
A full explanation of how to use this measure type with the Lua scripting language can be found at Lua Scripting. This guide should be carefully read
before creating a skin using the Script measure.
Measures-SwapMemory
Measures the amount of virtual (swap) memory free in bytes.
Options
Total
If set to 1 this returns the total swap memory. Example Skin
Measures-Time
Measures the current date/time.
Options
Format (default: "%H:%M:%S")
The format for the date/time string you wish returned. (e.g. Format="%a, %b %#d %Y - %H:%M:%S" )
You can also use "locale-time" and "locale-date" to use the format that is set currently in Windows.
TimeZone
The timezone GMT offset value in the format +/-hours.fraction (e.g. TimeZone=+2.0 ). This format must be used even if, as in the case of London,
there is no offset from GMT. (e.g. TimeZone=+0.0 ) If this option is not used, then the measure will use your local computer's time.
DaylightSavingTime
If set to 1, the current local value for daylight saving time is applied to the time. This is only used if TimeZone has been set.
Note: This setting can be temporarily incorrect if the timezone you are setting changes between Daylight Savings and Standard time at different
times of year than your location.
22
Format codes
Full details on Time/Date formatting codes can be found at msdn.microsoft.com. %a - Abbreviated weekday name %A - Full weekday name %b - Abbreviated month name %B - Full month name %c - Date and time representation appropriate for locale %d - Day of month as decimal number (01 - 31) %H - Hour in 24-hour format (00 - 23) %I - Hour in 12-hour format (01 - 12) %j - Day of year as decimal number (001 - 366) %m - Month as decimal number (01 - 12) %M - Minute as decimal number (00 - 59) %p - Current locale's A.M./P.M. indicator for 12-hour clock %S - Second as decimal number (00 - 59) %U - Week of year as decimal number, with Sunday as first day of week (00 - 53) %w - Weekday as decimal number (0 - 6; Sunday is 0) %W - Week of year as decimal number, with Monday as first day of week (00 - 53) %x - Date representation for current locale %X - Time representation for current locale %y - Year without century, as decimal number (00 - 99) %Y - Year with century, as decimal number %z, %Z - Either the time-zone name or time zone abbreviation, depending on registry settings %% - Percent sign # - A "#" character used before a code (%#d) will removing leading zeros from the result. Example Skin
Measures-UpTime
Returns the amount of time since the last restart of the computer.
Options
Format
Format to display the output. The default is Format="%4!i!d %3!i!:%2!02i!" .
o %4 - Days
o %3 - Hours
o %2 - Minutes
o %1 - Seconds
o !i! - Putting this after the format code shows the numbers with no leading zeros
o !02i! - Putting this after the format code shows the numbers with leading zeros
AddDaysToHours
If %4 (days) is not included in the Format statement, %3 (hours) will be incremented by days * 24. To disable this, set AddDaysToHours to 0 (default 1).
Example Skin
Meters
Meters are the sections that tell Rainmeter how to display information. Each meter needs to have a unique name, which should be put inside [Square
Brackets]. It does not matter what the name is as long as there are no spaces and it is not used elsewhere within the same.ini file.
Meters by default are evaluated and displayed in the order they are in the skin .ini file. Settings like W= and H= and X= and Y= can be used to size and
position meters in the context of the skin containing them. So a meter with a setting of X=0 will be positioned 0 pixels from the left edge of the skin it is
in. If you drag the entire skin to another location, the meter will remain positioned 0 pixels from the left edge of the skin, regardless of where the skin is
on the screen.
There are many different types of supported meter types in Rainmeter. The manual pages for each describe them in detail, with settings specific to each
type.
Example Skin
23
Meters-GeneralSettings
The following are setting which apply to all meter types.
Options
Meter
Indicates the type of the meter. The valid values are:
o BAR
o BITMAP
o BUTTON
o HISTOGRAM
o IMAGE
o LINE
o ROTATOR
o ROUNDLINE
o STRING
MeterStyle
The name of a [Section] containing settings for meter attributes you wishto share with multiple meters. See MeterStyles for details.
MeasureName
The name of the measure that this meter displays the returned value for. This setting is not required if the meter is not going to use values from a
measure, such as a String or Image meter not needing information returned by a measure.
X
The X-position of the meter inside the window. The coordinates can be made relative to the previous meter by adding 'r' to the end of the number (e.g.
X=5r). You can also use capital R which makes the position relative to the right edge of the previous meter.
Y
The Y-position of the meter inside the window. The coordinates can be made relative to the previous meter by adding 'r' to the end of the number (e.g.
Y=-10r). You can also use capital R which makes the position relative to the bottom edge of the previous meter.
W
The width of the meter. It is not necessary to define this if the width can be calculated from an image or if you are using a STRING meter. If you use
the desktop as background for the Rainmeter you should always define the correct height and width for the meters or the window's dimensions might
be calculated incorrectly.
H
The height of the meter. This can also be left undefined under the same conditions as W.
Note: You can use math formulas with X, Y, W and H. In that case the value must be surrounded with parenthesis (e.g. Y=(300/3) ).
Hidden
If set to 1, the meter is hidden.
UpdateDivider
This value modifies the update rate of the meter. The global Update value (set in the [Rainmeter] section) is multiplied by this number to determine
the update rate for the meter. For example, if the Update is set to 1000 and the UpdateDivider is 30, the meter is updated every 30 seconds. The
default value is 1.
SolidColor
The color of the meter's background. The value is given in RGB(A) format: Red, Green, Blue and an optional Alpha value. It can be written either as 3
or 4 comma-separated values from 0 to 255 (e.g. SolidColor=255,0,0,128 ), or in hexadecimal format (e.g. SolidColor=FF000080 ). If it is not set,
the background is completely transparent.
SolidColor2
An optional second color for the meter's background to create a gradient. This follows the same format as SolidColor.
GradientAngle
The angle of the meter's background color gradient. The angle is defined in degrees.
BevelType
This draws a beveled edge around the specified H and W of the meter.
o 0 - No bevel (Default)
o 1 - Raised
o 2 - Sunken
AntiAlias
If set to 1, the meter is drawn as antialiased.
24
Meters-ColorCodes
Rainmeter uses colors in the settings of many different meters.
FontColor
FontEffectColor
SolidColor
PrimaryColor
SecondaryColor
BothColor
BarColor
LineColor
HorizontalLineColor
Color codes in Rainmeter are based on RGBA, which stands for red, green, blue, and alpha. The values can be entered either using a set of four numbers
ranging from 0 to 255 in either decimal or hexadecimal form. You may leave off the alpha value, and Rainmeter will default to 255 / FF, or fully opaque.
Decimal format: SolidColor=RRR,GGG,BBB,AAA
The RRR component controls the intensity of red ranging from 0 to 255 (full saturation).
The GGG component controls the intensity of green ranging from 0 to 255 (full saturation).
The BBB component controls the intensity of blue ranging from 0 to 255 (full saturation).
The AAA component controls the transparency ranging from 0 (transparent) to 255 (full saturation).
Hexadecimal format: SolidColor=RRGGBBAA
The RR component controls the intensity of red in hex, with FF being full saturation.
The GG component controls the intensity of green in hex, with FF being full saturation.
The BB component controls the intensity of blue in hex, with FF being full saturation.
The AA component controls the transparency in hex, with 00 being transparent and FF being fully opaque.
Note: If you use an alpha of 0, then the element using the color will not only be invisible, but will not be seen by Rainmeter at all for the purpose of
mouse actions. If you want a meter to be invisible but still seen by Rainmeter, use an alpha of 1.
A online color picking tool which will provide the RGB and HEX codes for a color can be found at Rainmeter Color Picker.
Examples
Solid opaque red is 255,0,0,255 or FF0000FF
Solid opaque blue is 0,0,255,255 or 0000FFFF
Solid opaque grey is 128,128,128,255 or 808080FF
Half-transparent green is 0,255,0,128 or 00FF0080
Meters-MeterStyle
MeterStyles allow CSS-like common "styles" for meters. This allows you to centralize common parameters for meter into a single section. Using the
MeterStyle option will essentially cause the specific meter to inherit all applicable properties from the given style. A style is just another section (it can
even be a meter). Multiple styles can be used by separating them with a pipe (i.e. Style1 | Style2 | ... ).
Note: You may not "daisy chain" MeterStyles. In other words although a meter may be used as a MeterStyle for another meter, that second one may not be
used as a MeterStyle for a third.
Example Skin
25
Meters-ANoteOnFonts
Fonts are used in String meters.
Fonts installed in Windows can be used by specifying the "Family Name" of the font in the FontFace option in the String meter. (e.g. FontFace=Trebuchet
MS ).
Using 3rd-party fonts not installed in Windows can be done by creating a folder @Resources\Fonts in the root level folder of your skin, and putting the
font .ttf files there. Rainmeter will automatically load any fonts found in that folder, and they will be available to use with the "Family Name" of the font
as if they were installed in Windows.
Note: It is recommended that you do not distribute skins with fonts in a .rmskin set to automatically install in a user's Windows system. There is
generally no need to do this, and it makes it more difficult for users who are running Rainmeter "portable" to use your skin. Just put the fonts you are
using in your skin in the @Resources\Fonts folder when you create a .rmskin to distribute.
Using fonts
The font must be a .ttf (TrueType) font, and not a .otf (OpenType) font. If you have downloaded a .otf file, it is possible, but not certain, that you can
convert this file using FontConverter.com online. Once you have converted the file, try using it. I have found that about 70-80% of .otf fonts can
successfully be converted and used.
Even better results can be had with a font conversion tool like FontCreator, but almost none of these are free. There isFontForge, but this must be run
in a unix environment and while it can be done with the CygWin unix-in-windows utility, this is NOT for the faint of heart or new Windows user.
You must use the "Family Name" of the font. This can be found by double clicking the font .ttf file and at the very top in the Windows font viewer see
the "Font Name:" at the top left. Now, this also has a "gotcha". Many fonts have subfamily names that are appended on the "Family Name" in Windows
font viewer. The Font Name: may be MyFont-Bold or MyFont Bold or MyFont BoldItalic" You should not use these subfamily postfixes when identifying
the font in Rainmeter with FontFace=xxx. This can involve a bit of trial and error, but in this example FontFace=MyFont is the mostly likely correct
entry.
Most, but not ALL fonts can be modified at run time in Rainmeter with StringStyle, StringEffect, etc. If you have problems with a font using these
settings, try removing them to see if that is the issue.
There are a couple of ways Rainmeter will react if it hates your font for some reason.
It may give no error, but display the default Arial instead of your font. This will be what happens if you use a .otf font, or if you use the wrong "Family
Name" for the font.
It gives an error, like "Can't create font" and the meter fails entirely. This generally means you have used an attribute like StringStyle=Bold on a font
that doesn't support it, or there is just a problem with the font itself that causes Rainmeter to fail in loading / using it.
Meters-ToolTips
This creates a ToolTip which appears when you hover the mouse over the meter. You must be careful not to overlap two meters with ToolTips as both will
be displayed if the mouse is over both at the same time.
Options
ToolTipText (required)
The text you wish displayed. This can include dynamic variables and measures as long as DynamicVariables=1 is set. If you wish to spread the text
across multiple lines, add the built-in variable #CRLF# at the point you want a line break. This setting must be defined to use a ToolTip.
Values of MeasureName can also be used in the %1, %2 etc. as appropriate for various meter types:
o Line, String: %1, %2, %3, ...
o Histogram: %1, %2
o Others: %1
ToolTipTitle (optional)
This sets a bold title for the tooltip. This can only be one line, so #CRLF# will not work here.
ToolTipIcon (optional)
This specifies an Icon to be placed in the tooltip. This can be the full path to a .ico file or one of these preset icons:
o INFO
o WARNING
o ERROR
o QUESTION
o SHIELD (Windows Vista and newer)
To use an icon in your tooltip you must also define ToolTipTitle. Otherwise the icon will not be displayed.
ToolTipType (optional)
This defines the style of the tooltip, by default, this is 0, a regular tooltip. If set to 1 the tooltip will appear as a balloon.
ToolTipWidth (optional)
This allows you to specify the maximum width of a tooltip. When the width is reached, the text will automatically wrap. The default is 1000 pixels. -
Formulas allowed in this setting.
Note: As a ToolTipTitle cannot be wrapped, do not set this width less than the length of the title, or there could be unexpected results.
ToolTipHidden (optional)
If set to 1, the ToolTip is not displayed. ToolTipHidden can also be used in the [Rainmeter] section to hide all tooltips in the skin.
26
Meters-TransformationMaxtrix
This defines a 3x2 matrix which can be used to transform the meter. There must be exactly 6 values separated by semicolons
(e.g. TransformationMatrix=1;0;0;1;0;0 ). The values a;b;c;d;e;f correspond to the following matrix:
|a c e|
|b d f|
In short, the values have the following effects:
a - Scale horizontally
b - Skew along the y-axis
c - Scale vertically
d - Skew along the x-axis
e - Translate (i.e. move) horizontally
f - Translate vertically Combining these can have drastic effects on the meter it is applied to. For more comprehensivev information on TransformationMatrix, read this forum thread. The following are some examples showing the actual matrix and the corresponding TransformationMatrix values: Flip X along line x=20:
|-1 0 2x| |-1 0 40|
| 0 1 0 | = | 0 1 0 |
TransformationMatrix=-1;0;0;1;40;0
Flip Y along line y=50:
|1 0 0 | |1 0 0 |
|0 -1 2*y| = |0 -1 100|
TransformationMatrix=1;0;0;-1;0;100
Scale X by 0.5 (at x=50):
|0.5 0 0.5*x| |0.5 0 25|
|0 1 0 | = |0 1 0 |
TransformationMatrix=0.5;0;0;1;25;0
Note: All transformations are relative to the top left corner of the window and not to the meter itself. So if you want to rotate the meter by its center the
translation component in the matrix must be relative to the top left corner of the window.
Also note that the even if the meter's visual location and orientation is changed by the transformation the place where it would be located without the
transformation will still be used to define the window size and register the mouse clicks. This might change in the future though.
27
Meter-Bar
Bar meters display the value of a measure in a single vertical or horizontal bar. The amount the bar is filled corresponds to the relative value of the
measure. Bar graphs require that the measure being used is from 0.0 to 1.0 or has both MaxValue and MinValue set.
Changes to the bitmap are applied in the following order: ImageCrop -> GreyScale -> ImageTint -> ImageFlip -> ImageRotate.
Options
BarColor
The color of the bar. The colors are given in the same manner as with SolidColor: RGB(A).
BarImage
The image that is used for the bar. This can be used instead of BarColor.
BarBorder
If an image is used, this determines the number of pixels on either side of the image that are always drawn (i.e. top and bottom margins for vertical
bars, left and right margins for horizontal bars).
ImageCrop
Crops the image. The parameters are ImageCrop=X, Y, W, H, Origin . Origin is optional and can be set to one of the following:
o 1 - Top left
o 2 - Top right
o 3 - Bottom right
o 4 - Bottom left
o 5 - Center (both W and H)
Greyscale
If set to 1, the image will be greyscaled.
ImageTint
The color to tint an image. The colors are given in the same manner as SolidColor: RGB(A). If the alpha value is specified, the image can be made semi-
transparent (0 means invisible, 255 mean fully opaque). Default value is white (255, 255, 255, 255) which in effect means "no change".
Note: If you combine Greyscale and ImageTint you "recolor" the image to the defined color, if you use ImageTint alone, you "add" the defined color to
the image, creating a "tint".
ImageFlip
Values are NONE, HORIZONTAL, VERTICAL or BOTH.
ImageRotate
Rotates an image by the defined number of degrees. Negative numbers rotate counter-clockwise. - Formulas allowed in this setting.
ColorMatrixN
The ColorMatrix parameter represents a 5x5 matrix used to manipulate the color values of the image. It is divided into five separate parameters, one
for each row, each numbered. The default matrix is as follows:
ColorMatrix1=1; 0; 0; 0; 0
ColorMatrix2=0; 1; 0; 0; 0
ColorMatrix3=0; 0; 1; 0; 0
ColorMatrix4=0; 0; 0; 1; 0
ColorMatrix5=0; 0; 0; 0; 1
The values on the main diagonal are, from top-left to bottom-right: Red, Green, Blue, Alpha and a placeholder. The values represent the percentage of
of the particular value present in the image, where 0.0 is none and 1.0 is normal. The remaining entries in the matrix allow a color to have its value
modified in terms of another color (ex: the value of Red might have half of the Blue value added), with the entries in the final row (ColorMatrix5)
determining offset values that are added directly to the color. (ex: ColorMatrix5=0.5; 0; 0; 0; 1 will add 50% to the red value). More information on
ColorMatrix is available at ColorMatrix Unleashed.
ImageAlpha
Change the opacity of the image. Values range from 0 to 255, where 0 is completely invisible and 255 is completely opaque. If set, this value will
override the Alpha parameter in the ImageTint setting.
BarOrientation
The orientation of the bar. Valid values are HORIZONTAL or VERTICAL.
Flip
Set to 1 to flip the direction of the bar. Example Skin
28
Meter-Bitmap
The Bitmap meter takes an image and divides it into equally-sized frames. Each frame is shown as the relative value of the measure attached to it reaches
the relative position of the pieces. For example, if the image a strip of 5 images, when the measure is between 0% and 19% the first frame is shown, from
20 to 39% the second frame is show, and so on. Bitmaps are often used with counters to display animations, or are used to show stylized numbers.
Changes to the bitmap are applied in the following order: GreyScale -> ImageTint -> ImageFlip.
Options
BitmapImage
This is the name of the image that holds the image frames. The images can be laid horizontally or vertically in the bitmap. The orientation is
determined automatically form the height or the width of the bitmap (whichever is larger). Also, the size of one frame is calculated automatically so
you need to crop the image so that there is no extra space around the frames. The image can be any supported format: bmp, gif, jpg or png. If
BitmapExtend is not 1, then bitmap meters require that the measure being used is from 0.0 to 1.0 or has both MaxValue and MinValue set.
BitmapFrames
The number of frames in the image.
BitmapTransitionFrames
The number of transition frames per value. The transition frames are frames which are displayed when the meter's value changes. The same number of
transition frames must be used after each regular frame. The TransitionUpdate setting in the [Rainmeter] section determines the rate at which the
frames are displayed during the transition. The total duration of the transition animation is therefore TransitionUpdate * BitmapTransitionFrames. Note
that BitmapFrames will always define the total number of frames in the bitmap, including the transition frames. So, for example, if the bitmap has 10
values and each transition consists of 4 additional frames, then BitmapFrames should be set to 50 and BitmapTransitionFrames to 4.
BitmapZeroFrame
If set to 1, the first frame is used only when the measured value is zero. Otherwise the frames are linearly determined by the measured value.
BitmapExtend
If set to 1 the bitmap is extended so display the whole value. For example if you define a bitmap that defines frames from 0 to 9 you can use this to
display the measured value as the bitmap numbers.
BitmapDigits
Number of digits that are drawn. The first frame is used if the value doesn't have as many digits as this defines. Works only when BitmapExtend is set
to 1.
BitmapAlign
Defines the alignment of the bitmap value. Valid values are LEFT, CENTER and RIGHT. Works only when BitmapExtend is set to 1.
BitmapSeparation
Separation between digits when BitmapDigits is higher than one. This can also be a negative number.
ImageTint
The color to tint an image. The colors are given in the same manner as SolidColor: RGB(A). If the alpha value is specified, the image can be made semi-
transparent (0 means invisible, 255 mean fully opaque). Default value is white (255, 255, 255, 255) which in effect means "no change".
Note: If you combine Greyscale and ImageTint you "recolor" the image to the defined color, if you use ImageTint alone, you "add" the defined color to
the image, creating a "tint".
ImageFlip
Values are NONE, HORIZONTAL, VERTICAL or BOTH.
ColorMatrixN
The ColorMatrix parameter represents a 5x5 matrix used to manipulate the color values of the image. It is divided into five separate parameters, one
for each row, each numbered. The default matrix is as follows:
ColorMatrix1=1; 0; 0; 0; 0
ColorMatrix2=0; 1; 0; 0; 0
ColorMatrix3=0; 0; 1; 0; 0
ColorMatrix4=0; 0; 0; 1; 0
ColorMatrix5=0; 0; 0; 0; 1
The values on the main diagonal are, from top-left to bottom-right: Red, Green, Blue, Alpha and a placeholder. The values represent the percentage of
of the particular value present in the image, where 0.0 is none and 1.0 is normal. The remaining entries in the matrix allow a color to have its value
modified in terms of another color (ex: the value of Red might have half of the Blue value added), with the entries in the final row (ColorMatrix5)
determining offset values that are added directly to the color. (ex: ColorMatrix5=0.5; 0; 0; 0; 1 will add 50% to the red value). More information on
ColorMatrix is available at ColorMatrix Unleashed.
ImageAlpha
Change the opacity of the image. Values range from 0 to 255, where 0 is completely invisible and 255 is completely opaque. If set, this value will
override the Alpha parameter in the ImageTint setting. Example Skin
29
Meter-Button
The button meter cannot be bound to any measure. Its entire purpose is to make the creation of buttons easier. A button can display a normal, clicked
and hover state of an image and perform an action automatically.
Changes to the button image are applied in the following order: GreyScale -> ImageTint -> ImageFlip.
Options
ButtonImage
The name of the button image. The image must have 3 frames which can be set either horizontally or vertically (the orientation is determined by the
width and height of the image). The first frame corresponds to he button's normal image. The second frame is shown when the button is clicked. The
third frame is shown while the mouse is hovering over the button. More information on creating the bitmap images for buttons here. Note that button
images cannot be re-sized by Rainmeter with W or H.
ButtonCommand
The command or !bang that is executed when the button is pressed.
Greyscale
If set to 1, the image will be greyscaled.
ImageTint
The color to tint an image. The colors are given in the same manner as SolidColor: RGB(A). If the alpha value is specified, the image can be made semi-
transparent (0 means invisible, 255 mean fully opaque). Default value is white (255, 255, 255, 255) which in effect means "no change".
Note: If you combine Greyscale and ImageTint you "recolor" the image to the defined color, if you use ImageTint alone, you "add" the defined color to
the image, creating a "tint".
ImageFlip
Values are NONE, HORIZONTAL, VERTICAL or BOTH.
ColorMatrixN
The ColorMatrix parameter represents a 5x5 matrix used to manipulate the color values of the image. It is divided into five separate parameters, one
for each row, each numbered. The default matrix is as follows:
ColorMatrix1=1; 0; 0; 0; 0
ColorMatrix2=0; 1; 0; 0; 0
ColorMatrix3=0; 0; 1; 0; 0
ColorMatrix4=0; 0; 0; 1; 0
ColorMatrix5=0; 0; 0; 0; 1
The values on the main diagonal are, from top-left to bottom-right: Red, Green, Blue, Alpha and a placeholder. The values represent the percentage of
of the particular value present in the image, where 0.0 is none and 1.0 is normal. The remaining entries in the matrix allow a color to have its value
modified in terms of another color (ex: the value of Red might have half of the Blue value added), with the entries in the final row (ColorMatrix5)
determining offset values that are added directly to the color. (ex: ColorMatrix5=0.5; 0; 0; 0; 1 will add 50% to the red value). More information on
ColorMatrix is available at ColorMatrix Unleashed.
ImageAlpha
Change the opacity of the image. Values range from 0 to 255, where 0 is completely invisible and 255 is completely opaque. If set, this value will
override the Alpha parameter in the ImageTint setting. Example Skin
30
Meter-Histogram
Histograms display values using vertical bars - once per update - on a graph. They require that the measure being used ranges from 0.0 to 1.0 or has both
MaxValue and MinValue set.
Changes to the images are applied in the following order: ImageCrop -> GreyScale -> ImageTint -> ImageFlip -> ImageRotate.
Options
SecondaryMeasureName or MeasureName2
The name of the secondary measure. This defines the measure for the secondary histogram that is drawn on the same meter. It is not necessary to
define this if the other meter is not needed.
PrimaryColor
Color for the primary histogram. The colors are given in the same manner as with SolidColor.
SecondaryColor
Color for the secondary histogram.
BothColor
Color that is used when the primary and secondary histograms are on top of each other.
PrimaryImage
Name of the image that is used behind the primary histogram. You can use either colors or images but not both at the same time. So, if you define
PrimaryImage you must also define SecondaryImage and BothImage if you have a secondary measure in the same histogram, Not SecondaryColor or
BothColor.
SecondaryImage
Name of the image that is used behind the secondary histogram.
BothImage
Name of the image that is used when the primary and secondary histograms are on top of eachother.
PrimaryImageCrop, SecondaryImageCrop, BothImageCrop
Crops the image. The parameters are PrimaryImageCrop=X, Y, W, H, Origin . Origin is optional and can be set to one of the following:
o 1 - Top left
o 2 - Top right
o 3 - Bottom right
o 4 - Bottom left
o 5 - Center (both W and H)
PrimaryGreyscale, SecondaryGreyscale, BothGreyscale
If set to 1, the image will be greyscaled.
PrimaryImageTint, SecondaryImageTint, BothImageTint
The color to tint an image. The colors are given in the same manner as SolidColor: RGB(A). If the alpha value is specified, the image can be made semi-
transparent (0 means invisible, 255 mean fully opaque). Default value is white (255, 255, 255, 255) which in effect means "no change".
Note: If you combine Greyscale and ImageTint you "recolor" the image to the defined color, if you use ImageTint alone, you "add" the defined color to
the image, creating a "tint".
PrimaryImageFlip, SecondaryImageFlip, BothImageFlip
Values are NONE, HORIZONTAL, VERTICAL or BOTH.
PrimaryImageRotate, SecondaryImageRotate, BothImageRotate
Rotates an image by the defined number of degrees. Negative numbers rotate counter-clockwise.
PrimaryColorMatrixN, SecondaryColorMatrixN, BothColorMatrixN
The ColorMatrix parameter represents a 5x5 matrix used to manipulate the color values of the image. It is divided into five separate parameters, one
for each row, each numbered. The default matrix is as follows:
PrimaryColorMatrix1=1; 0; 0; 0; 0
PrimaryColorMatrix2=0; 1; 0; 0; 0
PrimaryColorMatrix3=0; 0; 1; 0; 0
PrimaryColorMatrix4=0; 0; 0; 1; 0
PrimaryColorMatrix5=0; 0; 0; 0; 1
The values on the main diagonal are, from top-left to bottom-right: Red, Green, Blue, Alpha and a placeholder. The values represent the percentage of
of the particular value present in the image, where 0.0 is none and 1.0 is normal. The remaining entries in the matrix allow a color to have its value
modified in terms of another color (ex: the value of Red might have half of the Blue value added), with the entries in the final row
(PrimaryColorMatrix5) determining offset values that are added directly to the color. (ex: PrimaryColorMatrix5=0.5; 0; 0; 0; 1 will add 50% to the red
value). More information on ColorMatrix is available at ColorMatrix Unleashed.
PrimaryImageAlpha, SecondaryImageAlpha, BothImageAlpha
Change the opacity of the image. Values range from 0 to 255, where 0 is completely invisible and 255 is completely opaque. If set, this value will
override the Alpha parameter in the ImageTint setting.
Autoscale
If set to 1, the histogram is automatically scaled to show all the values.
GraphStart
Determines the starting point of the graph. The values are LEFT or RIGHT (default)
GraphOrientation
Determines the direction of the graph elements. The values are HORIZONTAL or VERTICAL (default)
Flip
If set to 1 the meter is flipped upside-down.
31
Meter-Image
The Image meter is used to show images. It does not necessarily need to be tied to a measure and is often used just to display a specific image for
aesthetic purposes. However, when used with a measure, it will try to display the image whose filename corresponds to the value of the measure.
Changes to the image are done by applied in the following order: ImageCrop -> GreyScale -> ImageTint -> ImageFlip -> ImageRotate.
Options
ImageName
Name of the image to be displayed. ImageName can also be the result of values returned by one or more measures:
Meter=IMAGE
MeasureName=SomeMeasure
MeasureName2=SomeMeasure2
ImageName=%1-%2.png
If ImageName is not specified, the value of MeasureName appended with the .png extension is used as the image.
Path
Location of the the image relative to the skin's folder.
AntiAlias
If set to 1, the image has antialias interpolation routines applied to it when displayed.
PreserveAspectRatio
If set to 1, the aspect ratio of the image is preserved when the image is scaled. Set to 0 by default.
o You can specify both W and H with PreserveAspectRatio=0 , and it will scale the image to the exact specified size. Aspect ratio is not preserved.
o You can specify W or H alone with PreserveAspectRatio=1 , and the image will be scaled to the given value, with the other undefined "aspect"
being automatically scaled to preserve the aspect ratio.
o You can specify both W and H with PreserveAspectRatio=1 , and the image will be scaled by using the larger of the width or height dimensions in
the original image, setting that to the user defined value, and setting the other "aspect" to what is needed to preserve the aspect ratio. That way
the image will be made to "fit" in the container defined by H and W even if the user doesn't know if the image is originally "portrait" or "landscape"
(tall or wide) from the source.
o In all cases the image is "centered" in the meter defined by W and H. "Dead space" created by preserving the aspect ratio (much like the black bars
on your TV when you watch a widescreen movie on a standard 4:3 screen) is transparent.
o Image meters can use [MeasureName] as the value of either W or H or both, and the image scaling is done on each update of the measure used. This
means that a refresh is not required to resize an image and dynamic "zooming" of the image can be achieved by using measures to change the size
values.
ImageCrop
Crops the image. The parameters are ImageCrop=X, Y, W, H, Origin . Origin is optional and can be set to one of the following:
o 1 - Top left
o 2 - Top right
o 3 - Bottom right
o 4 - Bottom left
o 5 - Center (both W and H)
ScaleMargins
Allows a definition of margins on an image, where the image will not be scaled by the meter's W and H settings.
ScaleMargins=left, top, right, bottom (Example: ScaleMargins=10, 50, 10, 50 )
Note: ScaleMargins is only allowed if Tile and PreserveAspectRatio are not used.
Greyscale
If set to 1, the image will be greyscaled.
ImageTint
The color to tint an image. The colors are given in the same manner as SolidColor: RGB(A). If the alpha value is specified, the image can be made semi-
transparent (0 means invisible, 255 mean fully opaque). Default value is white (255, 255, 255, 255) which in effect means "no change".
Note: If you combine Greyscale and ImageTint you "recolor" the image to the defined color, if you use ImageTint alone, you "add" the defined color to
the image, creating a "tint".
ImageFlip
Values are NONE, HORIZONTAL, VERTICAL or BOTH.
ImageRotate
Rotates an image by the defined number of degrees. Negative numbers rotate counter-clockwise. - Formulas allowed in this setting.
Tile
Tiles (repeats) an image within the bounds set by W and H on the image meter.
ColorMatrixN
The ColorMatrix parameter represents a 5x5 matrix used to manipulate the color values of the image. It is divided into five separate parameters, one
for each row, each numbered. The default matrix is as follows:
32
ColorMatrix1=1; 0; 0; 0; 0
ColorMatrix2=0; 1; 0; 0; 0
ColorMatrix3=0; 0; 1; 0; 0
ColorMatrix4=0; 0; 0; 1; 0
ColorMatrix5=0; 0; 0; 0; 1
The values on the main diagonal are, from top-left to bottom-right: Red, Green, Blue, Alpha and a placeholder. The values represent the percentage of
of the particular value present in the image, where 0.0 is none and 1.0 is normal. The remaining entries in the matrix allow a color to have its value
modified in terms of another color (ex: the value of Red might have half of the Blue value added), with the entries in the final row (ColorMatrix5)
determining offset values that are added directly to the color. (ex: ColorMatrix5=0.5; 0; 0; 0; 1 will add 50% to the red value). More information on
ColorMatrix is available at ColorMatrix Unleashed.
ImageAlpha
Change the opacity of the image. Values range from 0 to 255, where 0 is completely invisible and 255 is completely opaque. If set, this value will
override the Alpha parameter in the ImageTint setting. Example Skin
Meter-Line
The line meter shows the values of a measure as a graph with a line connecting each data point. Any number of lines can be shown depicting as many
measures with a single meter, all overlapping. Line meters require that the measure being used is from 0.0 to 1.0 or has both MaxValue and MinValue set.
Options
LineCount
Number of lines in the meter. There can be any number of lines in the same meter. Note that the number for the first line is never given (i.e.
MeasureName, LineColor and Scale are all used for the first line, with numbers added for subsequent lines).
MeasureName, MeasureName2, ...
The name of the measure for the line N.
LineColor, LineColor2, ...
The color of the line N. The colors are given in the same manner as with SolidColor: RGB(A).
Scale, Scale2, ...
The scale of the line N. The measured value is multiplied by this value.
AutoScale
If set to 1, the lines are automatically scaled so that the largest value is visible in the meter. If set to 0, the meter's scale is taken from the largest max
value of the all of the measures used.
HorizontalLines
If set to 1 horizontal lines are drawn behind the histogram lines.
HorizontalLineColor
The color of the horizontal lines. The colors are given in the same manner as with SolidColor: RGB(A).
LineWidth
The width of the line in pixels. - Formulas allowed in this setting.
GraphStart
Determines the starting point of the graph. The values are LEFT or RIGHT (default)
GraphOrientation
Determines the direction of the graph elements. The values are HORIZONTAL or VERTICAL (default)
Flip
If set to 1 the meter is flipped upside down. Example Skin
33
Meter-Rotator
The Rotator meter displays an image that rotates around a point where the angle of rotation is determined by the measure it is attached to. Rotator
meters require that the measure being used is from 0.0 to 1.0 or has both MaxValue and MinValue set.
The center of rotation will be located at the center of the height and width specified for the meter. If height and width are not specified, the center of
rotation will be located at the X and Y coordinates provided for the meter. It is also important to remember that if the height and width are not specified,
any portion of the meter that lies outside of the skin window will be cut off.
An example of how the center of rotation works is at Rotate an Image Around its Center.
Changes to the image are applied in the following order: ImageCrop -> GreyScale -> ImageTint -> ImageFlip -> ImageRotate.
Options
ImageName
Name of the image to be rotated.
ImageCrop
Crops the image. The parameters are ImageCrop=X, Y, W, H, Origin . Origin is optional and can be set to one of the following:
o 1 - Top left
o 2 - Top right
o 3 - Bottom right
o 4 - Bottom left
o 5 - Center (both W and H)
Greyscale
If set to 1, the image will be greyscaled.
ImageTint
The color to tint an image. The colors are given in the same manner as SolidColor: RGB(A). If the alpha value is specified, the image can be made semi-
transparent (0 means invisible, 255 mean fully opaque). Default value is white (255, 255, 255, 255) which in effect means "no change".
Note: If you combine Greyscale and ImageTint you "recolor" the image to the defined color, if you use ImageTint alone, you "add" the defined color to
the image, creating a "tint".
ImageFlip
Values are NONE, HORIZONTAL, VERTICAL or BOTH.
ImageRotate
Rotates an image by the defined number of degrees. Negative numbers rotate counter-clockwise. - Formulas allowed in this setting.
ColorMatrixN
The ColorMatrix parameter represents a 5x5 matrix used to manipulate the color values of the image. It is divided into five separate parameters, one
for each row, each numbered. The default matrix is as follows:
ColorMatrix1=1; 0; 0; 0; 0
ColorMatrix2=0; 1; 0; 0; 0
ColorMatrix3=0; 0; 1; 0; 0
ColorMatrix4=0; 0; 0; 1; 0
ColorMatrix5=0; 0; 0; 0; 1
The values on the main diagonal are, from top-left to bottom-right: Red, Green, Blue, Alpha and a placeholder. The values represent the percentage of
of the particular value present in the image, where 0.0 is none and 1.0 is normal. The remaining entries in the matrix allow a color to have its value
modified in terms of another color (ex: the value of Red might have half of the Blue value added), with the entries in the final row (ColorMatrix5)
determining offset values that are added directly to the color. (ex: ColorMatrix5=0.5; 0; 0; 0; 1 will add 50% to the red value). More information on
ColorMatrix is available at ColorMatrix Unleashed.
ImageAlpha
Change the opacity of the image. Values range from 0 to 255, where 0 is completely invisible and 255 is completely opaque. If set, this value will
override the Alpha parameter in the ImageTint setting.
OffsetX
X-offset of the center of rotation.
OffsetY
Y-offset of the center of rotation.
StartAngle
The start angle for the line. This is in radians and the zero angle at the right. The defualt rotation direction is clockwise. - Formulas allowed in this
setting.
RotationAngle
The size of the rotation angle for the line. Use negative value for counter-clockwise rotation. - Formulas allowed in this setting.
ValueRemainder
Use remainder instead of the actual measured value. This can be used to create an analog clock. Example Skin
34
Meter-Roundline
The Roundline meter displays a single line that rotates around a point. The angle of the line is determined by the measure. By default, the minimum
position is pointing to the right, the line then moves clockwise until it is pointing to the right again. Roundline meters require that the measure being used
is from 0.0 to 1.0 or has both MaxValue and MinValue set.
If the width and height are not defined, the center point is the at the X and Y position of the meter and any part of the meter that intersects with the
edges of the skin window will be cut off. If width and height are specified, the center point will be in the middle of the bounding box and the skin
windows will include the meter.
Options
LineWidth
The width of the line in pixels. - Formulas allowed in this setting.
LineLength
This defines the length of the line. The length is always measured from the center of rotation (no matter what the LineStart value is). - Formulas
allowed in this setting.
ControlLength, LengthShift
If ControlLength is set to 1, the measure value controls the LineLength from LineLength to LineLength + LengthShift.
LineStart
This defines the distance from the center at which the line starts. - Formulas allowed in this setting.
ControlStart, StartShift
If ControlStart is set to 1, the measure controls the LineStart from LineStart to LineStart + StartShift.
StartAngle
The starting angle for the line. This is in radians and the zero angle is at the right. The default rotation direction is clockwise. - Formulas allowed in
this setting.
ControlAngle, RotationAngle
Unless ControlAngle is set to 0, the measure controls the RotationAngle from 0 to RotationAngle. The size of the rotation angle for the line. Use a
negative value for counter-clockwise rotation. - Formulas allowed in this setting.
ValueRemainder
Use remainder instead of the actual measured value. This can be used to draw an analog clock.
LineColor
The color of the line. The colors are given in the same manner as with SolidColor: RGB(A).
Solid
Set to 1 and the meter will draw a pie-chart instead. Example Skin
Meter-String
String meters display the value of measures as text. A string meter does not necessarily need to have a measure attached to it and can just be a static
string of text by using Text=. You can mix the results of measures and static text by using Text= combined with %1, %2 etc. to indicate the value of the
measures used by the meter. If you are only displaying the result of a single measure, no Text= statement is needed.
Options
MeasureName, MeasureName2, ...
The name of a measure to bind with the meter.
FontColor
The color of the text. The colors are given in the same manner as with SolidColor: RGB(A).
Prefix
String that is displayed before the value.
Postfix
String that is displayed after the value.
FontFace
Name of the font. Note that this is not the name of the font's file, but the font itself. Details on using fonts with Rainmeter can be found at A Note on
Fonts.
FontSize
Size of the font. - Formulas allowed in this setting.
35
StringAlign
The horizontal and vertical alignment of the string. The valid values are:
o StringAlign=Left or StringAlign=LeftTop (default)
o StringAlign=Right or StringAlign=RightTop
o StringAlign=Center or StringAlign=CenterTop
o StringAlign=LeftBottom
o StringAlign=RightBottom
o StringAlign=CenterBottom
o StringAlign=LeftCenter
o StringAlign=RightCenter
o StringAlign=CenterCenter
The string will be aligned using the values of the X and / or Y settings as the anchor point. So to CenterCenter align a string within a meter with a
width and height of 100, you would set X=50, Y=50 and StringAlign=CenterCenter.
StringStyle
Style of the string. The valid values are: Normal, Bold, Italic and BoldItalic.
StringEffect
Effect of the string. The valid values are: None, Shadow and Border.
FontEffectColor
The color of the StringEffect. The colors are given in the same manner as with SolidColor: RGB(A).
StringCase
Sets the "case" of the string. The Valid values are None, Upper, Lower and Proper.
Scale
Scaling factor for the measured value. The measured value is divided with the scale value, so in order to get 1000 times smaller values just set the
scale to 1000. If the scale value has a decimal point (e.g. 1000.0) the resulting measured value is displayed as floating point value with one decimal.
AutoScale
Allows automatic scaling of values and appends the value with the appropriate T, G, M or k unit character. This setting overrides Scale. Valid values
are:
o 0 - Disabled (default)
o 1 - Scale by 1024
o 1k - Scale by 1024 (with kilo as lowest unit)
o 2 - Scale by 1000
o 2k - Scale by 1000 (with kilo as lowest unit)
Percentual
If set to 1, the value is displayed as a percentage.
NumOfDecimals
The number of decimals used in the displayed value.
Text
The text that is displayed. Use %1, %2, etc. for different measures.
ClipString
If set to 1 the width of the meter clips the string. An ellipsis (...) is added to the end of the string. Width and height must be specified. If the height is
large enough to allow for another row of text, it will wrap the text into two or more lines, instead of using the ellipsis.
Angle
This defines the angle of the text. The value is given in radians. Note that the size and position of the text is still calculated as if the text were
horizontal. - Formulas allowed in this setting. Example Skin
36
Plugins
A plugin in Rainmeter is a dynamic link library (.dll) program specifically written to provide additional functionality not built into Rainmeter. A plugin is
used in Rainmeter with the specific measure type Measure=Plugin. Each plugin in turn has its own settings that must be placed in this section. Click on any
of the plugins listed on the right to learn more about the plugins included with Rainmeter and what settings are required for each.
You may also use a 3rd-party plugin developed for Rainmeter but not included with the installation. Simply place the new plugin .dll file into the Plugins
folder under the location of your Rainmeter.exe and the new plugin can be used like any of the default ones. Note: Be sure that the 3rd-party plugin you
add was compiled for the same architecture version of Rainmeter (32bit or 64bit) as the version you are using. You may not use a 32bit plugin with 64bit
Rainmeter or a 64bit plugin with 32bit Rainmeter.
If you are interested in creating a 3rd party plugin for Rainmeter, there are source code templates available for both C++ and C# coders. Further
information can be found at Developers.
Plugin-AdvancedCPU
Plugin=AdvancedCPU
This is similar to using PerfMon to measure the CPU usage except that you can filter out processes or only include some of them.
Options
CPUInclude
List of process names that are included in the cpu measuring. The names are separated with semicolon (";"-char). The include list overrides the
excludes.
CPUExclude
List of process names that are excluded from the cpu measuring. The names are separated with semicolon (";"-char). The include list must be empty to
exclude something.
TopProcess
Value 2 returns the name of the process that took the most CPU time since the last update. Value 1 returns the CPU time for that process.
Note that this returns CPU time and not the percentage. If you measure the value once per second you can scale the value with (100000 x the number
of your CPU cores) to get the percentage but you should note that if the values cannot be measured exactly once per second (like it usually cannot
because the timer in Windows is not accurate) you might get values larger than 100%.
On the METER displaying the results:
Scale=100000 : Single Core
Scale=200000 : Dual Core
Scale=400000 : Quad Core
Example Skin
Plugin-CoreTemp
Plugin=CoreTemp
This plugin can retrieve the values measured by CoreTemp. CoreTemp must be running in the background in order for the plugin to work. A list of
supported CPU's is available here.
Options
CoreTempType
Defines the return value. Valid values are:
o Temperature - Returns the current temperature value.
o MaxTemperature - Returns the maximum temperature value between all cores.
o BusSpeed - Returns the bus frequency.
o BusMultiplier - Returns the bus multiplier.
o CpuName - Returns the CPU model name.
o CpuSpeed - Returns the core frequency.
o TjMax - Maximum allowed temperature rated by the manufacturer.
o Load - Returns the core load as percentage.
o Vid - Returns the voltage value.
CoreTempIndex
This defines the index (or core) for the returned value. The indexing starts from 0 so if you want to return the second temperature value
use CoreTempIndex=1 . Must be used when returning Temperature, TjMax, and Load.
Example Skin
37
Plugin-FolderInfo
Plugin=FolderInfo
FolderInfo.dll can be used to count files in a folder, their size, and more.
Options
Folder
Path to the folder to watch.
InfoType
Defines the return value:
o FileCount - Number of found files
o FolderCount - Number of found folders
o FolderSize - Size of found folders in bytes
RegExpFilter
The regular expression used for including/excluding counted files. The plugin uses Perl Compatible Regular Expressions, so check the Perl docs for
syntax and more info.
IncludeSubFolders
If set to 1, sub-folders are included in the count. Disabled by default.
IncludeHiddenFiles
If set to 1, hidden files are included in the count. Disabled by default.
IncludeSystemFiles
If set to 1, system files are included in the count. Disabled by default. Example Skin
Plugin-InputText
Plugin=InputText
InputText inserts user-supplied text into one or more bangs. The plugin works by defining a series of commands, which can be triggered by any "action"
string (this includes mouse actions, conditional actions in a Calc measure, and other commands in an InputText measure, including the same measure).
When triggered, a free-floating text input box is created to gather user input at the specified points in the command series. When all input has been
submitted, the commands are carried out.
Options
Command1, Command2, ...
The !Bang-command(s) to be performed when the plugin is triggered. The string $UserInput$ will be replaced by whatever the user types into it. This
string can be repeated, in which case, multiple input boxes will be created in sequence. In addition, a command can override the values of other keys
in this measure when an input box is called on that command. Valid keys include: DefaultValue, Password, X, Y, W, H, SolidColor, FontColor, FontFace,
FontSize, StringStyle and StringAlign. The value must be placed in quotation marks if it contains spaces.
Usage: CommandN=[Command Before Input]$UserInput$[CommandAfterInput] [MeasureKey]="[Value]"
DefaultValue
Text that will appear in the input box when it is created.
Password
If Password=1, all input will be displayed as asterisks.
X
The horizontal position of the input box, relative to the left edge of the skin. Note: X cannot be relative to the previous meter (as in "#r" and "#R").
Y
The vertical position of the input box, relative to the top edge of the skin. Note: X cannot be relative to the previous meter (as in "#r" and "#R").
W
The width of the input box, in pixels.
H
The height of the input box, in pixels.
SolidColor
The background color of the input box in either normal (R,G,B,A) or hexadecimal (RRGGBBAA) format. As with all colors in Rainmeter, the alpha value
is optional, and will default to opaque if omitted.
FontColor
The color of text written in the input box in either normal (R,G,B,A) or hexadecimal (RRGGBBAA) format. As with all colors in Rainmeter, the alpha
value is optional, and will default to opaque if omitted.
FontFace
The font of text written in the input box.
Note: LocalFont cannot be used to format an InputText box.
FontSize
The size of text written in the input box.
StringStyle
Additional text effect applied to text. Valid values are NORMAL, BOLD, ITALIC, BOLDITALIC.
38
StringAlign
Input text can be aligned LEFT, CENTER or RIGHT. Left is the default value. If aligned right, the cursor will move from left to right as text is typed. This
is advised for skins using languages which are read in the opposite direction, such as Arabic.
FocusDismiss (0/1)
If set to "0", (default) the mouse is disabled on any other window element until ENTER or ESC is pressed. If set to "1", clicking anywhere other than on
the input field will "dismiss" the input without taking action.
Bangs
LeftMouseUpAction=!CommandMeasure "MeasureInputTextPlugin" "ExecuteBatch ALL X=100"
IfAboveAction=!CommandMeasure "MeasureInputTextPlugin" "ExecuteBatch 3"
Command4=!CommandMeasure "MeasureInputTextPlugin" "ExecuteBatch 2-4 Password=1"
Notes:
Press Enter to submit user input. Press Escape to dismiss the input box without executing the script.
Due to a limitation in Rainmeter, user-input text may not include quotation marks. If it does, the quotes will be stripped from the command. Try to
avoid using this plugin for setting variables or other data that require quotation marks.
Although the bang !Refresh would normally only refresh the current skin, InputText bangs are passed through Rainmeter itself, which means that the
bang will perform a global refresh instead. To only refresh the skin, use !Refresh #CURRENTCONFIG#. Example Skin
Plugin-iTunes
Plugin=iTunesPlugin
This plugin can be used to remote control iTunes and get information from it.
Note: New skins should use the NowPlaying plugin as it supports multiple media players (including iTunes).
Options
DefaultArtwork
Sets the default path (relative path to the skin's folder) for artwork returned by Command=GetCurrentTrackArtwork .
Command
Can be any of the following:
Control Bangs: (no return value)
o Backtrack - reposition to the beginning of the current track or go to the previous track if already at start of current track
o FastForward - skip forward in a playing track
o NextTrack - advance to the next track in the current playlist
o Pause - pause playback
o Play - play the currently targeted track
o PlayPause - toggle the playing/paused state of the current track
o PreviousTrack - return to the previous track in the current playlist
o Resume - disable fast forward/rewind and resume playback if playing
o Rewind - skip backwards in a playing track
o Stop - stop playback
o GotoMusicStoreHomePage - go to the iTunes Store home page
o Power - open/close iTunes instance
o Quit - exit the iTunes application
o SoundVolumeUp - turn the volume up 5%
o SoundVolumeDown - turn the volume down 5%
o ToggleiTunes - show/hide iTunes window
o ToggleVisuals - show/hide iTunes visuals
o UpdateIPod - update the contents of the iPod
o UpdatePodcastFeeds - update all podcast feeds (equivalent to the user pressing the Update button when Podcasts is selected in the Source list)
Integer Values:
o GetSoundVolume - return sound volume between 0 ~ 100
o GetPlayerPosition - return player position in seconds
o GetPlayerPositionPercent - return player position between 0 ~ 100
String Values:
o GetCurrentTrackAlbum - album
o GetCurrentTrackArtist - artist
o GetCurrentTrackBitrate - bitrate
o GetCurrentTrackBPM - beats per minute
o GetCurrentTrackComment - comment
o GetCurrentTrackComposer - composer
o GetCurrentTrackEQ - EQ preset name
39
o GetCurrentTrackGenre - genre(category)
o GetCurrentTrackKindAsString - file description
o GetCurrentTrackName - name
o GetCurrentTrackRating - rating (0 ~ 100)
o GetCurrentTrackSampleRate - sample rate
o GetCurrentTrackSize - file size
o GetCurrentTrackTime - the length of the track
o GetCurrentTrackTrackCount - track count of the album
o GetCurrentTrackTrackNumber - track index
o GetCurrentTrackYear - year
o GetCurrentTrackArtwork - return artwork file path, use in comibnation with DefaultArtwork.
Bangs
iTunes can be controlled through !CommandMeasure statements. You can either one of the following methods.
Create a separate measure for each command that will be required. To control, execute !CommandMeasure "MeasureName" ""
Note that an empty string "" is required when there are no parameters on !CommandMeasure.
Send the bang to any iTunes measure with the command as an argument. For example, !CommandMeasure "AnyiTunesMeasure" "NextTrack"
The example skin below demonstrates both methods.
Example Skin
Plugin-NowPlaying
Plugin=NowPlaying
The NowPlaying plugin is used to control various media players and retrieve track metadata (including album art) from them.
IMPORTANT: This plugin uses the the concept of 'main' and 'secondary' measures. To understand the difference, refer to the example skin at the end of
this page.
Options
PlayerName
The name of the media player (for main measure) or the name of the main measure in square brackets (for secondary measures). For example:
Main measure: PlayerName=Winamp
Secondary measure(s): PlayerName=[MainMeasureName]
PlayerType
Defines the return value. Valid values are:
o ARTIST - Artist name.
o ALBUM - Album name.
o TITLE - Track title.
o NUMBER - Track number.
o YEAR - Track year.
o COVER - Path to cover art.
o FILE - Path to playing media file.
o DURATION - Total length of track in seconds*.
o POSITION - Current position in track in seconds*.
o PROGRESS - Percentage of track completed.
o RATING - From 0 to 5.
o REPEAT - 0 if repeat/loop track is off, 1 if on.
o SHUFFLE - 0 if shuffle/random tracks is off, 1 if on.
o STATE - 0 for stopped, 1 for playing, and 2 for paused.
o STATUS - 0 for inactive (player closed) and 1 for active (player open).
o VOLUME - From 0 to 100.
*: When measures of type DURATION or POSITION are used in STRING meters, the displayed value will be in the formMM:SS. All other meters and
measures receive the actual value in seconds.
PlayerPath
The full path to the player executable (used by the OpenPlayer bang). This should be left blank unless you want to override the default path or if you
have a portable installation of the media player.
TrackChangeAction
A command or a bang that will be executed when the track changes.
DisableLeadingZero
When set to 1 (default 0), the format of DURATION and POSITION is M:SS instead of MM:SS. This option must be set on the main measure.
40
Bangs
The media player can be controlled with !CommandMeasure statements. See the sample example skin below for usage.
!CommandMeasure "MainMeasure" "action"
Where action is one of the following:
o Pause - Pause current track.
o Play - Play current track.
o PlayPause - Play (if stopped/paused) or pause (if playing) current track.
o Stop - Stop current track.
o Next - Change to next track.
o Previous - Change to previous track.
o OpenPlayer - Opens the player. If already open, the player will be brought to the top.
o ClosePlayer - Closes the player.
o TogglePlayer - Opens/closes the player depending on current state.
!CommandMeasure "MainMeasure" "SetPosition n"
Where n is either an absolute value ( SetPosition 50 to jump to 50% of the track) or a relative value ( SetPosition +5 to jump 5% forward
or SetPosition -10 to jump 10% backward).
!CommandMeasure "MainMeasure" "SetRating n"
Where n is a value between 0 (no rating) and 5 (maximum rating).
!CommandMeasure "MainMeasure" "SetShuffle n"
Where n is 1 (shuffle on), 0 (shuffle off), or -1 (toggle shuffle).
!CommandMeasure "MainMeasure" "SetRepeat n"
Where n is 1 (repeat on), 0 (repeat off), or -1 (toggle repeat).
!CommandMeasure "MainMeasure" "SetVolume n"
Where n is either an absolute value ( SetVolume 50 to set volume to 50%) or a relative value ( SetVolume +20 to increase volume by 20%
or SetVolume -40 to decrease volume by 40%).
Supported Players
This list contains all supported media players in the latest beta version of Rainmeter. Note that using an unsupported type or bang is perfectly safe (it
will simply result in in a empty value or no action, respectively).
AIMP: PlayerName=AIMP
Fully supported. Tested with AIMP 2.61.
foobar2000: PlayerName=CAD
Fully supported. The foo_cad plugin (download) for foobar2000 must be installed.
iTunes: PlayerName=iTunes
Fully supported. Tested with iTunes 10.2.
J. River Media Center: PlayerName=CAD
Fully supported through the CAD interface. The intcad plugin for Media Center must be installed.
J. River Media Jukebox: PlayerName=CAD
Fully supported through the CAD interface. The intcad plugin for Media Jukebox must be installed.
Last.fm Client: PlayerName=WLM
Partially supported through the WLM interface.
MediaMonkey: PlayerName=MediaMonkey
Fully supported. Tested with MediaMonkey 3.2.5.
Media Player Classic: PlayerName=WLM
Partially supported through the WLM interface. Note that the 'Send Now Playing information to MSN Messenger' option must be enabled in the player's
settings (View -> Options -> Tweaks).
MusicBee: PlayerName=CAD
Fully supported through the CAD interface. Note that MusicBee 1.2 (or higher) is required.
OpenPandora: PlayerName=WLM
Partially supported through the WLM interface.
Spotify: PlayerName=Spotify
Partially supported. Only the types ARTIST/TRACK and the bangs Play, PlayPause, Stop, Next, and Previous are available.
TTPlayer: PlayerName=WLM
Partially supported through the WLM interface.
Winamp: PlayerName=Winamp
Fully supported. Tested with Winamp 5.61.
VLC: PlayerName=CAD
Fully supported through the CAD interface. The libcad plugin for VLC must be installed.
WMP: PlayerName=WMP
Fully supported, except for the REPEAT/SHUFFLE types.
Zune: PlayerName=WLM
Partially supported through the WLM interface.
41
Other Players
In addition to the players listed above, the NowPlaying plugin may support other players through supported interfaces. You may want to give the following
interfaces a try.
CAD: PlayerName=CAD
Some players support the CD Art Display interface. Note that the CAD interface requires that Rainmeter (and the skin using the NowPlaying plugin) is
started before the media player itself. This is required for the first time only (subsequent loads should work regardless of order).
Winamp: PlayerName=Winamp
Several players emulate the Winamp interface.
WLM: PlayerName=WLM
Several players use the MSN/Windows Live Messenger interface to convey limited track information. This interface is very limited (at best, only the
types TITLE, ARTIST, ALBUM and the bangs Play, Pause, PlayPause, Next, Previous, Stop are supported).
If none of these work, leave a suggestion in this thread. If you're nice enough, support for your player will be added shortly after your message :-)
Donate
This plugin was was developed as a personal project by our user poiru at some cost of time, but is being freely distributed. If you find the plugin valuable,
please express your gratitude by donating any amount by clicking on the following PayPal link. Example Skin
Plugin-PerfMon
Plugin=PerfMon
Use Window's Performance Monitor to find out the valid values for these settings. There are a great many counters which Windows tracks in Performance
Monitor. From the Start Menu, type "Perfmon.msc" to run the tool and find the counters you wish to measure.
Note: The names of the objects, counters and instances need to be in English even in localized versions of Windows.
Options
PerfMonObject
The name of the performance object. E.g. Memory, Process, Processor,...
PerfMonCounter
The name of the performance counter. E.g. "% Processor Time", "Disk Read Bytes/sec", ...
PerfMonInstance
The name of the instance. E.g. "_Total". If the counter doesn't have any instances you can leave this empty.
PerfMonDifference
If set to 1, the difference between two updates is measured instead of the actual value. This is useful as many of the performance values are counters
and you usually want to know how much the counter has increased since last update.
Note: This is 1 by default. Set to 0 to return current value. Example Skin
Plugin-PingPlugin
Plugin=PingPlugin
This plugin can be used to send ping packets to a server and measure the network latency.
Options
DestAddress
The DNS address or IP-number of the server.
UpdateRate
How often the ping packet will be send to the server. This relative to the config's overall update rate.
Timeout
Defines the amount of time in milliseconds that the plugin waits for a reply. The default value is 30000 (i.e. 30 seconds).
TimeoutValue
Defines the value that is returned when timeout happens. The default is 30000. Example Skin
42
Plugin-PluginMediaKey
Plugin=MediaKey
The MediaKey plugin allows you to send various keystrokes found on multimedia keyboards. It has been tested to work with Spotify, Zune, foobar, and
Windows Media Player.
Usage:
[MeasureMediaKey]
Measure=Plugin
Plugin=MediaKey
The plugin is controlled via !CommandMeasure statements sent to its measure. E.g.:
!CommandMeasure "MeasureMediaKey" "NextTrack"
Valid arguments are:
NextTrack
PrevTrack
Stop
PlayPause
VolumeMute
VolumeDown
VolumeUp
Plugin-PowerPlugin
Plugin=PowerPlugin
This plugin can be used to measure battery status and the current MHz on laptops. Note that not all laptops support this (or all the values).
PowerState
This defines what is measured. The valid values are:
o ACLINE - Measures if the power is hooked to ac-line (returns 0 for battery and 1 for ac-line).
o STATUS - Measures the status of the battery (returns 0 for no battery, 1 for charging, 2 for critical, 3 for low, and 4 for high).
o STATUS2 - Same as STATUS except that the BatteryFlag in SYSTEM_POWER_STATUS is returned as is.
o LIFETIME - Measures the lifetime of the battery.
o PERCENT - Measures the percentual lifetime.
o HZ - Measures the current CPU in Hz.
o MHZ - Measures the current CPU in MHz.
Format
This is the same as in a TIME measure. It is used only when PowerState=LIFETIME .
Plugin-Process
Plugin=Process
Detects if a defined Windows process or application is currently running.
Options
ProcessName
The name of the process / application, including the .exe extension.
e.g. ProcessName=Firefox.exe
Returns values of -1 (not running) or 1 (running).
Notes: This can not be used to detect if a Windows "service" executable is running, as those processes are run inside of the "svchost.exe" process. Also,
the plugin may not be able to identify a process that is started with "Run as administrator" if Rainmeter is run with normal user privileges and UAC is
enabled in Windows. Example Skin
43
Plugin-Quote
Plugin=QuotePlugin
This plugin has two different uses: it can display a random string from a text file or it can select a random file from a folder which can be displayed with
the IMAGE meter (if it's an image that is).
Options
PathName
Path to a folder or a file. If it's a folder, the plugin returns the file name of one of the files in it. If it's a file, the plugin reads a random part of text
from it. The file can be encoded in the ANSI or Unicode formats.
Separator
A string that separates the text. The default value is \n (i.e. newline).
Subfolders
If set to 1, subfolders are also taken into account.
FileFilter
This can used to filter the files by their name. It's possible to define several file filters by separating them with a semicolon
(e.g. FileFilter=*.jpg;*.gif ).
Example Skin
Plugin-RecycleManager
Plugin=RecycleManager
This plugin can be used to check the size and count of the files in the recycle bin.
Options
RecycleType
This defines what is measured. The valid values are:
o COUNT - The number of items in the recycle bin.
o SIZE - The total size of the items in the recycle bin.
Bangs
The following bangs can also be sent to any RecyleManager measure:
!CommandMeasure "MeasureMyBin" "OpenBin"
Opens the recycle bin.
!CommandMeasure "MeasureMyBin" "EmptyBin"
Empties the contents of the recycle bin.
!CommandMeasure "MeasureMyBin" "EmptyBinSilent"
Empties the contents of the recycle bin without a confirmation messagebox. Example Skin
44
Plugin-ResMon
Plugin=ResMon
Requires Windows XP with Service Pack 1 or newer. The plugin was originally made by Daedalus.
Options
ResCountType
Valid values are:
o GDI - Measures the number of GDI objects.
o USER - Measures the number of user objects.
o HANDLE - Measures the number of open handles.
o WINDOW - Measures the number of windows in the system.
ProcessName
The name of the process that is measured. E.g. ProcessName=Rainmeter.exe would measure only Rainmeter's resources. Leave this empty if you want
to measure all resources in the system. This has no effect if the ResCountType=WINDOW .
Plugin-Speedfan
Plugin=SpeedFanPlugin
This plugin can read the values measured by SpeedFan. You need to have SpeedFan running for this plugin to work since it doesn't do any measuring itself.
Options
SpeedFanType
Defines the return value. Valid values are:
o TEMPERATURE - Returns the temperature value.
o FAN - Returns the fan speed.
o VOLTAGE - Returns the voltage value.
SpeedFanNumber
This defines the index for the returned value. The indexing starts from 0 so if you want to return e.g. the second temperature value
use SpeedFanNumber=1 .
SpeedFanScale
This defines the temperature unit of measure when SpeedFanType is set to TEMPERATURE.
o C - Returns the temperature in Centigrade.
o F - Returns the temperature in Fahrenheit.
o K - Returns the temperature in Kelvin.
Note: This requires SpeedFan to be set to return Centigrade. Otherwise the returned value will be incorrect.
45
Plugin-SysInfo
Plugin=SysInfo
This plugin returns various information about your system.
Options
SysInfoType
Type of the system information.
String values (can be used only with STRING meters):
o COMPUTER_NAME
o USER_NAME
o SCREEN_SIZE - The resolution of the primary display monitor in a string of the form "width x height"
o WORK_AREA - The size of the client area of the primary display monitor in a string of the form "width x height"
o OS_VERSION
o OS_BITS
o ADAPTER_DESCRIPTION (SysInfoData specifies the adapter)
o NET_MASK (SysInfoData specifies which net mask, if there are several)
o IP_ADDRESS (SysInfoData specifies which ip address, if there are several. 0-999 for installed, 1000-1999 for active)
o GATEWAY_ADDRESS (SysInfoData specifies the adapter)
o HOST_NAME
o DOMAIN_NAME
o DNS_SERVER
Numeric values:
o SCREEN_WIDTH (SysInfoData specifies which monitor, if there are several)
o SCREEN_HEIGHT (SysInfoData specifies which monitor, if there are several)
o VIRTUAL_SCREEN_TOP - Y-Coordinate of the upper left corner of the virtual screen. Use SysInfoData to specify the monitor. These coordinates are
relative to the primary monitor and can be negative.
o VIRTUAL_SCREEN_LEFT - X-Coordinate of the upper left corner of the virtual screen. Use SysInfoData to specify the monitor. These coordinates are
relative to the primary monitor and can be negative.
o VIRTUAL_SCREEN_WIDTH - Width of the virtual screen which encompases all display monitors.
o VIRTUAL_SCREEN_HEIGHT - Height of the virtual screen which encompases all display monitors.
o WORK_AREA_TOP - Y-Coordinate of the upper left corner of the client area. Use SysInfoData to specify the monitor. These coordinates are relative
to the primary monitor and can be negative.
o WORK_AREA_LEFT - X-Coordinate of the upper left corner of the client area. Use SysInfoData to specify the monitor. These coordinates are
relative to the primary monitor and can be negative.
o WORK_AREA_WIDTH - Width of the client area of the primary display monitor. Use SysInfoData to specify a different monitor, if there are several.
o WORK_AREA_HEIGHT - Height of the client area of the primary display monitor. Use SysInfoData to specify a different monitor, if there are
several.
o NUM_MONITORS - The number of display monitors currently active.
SysInfoData
Additional data that some of the SysInfoType items require. This is always a number. For SysInfoTypes which use SysInfoData to specify a monitor, the
appropriate value to pass can be found by opening the Windows Display Properties dialog. It is important to note that "1" is not always the primary
display monitor.
46
Plugin-VirtualDesktops
Plugin=VirtualDesktops
A virtual desktop manager (VDM) allows you to distribute programs across multiple desktops. The VirtualDesktops plugin gives access to information from
different VDMs for Windows and can be used to trigger desktop switches.
General Options
VDManager
Must be set to the name of a supported VDM. The plugin currently supports "Dexpot" and "VirtuaWin".
VDMeasureType
Specifies what information to measure. The following measure types are supported by every VDM and can be used to make basic skins that work with
every VDM supported by this plugin.
o VDMActive - Returns 1 if the VDM is currently running, and 0 otherwise.
o CurrentDesktop - Returns the number of the currently active desktop.
o SwitchDesktop - Triggers a switch to another desktop when sent that desktop's number as a bang.
o DesktopCount - Returns the total number of virtual desktops.
VDDesktopCount
Used with VDMeasureType=DesktopCount . Can be set to either X or Y to return the number of columns or rows, respectively, in a desktop grid layout.
Example:
[CurrentDesktop]
Measure=Plugin
Plugin=VirtualDesktops
VDManager=VirtuaWin
VDMeasureType=CurrentDesktop
[DesktopCountX]
Measure=Plugin
Plugin=VirtualDesktops
VDManager=VirtuaWin
VDMeasureType=DesktopCount>
VDDesktopCount=X
[SwitchDesktop]
Measure=Plugin
Plugin=VirtualDesktops
VDManager=Dexpot
VDMeasureType=SwitchDesktop
Bangs:
!CommandMeasure "SwitchDesktop" "2"
47
Options for VDManager=Dexpot VDOnActivate
A command or bang that is executed when Dexpot starts. Used with VDMeasureType=VDMActive .
VDOnDeactivate
A command or bang that is executed when Dexpot quits. Used with VDMeasureType=VDMActive .
VDOnChange
A command or bang that is executed when the current desktop (used with VDMeasureType=CurrentDesktop ) or number of desktops (used
with VDMeasureType=DesktopCount ) changes.
Note that bangs do not default to the current skin (use !Refresh "#CURRENTCONFIG#" instead of just !Refresh , for example).
Additional types for VDMeasureType :
DesktopName - Returns the name of the currently active desktop. Set VDDesktop to a desktop number to always return that particular desktop's name.
DesktopWallpaper - Returns the path to the wallpaper of the currently active desktop. Set VDDesktop to a desktop number to always return the
wallpaper defined for that particular desktop.
Command - Can be used to send commands to Dexpot through bangs. At this time, valid commands are exactly the Dexpot command line switches. A
complete list can be found at Dexpot Command Line Switches.
Screenshot - Writes a screenshot (in BMP format) of the current desktop to the file specified by VDOutputFile after every desktop switch.
Other options specific to VDMeasureType=Screenshot :
VDDesktop
Set to a desktop number to always save a screenshot of that particular desktop.
VDWidth and VDHeight
Used to define the size of the screenshot in pixels. When both are given, the screenshot is created with those exact dimensions. When only one is
given, the missing value is scaled proportionally based on the other value. When neither VDWidth nor VDHeight are present, the full desktop resolution
is used.
VDRefreshOnUpdate
If set to 1 and VDDesktop denotes the currently active desktop, creates a new screenshot every time the measure is updated. Make sure to use an
appropriate UpdateDivider.
Example:
[Screenshot]
Measure=Plugin
Plugin=VirtualDesktops
VDManager=Dexpot
VDMeasureType=Screenshot
VDDesktop=1
VDOutputFile=#CURRENTPATH#Desktop1.bmp
VDWidth=320
[DexpotCommand]
Measure=Plugin
Plugin=VirtualDesktops
VDManager=Dexpot
VDMeasureType=Command
Bangs:
!CommandMeasure "DexpotCommand" "-next"
!CommandMeasure "DexpotCommand" "-prev"
!CommandMeasure "DexpotCommand" "-V"
!CommandMeasure "DexpotCommand" "-d"
48
Plugin-WebParser
Plugin=WebParser
WebParser reads information from webpages. The plugin uses Regular Expressions to parse the web page which allows it to extract information pretty
much from any page. The plugin can be used e.g. to get the current TV shows, weather conditions, stock exchange values, news and basically anything
that is on the net. The negative side is that the regular expressions might look rather complex especially if you're not familiar with programming languages
(and even if you are :-).
More information and examples for WebParser can be found at WebParser Primer and RSS Skin Tutorial.
Options
Url
Url to the file to be downloaded and parsed. The Url can also be another WebParser-measure, in which case the already downloaded and parsed
information can be reused (e.g. when displaying different StringIndex on the same page). To do this just give the name of the measure in the Url, like
this: Url=[MeasureExample]
WebParser cannot use cookies or other session-based authentication, so it cannot be used to retrieve information from web sites where you must be
logged on. It can be used on sites which support HTTP authentication, where you format the URL as http://myname:[email protected] .
WebParser can read and parse local files on your computer by using Url=file://C:\path\file.ext .
RegExp
The regular expression used in parsing. The plugin uses Perl Compatible Regular Expressions, so check the Perl docs for syntax and more info.
FinishAction
A bang or command that is executed when the page has been downloaded and the parsing is done. This setting is only valid on WebParser measures
that connect to a URL, and actions will not be fired on "child" WebParser measures that use another measure as the URL (i.e. URL=[SomeMeasure]).
StringIndex
Defines which string from the regexp this measure returns. You can get the correct index values by setting the Debug=1, which will add all matched
strings to the log-file.
StringIndex2
The second string index is used when using a RegExp in a measure that uses data from another webparser measure (i.e. the Url points to a measure and
not to a real URL). In this case the StringIndex defines the index of the result of the other RegExp and the StringIndex2 defines the index of this
measure's RegExp (i.e. it defines the string that the measure returns). If the RegExp is not defined in this measure the StringIndex2 has no effect.
UpdateRate
The rate how often the webpage is downloaded. This is relative to the config's main Update rate AND any UpdateDivideron the measure. So the
formula would be Update X UpdateDivider X UpdateRate = "how often the measure connects to the site". The default for UpdateDivider is 1, and the
default for UpdateRate is 600. So if you set an Update of 1000, the default for WebParser is to connect every 10 minutes.(1000 X 1 X 600 milliseconds)
It is advisable to limit the rate so that you're not flooding the server with constant requests. Web server admins will not like it and you may well get
banned from a server altogether if you try to poll the server too often. This is why a default of 600 is set for UpdateRate. You can override this and
make it shorter, but it is advisable (and polite) to only hit websites as often as really needed.
You can use a combination of UpdateDivider and UpdateRate to both limit both how often you hit the website and how often Rainmeter updates the
values returned by the measure and used by meters. However, In general practice it is often best to just set an UpdateRate and leave UpdateDivider
off, so there is no lag between the measure obtaining information from the website and its display in your skin.
DecodeCharacterReference
Automatically decodes HTML Character References. This will eliminate the need to use a Substitute= statement to translate character references
like ", &, <, > to the actual character.
o 0 - Does nothing (default)
o 1 - Decodes both numeric character references and character entity references
o 2 - Decodes only numeric character references
o 3 - Decodes only character entity references
Debug
Set this to 1 and the log file will contain some useful debug information (note that Rainmeter must also be in Debug mode for the Log window to
display DEBUG messages). Value 2 dumps the downloaded webpage to C:\WebParserDump.txt. This can be useful since some web servers send different
information depending which client requests it. Remember to remove this from your config once you have it working correctly.
Debug2File
If Debug is set to 2 then this parameter will allow you to set the path and filename of the file to use for the downloaded webpage. This will allow you to
use WebParser to parse the local version for testing, or for use in another measure or skin.
49
Usage:
[WebParserMeasure]
Debug2File="C:\filename.txt"
Debug=2
[WebParserMeasure2]
; Saves to current skin folder
Debug2File="Debug2File.txt"
Debug=2
Notes:
o Must include at least a filename. Path alone will not work.
o Must be a directory which already exists. Does not create the target directory.
Download
If set to 1, the Url is downloaded to a temporary folder and the name to the file is returned as string value. The measure can be bound to a IMAGE
meter to download images from web and show them. If the RegExp is defined the parsed string is interpreted as a link to the downloaded image.
DownloadFile
When Download is set to 1, the file is downloaded to DownloadFile folder in the skin folder as a filename set to this value. If you define it
as "DownloadFile=image.jpg", DownloadFile folder will be created in the current skin folder then the downloaded file is saved as "image.jpg" If you
define as "DownloadFile=photo\image.jpg", the subfolder photo is created then a file is saved in this folder.
Notes:
o This file is not a temporary file so it is not deleted even if it close a skin.
o As for specification of file path, it is not possible to specify by the absolute path and also specification to the outside ofDownloadFile folder is not
possible.
ErrorString
String that is returned in case there is a parse error.
ForceReload
WebParser reads the resource only if it has been modified. This can be overridden with ForceReload=1.
ProxyServer
Name of the proxy server. The plugin doesn't support any authentication so it's possible to use only servers that does not require it or you need a some
different way to authenticate yourself to the proxy server.
ProxyServer=serverIP:port
ProxyServer=servername:port
CodePage
Defines the codepage of the downloaded web page. For example CodePage=28605 interprets the page as Latin 9 (ISO-8859-15). If the CodePage is set
to 0 no conversion is done. CodePage=65001 means UTF-8. You can check other Windows code pages from here.
Examples:
Retrieve the title and first item from Slashdot's RSS feed.
[MeasureRSSTitle]
Measure=Plugin
Plugin=WebParser
UpdateRate=3600
Url=http://slashdot.org/slashdot.rdf
RegExp="(?siU)<title>(.+)</title>(.+)<item(.+)<title>(.+)</title>"
StringIndex=1
FinishAction=!Redraw
[MeasureRSS]
Measure=Plugin
Plugin=WebParser
Url=[MeasureRSSTitle]
StringIndex=4
Substitute="&":"&"
50
Download the current weather map from Finnish Meteorological Institute.
[MeasureDL]
Measure=Plugin
Plugin=WebParser
UpdateRate=1800
Url=http://www.fmi.fi/saa/sadejapi_5.html?selected=7
RegExp="(?siU)ennuste" SRC=\"(.*)\"></TD>"
FinishAction=!Redraw
StringIndex=1
Download=1
[MeterImage]
Meter=IMAGE
MeasureName=MeasureDL
X=0
Y=0
W=400
H=300
51
Plugin-WiFiStatus
Plugin=WiFiStatus
The WiFiStatus plugin can be used to display various attributes of visible wireless networks in your area. Windows XP SP2 users need to install
the KB918977 hotfix.
Options
WiFiInfoType (required)
This defines what is measured. The valid values are:
o SSID - The broadcast name for your current connection. When trying to conenct, you may see a 'connecting...' or 'authorizing...' next to the name,
but only if your update speed is around 2 seconds
o QUALITY - A percentage value of the maximum dBm signal strength for your current connection
o ENCRYPTION - The cipher algorithm being used for your current connection. Possible values are: NONE, WEP40, TKIP, AES, WEP104, WPA_GROUP,
WEP, ??? (for unknown)
o AUTH - The authentication algorithm being used for your current connection. Possible values are: Open, Shared, WPA_NONE, WPA_Enterprise,
WPA_Personal, WPA2_Enterprise, WPA2_Personal, ???
o PHY - The supported bands for your connection (NOT your adapter). Possible values are 802.11a, 802.11b, 802.11g, 802.11n, DSSS, FHSSS, IR-Band,
???
Note: The PHY measure supported in Windows Vista and higher only.
o LIST - Returns a list of all visible networks. The list is automatically separated by line-breaks '\n', so each network appears on a separate line. It will
also display the band, cipher, and authentication algorithms next the the network name.
WiFiIntfID (optional)
Should be kept at 0 ( WiFiIntfID=0 ) unless you have more than 1 wireless interface adapter (this may or may not include bluetooth/infrared
receivers). If you do not get any response from the measure with this value at 0, then try other values starting from 1, then 2 and so on...
WiFiListStyle (optional)
Allows you to control what information appears along with the names of all visible networks (returned when WiFiInfoType=LIST, see above). This value
should be either 0, 1, 2 or 3. This is how the list will show up based on these values:
o 0 - SSID
o 1 - SSID @band
o 2 - SSID (Encryption:Authentication)
o 3 - SSID @band (Encryption:Authentication)
WiFiListLimit (optional)
Allows you to control how many networks will be displayed by the LIST measure.
Note: The list is sorted in descending order based on the signal quality of each network (i.e. strongest first, weakest last). Any value greater than 0 is
valid for this measure. Examples:
[MeasureSSID]
Measure=Plugin
Plugin=WiFiStatus
WiFiInfoType=SSID
WiFiIntfID=0
[MeasureNetworks]
Measure=Plugin
Plugin=WiFiStatus
WiFiInfoType=LIST
WiFiIntfID=0
WiFiListStyle=3
A more detailed sample and support is available at the WiFiStatus support thread.
52
Plugin-Win7AudioPlugin
Plugin=Win7AudioPlugin
Controls sound device and volume for Windows Vista and newer. Previous versions of Windows are not supported. This plugin has been written by
Reiswaffel.
Usage
[MeasureWin7Audio]
Measure=Plugin
Plugin=Win7AudioPlugin
Returns the name of the current sound device (when used in a STRING meter) and the percentage (0-100) of current volume level (when used in a measure
which requires a number).
Bangs
The current device and volume is controlled with !CommandMeasure statements sent to the plugin. See the sample .ini below for examples.
!CommandMeasure "MeasureWin7Audio" "ToggleNext"
Jump to the first if last device is active.
!CommandMeasure "MeasureWin7Audio" "TogglePrevious"
Jumps to the last if first device is active.
!CommandMeasure "MeasureWin7Audio" "SetOutputIndex i"
Set a specific device with index i. This depends on your system setup and number of output devices.
!CommandMeasure "MeasureWin7Audio" "ToggleMute"
Toggle the mute state.
!CommandMeasure "MeasureWin7Audio" "SetVolume x"
Set volume to x (between 0 and 100). This disables mute.
!CommandMeasure "MeasureWin7Audio" "ChangeVolume x"
Change the volume by x percent. Use negative numbers to lower volume. This disables mute. Example Skin
53
Plugin-WindowMessage
Plugin=WindowMessagePlugin
This plugin can be used to send and receive information from other applications. It can send window messages to other applications and show the result.
The plugin can be used for example to control WinAmp or some similar media players.
Options
WindowName
The name of the window. This is used to identify the window. It's not necessary to set this if the WindowClass is set.
WindowClass
The class of the window. This is used to identify the window. It's not necessary to set this if the WindowName is set.
WindowMessage
This is the message to be send to the window. You need to define 3 parameters to where the first one is the message and the next ones are wParam
and lParam. The values are unsigned decimal integers. The measure returns the value returned by the SendMessage API function. If the WindowMessage
is not given the measure returns the window's current title.
Bangs
Messages can also be sent on demand with the !CommandMeasure bang. The arguments are similar that of the WindowMessage option.
!CommandMeasure "MeasureName" "SendMessage Msg wParam lParam"
Examples:
This returns the name of the song that is playing in WinAmp.
[MeasureWinamp]
Measure=Plugin
Plugin=WindowMessagePlugin
WindowClass=Winamp v1.x
Substitute="[Paused]":""," - Winamp":""
Check if Winamp is playing, or not. This returns 0 if it's not playing, 1 if it is playing and 3 if it's paused.
[MeasureWinampPlaying]
Measure=Plugin
Plugin=WindowMessagePlugin
WindowClass=Winamp v1.x
WindowMessage=1024 0 104
Show song progress. The [MeasureWinampDuration] will return the current song position as a value between 0 and 1. You can use for example the BAR-
meter to display the value.
[MeasureWinampFull]
Measure=Plugin
Plugin=WindowMessagePlugin
WindowClass=Winamp v1.x
WindowMessage=1024 1 105
[MeasureWinampCurr]
Measure=Plugin
Plugin=WindowMessagePlugin
WindowClass=Winamp v1.x
WindowMessage=1024 0 105
[MeasureWinampDuration]
Measure=Calc
Formula=(MeasureWinampCurr<=0)?0:(MeasureWinampCurr/(MeasureWinampFull*1000+1))
54
MouseActions
Mouse actions allow the execution of bangs on specific mouse events.
Note: When using a mouse action on a string meter or image meter with transparency, the action will not be executed when clicking on fully transparent
areas. This can be solved by adding SolidColor=0,0,0,1 to the meter, which will create an near-invisible but solid background behind the meter.
Note: Actions defined for the meter will override actions defined in the [Rainmeter] section.
LeftMouseDownAction
Action to execute when the left mouse button is pressed. Note that this disables dragging. See LeftMouseUpAction below.
RightMouseDownAction
Action to execute when the right mouse button is pressed. Note that this disables the context menu.
MiddleMouseDownAction
Action to execute when the middle mouse button is pressed.
LeftMouseUpAction
Action to execute when the left mouse button is released. Generally, this will be the action used when you want to have something happen when an
object is clicked on. LeftMouseDownAction should be avoided unless you have a specific need to trap the downward press, as it will disable the ability
to drag the skin using that object.
RightMouseUpAction
Action to execute when the right mouse button is released. Note that this disables the context menu.
MiddleMouseUpAction
Action to execute when the middle mouse button is released.
LeftMouseDoubleClickAction
Action to execute when the left mouse button is double clicked. If this action is missing, LeftMouseDownAction will be executed.
RightMouseDoubleClickAction
Action to execute when the right mouse button is double clicked. Note that this disables the context menu.
MiddleMouseDoubleClickAction
Action to execute when the middle mouse button is double clicked.
MouseOverAction
Action to execute when the cursor is over the meter or skin.
MouseLeaveAction
Action to execute when the mouse leaves the meter or skin.
MouseActionCursor
When set to 1 (which is the default), a pointer cursor will be shown when hovering over a meter (or skin) with a mouse action.
The default for a specific skin can be set to 0 by putting MouseActionCursor=0 in the [Rainmeter] section of the skin. This can then be overridden on
a meter by meter basis with MouseActionCursor=1 .
Note: If you have a meter or button with a mouse action, and there is a meter on top of it, you will need to set MouseActionCursor=0 on the
foreground meter (even if it does not have a mouse action).
55
Bangs
Bangs are commands that are used to control various aspects of the skin and Rainmeter. Bangs are specified in options such as LeftMouseUpAction .
General Rules
A single bang may be called using:
LeftMouseUpAction=!Refresh
Multiple bangs must be in square brackets:
LeftMouseUpAction=[!HideMeter "MyMeter"][!Refresh]
Executing an external application is done by using the command and any parameters:
LeftMouseUpAction=["C:\Windows\Notepad.exe" "FileToOpen.txt"]
When using special characters (such as a double quote or unmatched square brackets) in a parameter of a bang, use """ (instead of ") to indicate the
beginning and end of the parameter. For example, the following will set SomeVariable to A "B" C:
LeftMouseUpAction=!SetVariable "SomeVariable" """A "B" C"""
The following, on the other hand, will result in a error:
LeftMouseUpAction=!SetVariable "SomeVariable" "A "B" C"
When using "#VarName#" or "[MeasureName]" in a bang, the current value of the variable or measure will be used. To have the literal string
"#VarName#" or "[MeasureName]" passed in the bang, in a !SetOption value for instance, use the "*" char as in "#*VarName*#" or "[*MeasureName*]" to
tell Rainmeter you do not want the value resolved, but rather used as a literal string.
Bangs
In the list of bangs below, parameters enclosed by [square brackets] indicate required parameters. Parameters enclosed in (normal brackets) indicate
optional parameters.
Several bangs take Config as an optional parameter. When left out, the bang will affect the current skin only. If the Config is specified, the bang will
affect the specified config. Use * as the config to apply the bang to all open configs.
Operating system
!SetClip [String]
Copies the specified string to the Windows clipboard.
!SetWallpaper [File] (Position)
Sets the Windows desktop background to the specified image file (.bmp, .jpg, .png, .gif, and .tiff are supported). The optional Position parameter can
be set to:
o CENTER
o TILE
o STRETCH
o FIT (on Windows 7 and above only)
o FILL (on Windows 7 and above only)
56
Application
!About (TabName)
Opens the About dialog. The optional parameter TabName can be set to:
o Log (default)
o Measures
o Plugins
o Version
!Manage (TabName)
Opens the Manage dialog. The optional parameter TabName can be set to:
o Skins (default)
o Themes
o Settings
!Log [message] (ErrorType)
Writes a message to the error log. The optional parameter ErrorType can be set to:
o NOTICE (default)
o ERROR
o WARNING
o DEBUG
!LsBoxHook [Config]
Special bang for LiteStep lsBox. Note that you MUST give the name of the config as argument.
!ResetStats
Resets the statistics.
!RefreshApp
Does a full refresh of all skins and reloads the list of configs and Rainmeter.ini settings. This is the same as "Refresh All" from the system tray context
menu. The main difference from !Refresh * is that the skins folder is rescanned.
!Quit
Quits Rainmeter.
PLAY [soundfile]
Plays the given .wav soundfile once.
PLAYLOOP [soundfile]
Plays the given soundfile in a loop.
PLAYSTOP
Stops the currently playing sound.
Options and variables
!SetOption [Meter/Measure] [Option] [Value] (Config)
Sets an option (e.g. FontSize, Text, Formula, etc.) of a meter or measure.
A more complete guide to using !SetOption is at !SetOption Guide.
!SetOptionGroup [Group] [Option] [Value] (Config)
Sets an option (e.g. FontSize, Text, Formula, etc.) of meters and measures in the specified group.
!WriteKeyValue [Section] [Key] [Value] (File)
Allows for permanently writing / changing any Key=Value in any Rainmeter .ini or other ini formatted file such as a .inc @Include file. "Section" is the
section name such as Rainmeter or Variables, "Key" and "Value" are the Key=Value pairs such as FontSize=15. "File" is optional. If excluded, the current
skin .ini file will be used. If included, it will make the change to the specified file as long as the file exists and is in the \Skins or %APPDATA%\Rainmeter
paths. Thus, you can write to any skin .ini / .inc or Rainmeter.ini. For a change to a file to take effect, a refresh of the skin (or Rainmeter) is required.
!SetVariable [Variable] [Value] (Config)
Sets a new value for a variable. The meter or measure where the variable is used must have dynamic variables enabled (DynamicVariables=1). Formulas
may be used, enclosed in parentheses. As with all !Bangs, quotes must be used around the parameter if there are spaces: !SetVariable VarName
"(#SCREENAREAWIDTH# - 10)"
Note: !SetVariable can create a new variable in memory, even if it is not pre-defined in [Variables].
!SetVariableGroup [Variable] [Value] [Group]
Change the value of a variable in the configs of the specified group.
57
Skins
!Show (Config)
Displays the Rainmeter-window.
!Hide (Config)
Hides the Rainmeter-window.
!Toggle (Config)
Toggles the Rainmeter-window between show and hide.
!ToggleGroup [Group]
Toggle the configs in the specified group between show and hide.
!HideGroup [Group]
Hide the configs in the specified group.
!ShowGroup [Group]
Show the configs in the specified group.
!Move [X] [Y] (Config)
Moves the Rainmeter-window to new location.
!ActivateConfig [Config] [Ini-file]
Activates a new configuration ini-file. The ini-file is just the name of the file; do not include the path.
!DeactivateConfig (Config)
Deactivates the configuration ini-file.
!DeactivateConfigGroup [Group]
Deactivate the configs in the specified group.
!ToggleConfig [Config] [Ini-file]
Toggles the configuration ini-file between activated and deactivated.
!Refresh (Config)
Reloads the configuration file. The arguments are optional. If not given the current config is reloaded. The Config and IniFile must exist in the already
loaded list of configurations.
!RefreshGroup [Group]
Refresh the configs in the specified group.
!Update (Config)
Causes Rainmeter to immediately update the skin, overriding what is in Update= in the [Rainmeter] Section. Note that this does not override
UpdateDivider/UpdateRate on individual measures.
!Redraw (Config)
Forces the redraw of the window. This also updates all the meters.
!RedrawGroup [Group]
Redraw the configs in the specified group.
!SetTransparency [AlphaAmount] (Config)
Sets the transparency of a skin from 0 (invisible) to 255 (opaque).
!SetTransparencyGroup [AlphaAmount] [Group]
Change the transparency of the configs in the specified group.
!ShowFade (Config), !HideFade (Config), !ToggleFade (Config)
Shows or hides the current or specified (Config) skin using a "fade" effect. The speed of the fade is determined by the FadeDuration= setting for the
skin in Rainmeter.ini.
!ShowFadeGroup (Config), !HideFadeGroup (Config), !ToggleFadeGroup (Config)
Shows or hides the current or specified (Config) group using a "fade" effect. The speed of the fade is determined by the FadeDuration= setting for the
skin in Rainmeter.ini.
!HideBlur (Config)
Hides the blur behind skin.
!ShowBlur (Config)
Shows the blur behind skin if it was hidden.
!ToggleBlur (Config)
Toggles the visibility of the blur behind the skin.
!AddBlur [Region] (Config)
Adds blur region to existing blur area.
!RemoveBlur [Region] (Config)
Removes blur region from existing blur area.
!Draggable [NewSetting] (Config)
Sets Draggable setting for current / named / all configs. NewSetting can be 0 (off), 1 (on), or -1 (toggle).
!DraggableGroup [NewSetting] [Group]
Sets Draggable setting for specified group. NewSetting can be 0 (off), 1 (on), or -1 (toggle).
!ZPos [POS] (Config)
Changes the z-position of the window. -2 = OnDesktop, -1 = OnBottom, 0 = Normal, 1 = OnTop, 2 = Topmost.
!ZPosGroup [POS] [Group]
Change the z-position of the configs in the specified group.
!KeepOnScreen [NewSetting] (Config)
Sets KeepOnScreen setting for current / named / all configs. NewSetting can be 0 (off), 1 (on), or -1 (toggle).
!KeepOnScreenGroup [NewSetting] [Group]
Sets KeepOnScreen setting for specified group. NewSetting can be 0 (off), 1 (on), or -1 (toggle).
58
!ClickThrough [NewSetting] (Config)
Sets ClickThrough setting for current / named / all configs. NewSetting can be 0 (off), 1 (on), or -1 (toggle).
!ClickThroughGroup [NewSetting] [Group]
Sets ClickThrough setting for specified group. NewSetting can be 0 (off), 1 (on), or -1 (toggle).
!SnapEdges [NewSetting] (Config)
Sets SnapEdges setting for current / named / all configs. NewSetting = -1 (toggle) | 0 (off) | 1 (on)
!SnapEdgesGroup [NewSetting] [Group]
Sets SnapEdges setting for specified group. NewSetting can be 0 (off), 1 (on), or -1 (toggle).
Meters
!HideMeter [Meter] (Config)
Hides the given meter. Note that hiding meter does not stop the measurement, you also need to disable the measure if you don't want to spend the
extra CPU cycles for the measuring.
!ShowMeter [Meter] (Config)
Shows the given meter if it was hidden.
!ToggleMeter [Meter] (Config)
Toggles the visibility of the given meter.
!UpdateMeter [Meter] (Config)
Immediately updates the given meter regardless of UpdateDivider.
!MoveMeter [X] [Y] [Meter] (Config)
Moves the given meter (not the window) to the specified position.
!ShowMeterGroup [Group] (Config)
Shows all of the meters in the specified group.
!HideMeterGroup [Group] (Config)
Hides all of the meters in the specified group.
!ToggleMeterGroup [Group] (Config)
Toggles the visibility of all of the meters in the specified group.
!UpdateMeterGroup [Group] (Config)
Immediately updates all of the meters in the specified group regardless of UpdateDivider.
Measures
!DisableMeasure [Measure] (Config)
Disables the given measure.
!DisableMeasureGroup [Group] (Config)
Disables all of the measures in the specified group.
!EnableMeasure [Measure] (Config)
Enables the given measure.
!EnableMeasureGroup [Group] (Config)
Enables all of the measures in the specified group.
!ToggleMeasure [Measure] (Config)
Toggles the status of the given measure (i.e. disabled/enabled).
!ToggleMeasureGroup [Group] (Config)
Toggles the status of all of the measures in the specified group (i.e. enabled/disabled).
!UpdateMeasure [Measure] (Config)
Immediately updates the given measure regardless of UpdateDivider.
!UpdateMeasureGroup [Group] (Config)
Immediately updates all of the measures in the specified group regardless of UpdateDivider.
!CommandMeasure [Measure] [Arguments] (Config)
Sends a command to the given measure. The arguments depend on the measure in question.
Deprecated bangs
The !Execute bang, used both to indicate multiple bangs in one statement and to execute external applications has been made optional. Do not use it
in new skins.
Bangs names can optionally be preceded by the "Rainmeter" keyword. For example, !RainmeterShowMeter and !ShowMeter are both equal. New skins
should not use the Rainmeter prefix.
!PluginBang "[MeasureName] (Arguments)" (Config)
This bang has been deprecated in favor of !CommandMeasure and should not be used in any new skins.
59
LuaScripting
Rainmeter provides scripting support through Lua. The scripting interface provides access to the Lua 5.1 standard library, which can be used to read and
write files, format strings, perform arithmetic, and a lot more. In addition, the interface provides Rainmeter specific features such as retrieving values of
measures and variables, executing bangs, and writing to the log.
Note: This page merely describes Rainmeter specific features. To learn about the Lua language itself, consider the Lua manual, Lua tutorial, or
the Programming in Lua book.
Note: The Lua debug library is not available. In addition, access to external libraries such as LuaCURL and the use of functions such
as require or dofile is not currently supported.
Script measure
Lua scripts (.lua files) are used through the Script measure:
[MeasureLuaScript]
Measure=Script
ScriptFile=MyScript.lua
Script files
A Lua script can define the following functions.
function Initialize()
Initialize is called once when the skin is refreshed or activated. Use it to initialize global variables or perform actions that are executed only once.
Example:
function Initialize()
SKIN:Bang("!About")
end
function Update()
Update is called on every update of the Script measure (use the UpdateDivider option to control the frequency of updates). The function should
return a string, number, or nothing. For the purpose of this example, lets assume that your Script measure is called MeasureScript.
o return 99 - MeasureScript will have a numerical value of 99 (e.g. when used in Calc measures) and a textual value of "99" (e.g. when used as the
MeasureName in STRING meters)
o return '99' - MeasureScript will have a numerical value of 99 and a string value of "99"
o return 'Ninety Nine' - MeasureScript will have a string value of "Ninety Nine"
Example:
function Update()
return 'Hello, world!'
end
60
Example
Skin:
[MeasureScript]
Measure=Script
ScriptFile=LuaSample.lua
ExampleNumber=20
; [MeasureScript] will have a numerical value of 70 and a string value of "70"
Script:
function Initialize()
exampleNumber = SELF:GetNumberOption('ExampleNumber')
end
function Update()
local newNumber = exampleNumber + 50
return newNumber
end
Log
Errors in Lua scripts are reported through the Log tab of the About dialog. The Lua print function can also be used to output to the log.
print('The value of variable myVar is: '..myVar)
SKIN object
The predefined SKIN object exposes functions related to the current skin. For example:
meter = SKIN:GetMeter('ExampleMeter')
SKIN:Bang('!Refresh')
Bang(string bang, string arg1, string arg2, string argN)
Executes a specific bang with zero or more arguments. For example:
SKIN:Bang('!SetOption', 'ExampleMeter', 'FontSize', '15')
Bang(string bang)
Parses and executes the given bang sting. The bang string must be properly quoted and escaped. For example:
SKIN:Bang('!About')
SKIN:Bang('[!HideMeter ExampleMeter][!DisableMeasure ExampleMeasure]')
GetMeter(string meter)
Returns a handle to the given meter (see "Meter objects" below). If the meter is not found, returns nil.
GetMeasure(string measure)
Returns a handle to the given measure (see "Measure objects" below). If the measure is not found, returns nil.
MakePathAbsolute(string path)
Converts relative path into an absolute path (relative to the skin folder).
GetVariable(string name)
Returns the value of the given variable. If the variable is not found, returns nil.
ReplaceVariables(string text)
Replaces #variables# in given string and returns the result.
ParseFormula(string formula)
Evaluates the string as a formula. If the formula is valid, returns the numeric result. Otherwise returns nil.
SELF object
The predefined SELF object exposes functions related to the current Script measure. In addition to the functions listed below, other functions listed under
"Measure objects" can also be used with SELF without needing to obtain a handle to the measure with SKIN:GetMeasure() . For example:
SELF:GetOption('SomeOption')
SELF:GetNumberOption('SomeOption')
61
Meter objects
The meter object exposes functions related to an existing meter. To create a meter object, use the SKIN:GetMeter() function. For example:
exampleMeter = SKIN:GetMeter('ExampleMeter')
exampleMeter:SetX(25)
SetX(number x)
Set the meter X position.
SetY(number y)
Set the meter Y position.
SetW(number w)
Set the meter width.
SetH(number h)
Set the meter height.
GetX([bool abs])
Returns the meter X position. If the optional parameter abs is true, returns the absolute X position.
GetY([bool abs])
Returns the meter Y position. If the optional parameter abs is true, returns the absolute Y position.
GetH()
Returns the meter height.
GetW()
Returns the meter width.
Hide()
Hide the meter.
Show()
Show the meter.
GetOption(string option)
Returns the value of the meter option (e.g. SolidColor).
GetName()
Returns the meter name.
Measure objects
The measure object exposes functions related to an existing measure. To create a measure object, use the SKIN:GetMeasure() function. For example:
exampleMeasure = SKIN:GetMeasure('ExampleMeasure')
exampleMeasure:Disable()
GetValue()
Returns the numerical value of the measure.
GetStringValue()
Returns the string value of the measure.
Disable()
Disable the measure.
Enable()
Enables the measure.
GetOption(string option [, string defaultValue])
Returns the given option on the measure as a string. If the option is not found, returns defaultValue if specified or an empty string otherwise.
GetNumberOption(string option [, number defaultValue])
Returns the given option on the measure as a number. If the option is not a valid number or formula, returns defaultValueif specified or 0 otherwise.
GetName()
Returns the measure name.
GetRelativeValue()
Returns the measure value scaled from 0.0 to 1.0.
GetValueRange()
Returns the value range.
GetMinValue()
Returns the minimum value of the measure.
GetMaxValue()
Returns the maximum value of the measure.
62
Handling actions
The !CommandMeasure bang can be used to execute Lua code in the context of a Script measure. This is especially useful when reacting to mouse or other
action events. For example:
LeftMouseUpAction=!CommandMeasure "ScriptMeasure" "someVar = 5"
LeftMouseUpAction=!CommandMeasure "ScriptMeasure" "func(); var = 2;"
Formulas can be passed to the script with !CommandMeasure in the skin and evaluated using SKIN:ParseFormula() . For example:
LeftMouseUpAction=!CommandMeasure "ScriptMeasure" "func('(5 + 5)')"
function func(arg)
local result = SKIN:ParseFormula(arg) -- result will be 10
end
Formulas should be enclosed in single quotes and parentheses.
Deprecated features
These are features that should not be used. They are still supported, but may be removed in the future.
PROPERTIES {} - This special table was used to pass options on the Script measure to the script itself.
Use SELF:GetOption('SomeOption') or SELF:GetNumberOption('SomeOption') instead.
meter:SetText() - Prefer SKIN:Bang('!SetOption', 'MeterName', 'Text', 'Value') instead.
function GetStringValue() - Return number or string in Update() instead.
RMSkinCreate
The Rainmeter skin package (.rmskin) is an increasingly popular method of distributing various Rainmeter components. It allows one-click installation of
skins, themes, fonts, and more.
To create a .rmskin package, get the .rmskin template from here, then extract and open the newly created Template folder. It should contain five folders
along with a file called Rainstaller.cfg.
Adding your skins / themes / addons / plugins and fonts.
To add components to the package, simply copy it into the correct folder.
Folders in Template\Skins will be copied into the skin folder (usually Documents\Rainmeter\Skins).
Folders in Template\Themes will be copied into the theme folder (usually %APPDATA%\Rainmeter\Themes).
Folders in Template\Addons will be copied into addon folder (usually Program Files\Rainmeter\Addons).
Folders in Template\Plugins will be copied into plugins folder (usually Program Files\Rainmeter\Plugins). See below for additional details.
Folders in Template\Fonts will be copied into fonts folder (usually Program Files\Rainmeter\Fonts). See below for additional details.
For example, to include the "MySkins" suite of skins, simply copy the entire Documents\Rainmeter\Skins\MySkins folder from your Rainmeter installation
into Template\Skins in the template folders.
More on including plugins
You are able to include both 64bit and 32bit in one single .rmskin. If you decide to take advantage of this, you must specify at
least MinRainmeterVer=2.0.0.740 into Rainstaller.cfg. Then, create the Template\Plugins\32bit andTemplate\Plugins\64bit folders and copy the
plugin(s) into the appropriate folder.
Template\
- Plugins\
-- 32bit\
--- MyPlugin\
---- myplugin.dll
-- 64bit\
--- MyPlugin\
---- myplugin.dll
63
More on including Fonts
There are three ways to include font(s) in your distribution:
Recommended - Include a font in your skin folders, allowing use with LocalFont without any additional installation to the end user's Rainmeter or
Windows configuration.
Simply copy the .TTF file(s) into some folder under the skin/suite you will be distributing. For example, You might create a folder
called Skins\MySkins\Fonts and put all the fonts you wish to include in there, then you can use LocalFont=#ROOTCONFIGPATH#Fonts\FontFile.ttf in
your skins to use the fonts you have distributed.
Include a font that will be permanently installed into the end user's Windows configuration.
Simply copy the .TTF file(s) into Template\Fonts. Set RainmeterFonts=0 in Rainstaller.cfg (see below for more on this file) and the font(s) will be
installed to the user's Windows\Fonts folder automatically and will be available for use in Rainmeter skins.
Include a font that will be installed into the Rainmeter "Fonts" folder, for use with LocalFont in Rainmeter skins.
Simply copy the .TTF file(s) into Template\Fonts. Set RainmeterFonts=1 in Rainstaller.cfg (see below for more on this file) and the font(s) will be
installed in the Rainmeter Fonts folder, normally Program Files\Rainmeter\Fonts, and can be used
with LocalFont=#PROGRAMPATH#Fonts\FontFile.ttf in Rainmeter skins.
Changing settings
After you have copied all the necessary files into the correct folders, open any text editor (e.g. notepad) and drag & drop
theTemplate\Rainstaller.cfg file into the text editor. Fill in the obvious (Name, Author, and Version) and save the file. A detailed explanation of the other
values is available at the end of this page, be sure to glance through that list.
Rainstaller.cfg Basic Options
AdminRights
Set AdminRights=1 if the package contains addons, fonts, or plugins.
MinRainmeterVer
Sets the minimum version of Rainmeter required to install. For example, to require that Rainmeter 1.2 r393 or higher is installed,
specify MinRainmeterVer=1.2.0.393
The revision numbers are available from from Google Code.
LaunchType and LaunchCommand
These two values are used to either load config(s) or a specific theme after installation.
o To open an installed theme, set the following (replacing NameOfTheme with the the theme name):
LaunchType=Theme
LaunchCommand=NameOfTheme
o To open load specific config(s) after install, set something like:
LaunchType=Load
LaunchCommand=MySuite\Clock\Clock.ini
The path is relative to the Rainmeter\Skins folder. To open multiple configs, separate each config with a vertical bar
(i.e. LaunchCommand=file1.ini|file2.ini|file3.ini ).
64
Rainstaller.cfg Advanced Options
These are advanced options and you will most likely not need these. Do not use the following, unless you know what they are for.
CompatibilityWithBit
Use CompatibilityWithBit in combination with at least MinRainmeterVer=1.3.0.499 to ensure that the user has a sufficient version of Rainstaller
installed.
Specifies if the package is compatible with only 32bit Rainmeter or 64bit Rainmeter. Can be set to either 32bit or 64bit . Leave blank for both.
Merge
Use Merge in combination with at least MinRainmeterVer=1.3.0.417 to ensure that the user has a sufficient version of Rainstaller installed.
Set Merge=1 to merge skins in the package with the users skins. Note that the target system must already have the skin in question installed for Merge
to work (set to Merge=2 to ignore this).
KeepVar
Use KeepVar in combination with at least MinRainmeterVer=1.3.0.427 to ensure that the user has a sufficient version of Rainstaller installed.
KeepVar below Rainmeter 1.3 r560 does not support Unicode files or multiple files. For Unicode and multiple file support, use at
least MinRainmeterVer=1.3.0.559
KeepVar can be used to keep variables in a common settings file (e.g. UserVariables.inc in Engima or Variables.inc in Gnometer) during a skin upgrade.
The path is relative to the Rainmeter\Skins folder.
For example, to keep variables intact in Rainmeter\Skins\MySkin\CommonVariables.txt on upgrade, specify:
KeepVar=MySkin\CommonVariables.txt
If MySkin\CommonVariables.txt exists already exitsts in target system, Rainstaller will read all values from "new" CommonVariables.txt and replace
them with corrosponding values from "old" CommonVariables.txt. To keep variables for multiple files, separate each file with a vertical bar
(i.e. KeepVar=file1.ini|file2.ini|file3.ini ).
RainmeterFonts
Set RainmeterFonts=1 to copy fonts into the Rainmeter font folder (usually Program Files\Rainmeter\Fonts) for use with Rainmeter's LocalFont
feature. Leave blank to install normally to WINDOWS\Fonts.
Custom Header
To use a custom header in Rainstaller, simply create a bitmap named Rainstaller.bmp into the same folder as Rainstaller.cfg. Then create the .rmskin
file. When the .rmskin file is opened, Rainstaller will display the custom header instead of the default. The dimensions of the bitmap should be exactly
400x60 pixels.
Creating the .rmskin file
The .rmskin file is simply a renamed .zip file. So, in order to create a .rmskin file, you'll need to create a .zip file first. To do this, right-click on
the Template folder and select Send to -> Compressed (zipped) folder. You will be asked to name the newly created .zip file. Give it the name of your
choice and press Enter.
To convert the created .zip file into a .rmskin file, simply change the file extension from .zip to .rmskin. If you don't know how to do this manually, grab
and run ExttensionChanger from from here. It will allow you change extensions from .zip to .rmskin and vice versa.
Testing and sharing
Before sharing the newly created .rmskin with others, you will need to make sure it works properly. Remember to delete the components from your own
computer before installing to make sure the files were installed properly. For example, if you know that the .rmskin is going to install a skin called
"BestSkinEver", delete "BestSkinEver" from Rainmeter\Skins.
After you have ensured that everything works as intended, you are free to upload and share your .rmskin with others.