rainmeter manual

161
Rainmeter Customizable Resource Meter Introduction Rainmeter is a Windows customization application. Empower your desktop with an expandable library of useful tools - handy notes and application launchers, weather and feeds from the web, system status and more. Then, rearrange and modify them to suit your personal style. With Rainmeter, your desktop is finally yours. Rainmeter can display various performance data in different formats. It can measure: CPU load Allocated memory Network traffic Windows performance data Uptime Free disk space and a lot more! The data can be displayed e.g. in a histogram, a bar, bitmap frames or just plain numbers. Rainmeter also includes a plugin interface to extend the capabilities with 3rd party plugins. Rainmeter will run on Windows 2000 and above and has both 32bit and 64bit versions. And no, Rainmeter does not measure how much it rained last night, though it probably could ;-) Important links Location of the latest version of Rainmeter for download: Rainmeter Homepage

Transcript of rainmeter manual

Page 1: rainmeter manual

Rainmeter

Customizable Resource Meter

 

IntroductionRainmeter is a Windows customization application. Empower your desktop with an expandable library of useful tools - handy notes and application launchers, weather and feeds from the web, system status and more. Then, rearrange and modify them to suit your personal style. With Rainmeter, your desktop is finally yours.

Rainmeter can display various performance data in different formats. It can measure:

CPU load Allocated memory Network traffic Windows performance data Uptime Free disk space and a lot more!

The data can be displayed e.g. in a histogram, a bar, bitmap frames or just plain numbers. Rainmeter also includes a plugin interface to extend the capabilities with 3rd party plugins.

Rainmeter will run on Windows 2000 and above and has both 32bit and 64bit versions.

And no, Rainmeter does not measure how much it rained last night, though it probably could ;-)

Important linksLocation of the latest version of Rainmeter for download: Rainmeter HomepageThe Rainmeter Community Forums: Rainmeter ForumsRainmeter Skins on DeviantArt: Rainmeter on DeviantArtRainmeter Group on DeviantArt: Rainmeter Group on DeviantArtRainmeter Skins on Customize.org: Rainmeter on Customize.org

 

Installation

Page 2: rainmeter manual

Download the latest release or beta version from http://rainmeter.net. The installer (.exe) allows you to install both 'standard' and 'portable' installations.

Both 32bit and 64bit installations are done with the same installer.

If you are running on a 64bit version of Windows, you will be asked if you wish to install 64bit or 32bit Rainmeter. If the installer detects a previous version of Rainmeter on your system, the same architecture version will automatically be installed. If you wish to change from 32bit to 64bit, you should uninstall Rainmeter first.

Rainmeter will detect if you require either the C++ runtime libraries or the .NET libraries. The C++ runtimes are required to use Rainmeter. Chances are you already have them, but if not, Rainmeter will download and install them. The .NET libraries are required to use any of the C# plugins which come with Rainmeter. If you are running on Windows 2000 you will need at least Service Pack 3, and on XP at least Service Pack 2, to install the .NET libraries. If you elect not to install the .NET files, you will not be able to use any plugins written in C#.

Rainmeter is fully compatibile with Windows XP, Vista, and Windows 7.

The file which Rainmeter uses to keep track of the skins you have loaded and how they are configured (Rainmeter.ini) is stored in your "Application Data" folder, and all Rainmeter "skins" are stored in your "My Documents" folder.

The following components are distributed by default with Rainmeter:- The illustro suite of skins by poiru- RainBrowser (skin manager), RainThemes (theme manager), and RainBackup (Rainmeter backup tool) by JSMorley

Normal Installation

Run the installer. By default Rainmeter will install in "C:\Program Files\Rainmeter", but you may install it in any folder you wish. The installer presents you with a set of options allowing you to create Start Menu and desktop shortcuts, have Rainmeter automatically start with Windows, and install Rainmeter for all users.

When Rainmeter starts the first time, it will install the default skins and themes in the proper folder locations and load the illustro suite of skins.

Portable Installation

If you wish to run Rainmeter from one folder, so it can be easily taken with you or even run directly from a removable drive, all you need to do is download the latest installer and select 'Portable Install' during the install process. You will be prompted to browse for a location (for which you have full read and write access) to install Portable Rainmeter. After the install, you may use the program normally, but can easily take the application "on the road" by copying the

Page 3: rainmeter manual

entire \Rainmeter folder and sub-folders. Note that if you do a portable install, you are responsible for ensuring you have the appropriate C++ and .NET runtime libraries installed on your system.

Default File LocationsProgram files:Windows XP: C:\Program Files\RainmeterWindows Vista and later: C:\Program Files\Rainmeter

Skins:Windows XP: C:\Documents and Settings\YourName\My Documents\Rainmeter\SkinsWindows Vista and later: C:\Users\YourName\My Documents\Rainmeter\Skins

Rainmeter.ini and themes:Windows XP: C:\Documents and Settings\YourName\Application Data\RainmeterWindows Vista and later: C:\Users\YourName\Appdata\Roaming\Rainmeter

Uninstalling

If you installed Rainmeter with the installer you can uninstall it from "Add or Remove Programs". If you installed Portable Rainmeter, just delete the folder you browsed for during the install process.

Ensure that Rainmeter is not running when uninstalling.

 

SettingsThere is no fancy settings editor, so you need to change the settings with your favorite text editor. The general configuration settings are in a file named Rainmeter.ini. The skin settings are in the skin's respective .ini files.

Rainmeter.ini is in the following location:Windows XP: C:\Documents and Settings\YourName\Application Data\RainmeterWindows Vista and later: C:\Users\YourName\Appdata\Roaming\Rainmeter

The file can be edited by using "Edit Settings" from the Rainmeter context menu or RainBrowser.

The Rainmeter.ini file has several sections [Rainmeter], [TrayMeasure] and [Statistics] as well as 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 the config is opened it will write the

Page 4: rainmeter manual

settings under its own section in the Rainmeter.ini file. The Statistics section contains some network traffic information used by measures like NetIn/NetOut. Do not modify this data by hand.

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. So if you cannot change something try to close Rainmeter and then change the value.

 

[Rainmeter]The [Rainmeter] section of Rainmeter.ini defines general Rainmeter settings. The following must be put under the [Rainmeter] section:

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). 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.

TrayIcon Set to 0 to get rid of the tray icon.

TrayExecuteL, TrayExecuteM, TrayExecuteR, TrayExecuteDL, TrayExecuteDM, TrayExecuteDR Executes a command or !bang when the tray icon is (double)clicked with the mouse. L, R and M denote left, right and middle buttons respectively. Note that TrayExecuteR will override the normal context menu in the tray.

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\SkinsWindows Vista & Win7: C:\Users\YourName\My Documents\Rainmeter\Skins

Page 5: rainmeter manual

Logging If set to "1" then 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" then additional logging information will be added to Rainmeter.log. 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 this check is for the release versions of Rainmeter only. Beta releases will be ignored.

 

[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:

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 Rainmeter's 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, ...)

Page 6: rainmeter manual

Note: To use the default Rainmeter icon as the tray icon, remove the entire [TrayMeasure] section.

 

[ConfigName]The following should be put under the the sections for their respective configs. For example [illustro\Clock]. WindowX and WindowYThese 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. If Rainmeter is ran inside a lsbox the window position should be set to 0.

AnchorX and AnchorYBy 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.

SavePositionIf 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. This can also be set via the context menu by right-clicking the desired config and navigating to "Skin Menu".

AlwaysOnTopIf 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.

Page 7: rainmeter manual

These values can also be set via the context menu by right-clicking the desired config and navigating to "Skin Menu > Position".

DraggableIf set to 1, the window can be dragged around with the mouse. If 0, the window will be stationary. This can also be set via the context menu by right-clicking the desired config and navigating to "Skin Menu".

SnapEdgesIf 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. This can also be set via the context menu by right-clicking the desired config and navigating to "Skin Menu".

HideOnMouseOverIf 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). This can also be set via the context menu by right-clicking the desired config and navigating to "Skin Menu".

StartHiddenIf set to 1, the config is hidden when started. You can use !RainmeterShow bang to make it visible.

NativeTransparencySet to 1 for native transparency support (only necessary for Win2k & XP).

AlphaValueThe transparency value for the window. Use values between 0...255. Only works if native transparency is enabled. This can also be set via the context menu by right-clicking the desired config and navigating to "Skin Menu > Transparency".

FadeDurationThis 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.

ClickThroughIf 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. This can also be set via the context menu by right-clicking the desired config and navigating to "Skin Menu".

KeepOnScreenSet to 1 to keep the windows always on the monitor area. This can also be set via the context menu by right-clicking the desired config and navigating to "Skin Menu".

LoadOrder

Page 8: rainmeter manual

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 context menu, or by using the "Skin Settings" button in the RainBrowser addon.

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.

 

Built-in VariablesThe following are pre-existing variables whose values are set by the system and do not need to be defined in the [Variables] section.

You may also use the Windows "environment" variables which can be obtained by entering "Set" at a command (cmd.exe) prompt. These are used by putting the variable name inside of percent characters. (LeftMouseUpAction=!Execute ["Explorer.exe" "%ProgramFiles%\Rainmeter"]) Be aware that Windows environment variables vary with different versions of Windows.

Built-in Rainmeter and Windows variables many be used anywhere, including within Rainmeter.ini. They however cannot be redefined by a !RainmeterSetVariable statement.

Note: Built-in Rainmeter variables that describe a path already contain a trailing slash "\" character.

#CRLF# inserts a line break. #PROGRAMDRIVE# is the drive the program is installed to (e.g. C:, \\server\Users\, etc...). #PROGRAMPATH# is the path to the program folder (e.g. C:\Program Files\Rainmeter\). #SETTINGSPATH# is the path to the folder where the settings file is located (e.g.

%APPDATA%\Rainmeter\) #SKINSPATH# is the path to the skins folder #PLUGINSPATH# is the path to the plugins folder (e.g. C:\Program Files\Rainmeter\Plugins\) #ADDONSPATH# is the path to the addons folder (C:\Program Files\Rainmeter\Addons\) #CURRENTPATH# is the path to the currently read ini file.

Page 9: rainmeter manual

#CURRENTCONFIG# is the full ConfigName of the currently loaded skin. (e.g. Enigma\Sidebar\)

#ROOTCONFIGPATH# is the path to the highest level folder under \Skins for the current config.

#CURRENTSECTION# returns the current [Section] name where the variable is used. It can be used in a MeterStyle, and will still return the name of the meter the style is used in, but it should be noted that if used in the [Variables] section as Var=#CURRENTSECTION#, it will return "Variables" wherever used.

#CURRENTCONFIGWIDTH# returns the current width in pixels of the current config. #CURRENTCONFIGHEIGHT# returns the current height in pixels of the current config. #CURRENTCONFIGX# returns the current left screen position in pixels of the current config. #CURRENTCONFIGY# returns the current top screen position in pixels of the current config. #WORKAREAX# is the X-position of the work area. #WORKAREAY# is the Y-position of the work area. #WORKAREAWIDTH# is the width of the work area. #WORKAREAHEIGHT# is the height of the work area. #SCREENAREAWIDTH# is the width of the display resolution. #SCREENAREAHEIGHT# is the height of the display resolution.

 

Config GroupsConfigs can be categorized into "Groups". To add a Config to a group, simply add the "Group" statement to the section. 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. In this case, that group will be considered the default for all configs that have no groups defined.

Example:

[Enigma\Sidebar\Systems]Active=0WindowX=0WindowY=0AlphaValue=255FadeDuration=250ClickThrough=0Draggable=1HideOnMouseOver=0SavePosition=1SnapEdges=1KeepOnScreen=1AutoSelectScreen=0AlwaysOnTop=0Group=Enigma | System | Sidebar

In this example, the Enigma\Sidebar\Systems config would belong to the "Enigma" group, the "System" group and the "Sidebar" group.

Page 10: rainmeter manual

The bangs to control config groups can be found at the Bangs page.

 

Multiple MonitorsThere 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: http://msdn.microsoft.com/en-us/library/dd145136%28VS.85%29.aspx

"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

The following variables are 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.

The following variables are 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.

Page 11: rainmeter manual

#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.

The following variables are 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.

The following variables are 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.

 

SkinsThe skins are placed into the "Skins folder. Each skin must be in its own subfolder. The actual skin file is a normal .ini file with several sections that defines the skin's shape and the things it measures and displays. The skin's subfolder can contain several .ini files, but only one of them can be active at the any time. This allows you, for example, to supply localized skins or different variations of some skin.

The skin's ini file is divided into several parts. All the general settings are put under the [Rainmeter] section, information about the skin used by RainBrowser in the [Metadata] section and the variables in the [Variables] section. After the general stuff come the [Measures], which do the actual measuring of values, and [Meters], which are visual representations of the results of the the measures. It is possible to bind many meters for one measure. While it is not necessary to place the sections in this order, it is the convention that is observed by many skin authors.

Page 12: rainmeter manual

Note: While you can put sections in any order you wish, it is important to understand that 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.

 

[Rainmeter]

Background Image Settings

BackgroundName 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.

BackgroundModeDefines the background mode:

0 - Image as defined by Background 1 - Transparent (default if no Background image defined) 2 - Solid color 3 - Scaled background image 4 - Tiled background image

ImageCropCrops the image. The parameters are ImageCrop=X, Y, W, H, Origin. Origin is optional and can be set to one of the following:

1 - Top left 2 - Top right 3 - Bottom right 4 - Bottom left 5 - Center (both W and H)

GreyscaleIf set to 1, the image will be greyscaled.

ImageTintThe 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".

Page 13: rainmeter manual

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".

ImageFlipFlips the image. Valid values are:

NONE HORIZONTAL VERTICAL BOTH - flips both horizontally and vertically

ImageRotateRotates an image by the defined number of degrees. Negative numbers rotate counter-clockwise.

BackgroundMarginsDefines the margins for the background image that are not scaled when the BackgroundMode is set to 3. E.g. BackgroundMargins=10,10,10,10

SolidColorIf the background mode is set to 2, this defines the color of the background.

SolidColor2If the background mode is set to 2, this defines a second color for the background to create a gradient.

GradientAngleIf the background mode is set to 2, this defines the angle for the color gradient. The angle is defined in degrees.

BevelTypeIf the background mode is set to 2, this draws a beveled edge around the solid background.

0 - No bevel 1 - Raised 2 - Sunken

Other Settings

UpdateThe 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

Page 14: rainmeter manual

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.

DynamicWindowSizeIf set to 1 the size of the window is calculated during every update. The window is scaled automatically if necessary.

DragMarginsDefines 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

OnRefreshActionExecutes a command or !bang that is executed when the config is refreshed. This includes when the config is opened the first time.

AuthorThe name and email of the author of the skin.

AppVersionThe 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 1000000 and Rainmeter 2.1 would be 2001000.

LocalFont (LocalFont2, LocalFont3, ...) Allows the use of fonts without installing into WINDOWS\Fonts.

Example:[Rainmeter]LocalFont=#CURRENTPATH#\TheSaBdCp.ttf

[SomeMeter]Meter=STRINGFontFace=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.

 

Page 15: rainmeter manual

[Metadata]This section contains information about the skin itself. Alone, metadata is useful as a consistent and reliable place to learn about a skin, and how it is meant to be used and configured. In addition, addons like RainBrowser can take advantage of metadata to enable more sophisticated skin management features.

It is important for all metadata to be written in the [Metadata] section using a specific set of keys. A template is provided below. As a skin developer, you should provide appropriate values for all of these keys.

The following should be entered under the [Metadata] section of a skin:

Name=Title | Subtitle- This is the name and subtitle you wish the skin to be known by.Config=Root Skin Folder | Subfolders | Current Folder- This is the config (folder) structure the skin is in.Description=Point 1 | Point 2 | Point 3- Your description of the skin and its functionality. Use " | " for linefeeds.Instructions=Point 1 | Point 2 | Point 3- Any instructions for the end user. Use " | " for linefeeds.Version=2.0- The version of the skin.Tags=Tag 1 | Tag 2 | Tag 3- Tags, separated by " | " which are used for categorizing and searching skins.License=Creative Commons Attribution-Non-Commercial-Share Alike 3.0- The author's license for the skin.Variant=1- Which variant in a folder with multiple .ini files.Preview=#SKINSPATH#MyConfig\Images\Previews\Preview.png- Path and name of a preview image used in RainBrowser.

 

[Variables]The variables are keywords that are replaced in other settings. These can be used, e.g., to gather user defined values to the top of the config-file so that they can be easily changed. To define a variable, you must set a value for it in the [Variables] section of a skin or @Include file. To use a variable in a meter or measure, just surround the keyword with # characters.

Variables take the form:VariableName=Value

Page 16: rainmeter manual

The variable is then referred to later in measures and meters as:#VariableName#

So to set a variable for the size of the font you want to use on all your meters you might use:[Variables]Size=11

Then in every meter displaying text, you could set the parameter:[SomeMeter]FontSize=#Size#

Note: There are several pre-defined variables you can use anywhere in Rainmeter. They can be found at: Built-in Variables.

 

Dynamic VariablesBy setting DynamicVariables=1 in a measure or meter, variables that have had their values changed by the "!RainmeterSetVariable" !bang can be read by that measure or meter. Additionally, if dynamic variables are turned on, a measure's name can be used as a variable to use its current value elsewhere. Measure values are encased by [square brackets]. Dynamic Variables can be used in any measure or meter, but not in the [Rainmeter] or [Variables] sections.

Note: There is also currently no support for Dynamic Variables in plugins, such as WebParser or QuotePlugin.

Example:

[Rainmeter]Update=1000DynamicWindowSize=1

[Variables]Width=100

[MeasureCalc]Measure=CalcFormula=Counter%100

[Square1]Meter=ImageSolidColor=255,0,0W=#Width#H=50MouseOverAction=!RainmeterSetVariable Width 200DynamicVariables=1

Page 17: rainmeter manual

[Square2]Meter=ImageSolidColor=0,0,255W=[MeasureCalc]H=50Y=RDynamicVariables=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.

 

@IncludeLoads an external file in the .ini format so an author can have skin, config, suite or Rainmeter-wide variables, or even shared measures. The loaded file is treated as if the contents were included in the actual skin .ini file. The path used is relative to the current .ini file.The @include statement must be used under some section (i.e. it cannot be the first thing in the file). Most often it is used in the [Variables] section of a skin, to allow sharing of common variables between skins. If there are multiple included files within the same section of the .ini file, each @include statement should be numbered as follows: @include1=...@include2=...@include3=...

etc...

Remember that since the included file is being treated as part of the .ini file, it must also have the proper .ini formatting (i.e. [section] parameter=value). If the included file is not itself a fully working skin, then it should not use the .ini extension. Doing so may cause issues with Rainmeter's context menu, as well as some third-party applications. A common alternative is the .inc extension

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.

Note: You may use a variable as the name of an @include file, but not a dynamic variable.

Example:

IncludedFile.inc:    [Variables]    FontColor=255,255,255,255

Page 18: rainmeter manual

HostSkin.ini:    [Variables]    FontFace=Arial

    @Include=IncludedFile.inc  

Mouse ActionsMouse actions are commands you add to a meter (or the [Rainmeter] section in two cases) to have Rainmeter take some action when the mouse interacts with the meter. You can have Rainmeter run a built-in !Bang, several !Bangs at once, or even execute some external command.

Note: When using a mouse action on a string meter or image meter with transparency, you must click exactly on the meter text or image, as the transparent areas do not react to clicks. 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 element.

How an action is formatted varies somewhat depending on which !Bang is being used, or what an external application expects. The rules are available at the Bangs page.

Mouse Actions for [Meters]

LeftMouseDownActionA command or a bang that will be executed when the left mouse button is pressed down over the Rainmeter's window. Note that this disables dragging.

RightMouseDownActionA command or a bang that will be executed when the right mouse button is pressed down over the Rainmeter's window. Note that this disables the context menu.

MiddleMouseDownActionA command or a bang that will be executed when the middle mouse button is pressed down over the Rainmeter's window.

LeftMouseUpActionA command or a bang that will be executed when the left mouse button is released over the Rainmeter's window.

RightMouseUpActionA command or a bang that will be executed when the right mouse button is released over the Rainmeter's window. Note that this disables the context menu.

MiddleMouseUpActionA command or a bang that will be executed when the middle mouse button is released over the Rainmeter's window.

Page 19: rainmeter manual

LeftMouseDoubleClickActionA command or a bang that will be executed when the left mouse button is Double Clicked on the Rainmeter's window. (if this action is missing, LeftMouseDownAction will be executed)

RightMouseDoubleClickActionA command or a bang that will be executed when the right mouse button is Double Clicked on the Rainmeter's window. Note that this disables the context menu.

MiddleMouseDoubleClickActionA command or a bang that will be executed when the middle mouse button is Double Clicked on the Rainmeter's window.

Mouse Actions for [Meters] and [Rainmeter]

MouseOverActionA command or a bang that will be executed when the mouse goes over the Meter.

MouseLeaveActionA command or a bang that will be executed when the mouse leaves the Skin or Meter.

MouseActionCursorWhen set to 1 (which is the default), Rainmeter will change the cursor to a pointer if it is over a meter with a mouse action or a button.

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 (text or image) on TOP of it, you will need to set MouseActionCursor=0 on the foreground meter, even if it does not have a mouse action, or the action will not be seen on the background meter/button and the cursor will not change. MouseActionCursor=0 causes the "cursor" routines to ignore a meter, and the action on the background meter/button will then be detected.

 

Meter/Measure GroupsMeasures and meters can be categorized into groups. To add a measure or meter to a group, simply add the Group= statement to the section. Any number of groups may be added to a section, all of which must be separated by a vertical bar (i.e. "|"). These groups can then be controlled through the following bangs:

Page 20: rainmeter manual

!RainmeterShowMeterGroup [Group] (Config)Show all meters in the group.

!RainmeterHideMeterGroup [Group] (Config)Hide all meters in the group.

!RainmeterToggleMeterGroup [Group] (Config)Toggle all meters in the group.

!RainmeterEnableMeasureGroup [Group] (Config)Enable all measures in the group.

!RainmeterDisableMeasureGroup [Group] (Config)Disable all measures in the group.

!RainmeterToggleMeasureGroup [Group] (Config)Toggle all measures in the group.

Example:In this example, both of the meters belong to the "CPU" group. Then, MeterCPUText also belongs to the "Strings" group and MeterCPUBar in turn belongs to the "Bars" group.

[MeterCPUText]Meter=StringMeasureName=MeasureCPUGroup=CPU | Strings

[MeterCPUBar]Meter=BarMeasureName=MeasureCPUGroup=CPU | Bars

To hide the "Bars" group, execute the following Bang:!RainmeterHideMeterGroup Bars

 

MeasuresMeasures 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.

Examples:[MeasureTime]Measure=TimeFormat=%H:%M

Page 21: rainmeter manual

[MeasurePhysMemTotal]Measure=PhysicalMemoryTotal=1UpdateDivider=2

[MeasureFreeDriveSpace]Measure=FreeDiskSpaceDrive=C:IgnoreRemovable=0UpdateDivider=2

 

General SettingsThese general settings apply to all measure types.

MeasureThis defines what is measured. The valid values are:

CPU - Measures total load from CPU or individual cores. Memory - Measures overall memory utilization. PhysicalMemory - Measures allocated physical memory. SwapMemory - Measures virtual memory allocation. Uptime - Measures how long computer has been on. This works only in a STRING meter. NetIn - Measures incoming network traffic. NetOut - Measures outgoing network traffic. NetTotal - Measures total network traffic. FreeDiskSpace - Measures free diskspace. Plugin - Measure is defined by an external plugin. Registry - Measures registry values. Time - Measures time and date. Calc - Calculates formulas.

InvertMeasureIf set to 1, the measured value is inverted. For example, you can measure the allocated disk space instead of free space.

DisabledIf set to 1, the measure is disabled at start. A disabled measure always returns zero as its value.

UpdateDividerThis 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

Page 22: rainmeter manual

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.

MaxValueThe maximum value the measure can have. The default is 1.0.

MinValueThe minimum value the measure can have. The default is 0.0.

SubstituteA list of comma separated value pairs that can be used to change certain values to another. You must use quotes around the values! E.g. Substitute="cat":"dog" would change all "cat" to "dogs" in the measured value.

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.

AverageSizeDefines the window size of average measuring. For example, when AverageSize=10, the returned value is the average of last ten values.

 

Measure IfActionsMeasure 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.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.

IfAboveActionA 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.

Page 23: rainmeter manual

IfAboveValueThe value used by IfAboveAction.

IfBelowActionA 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.

IfBelowValueThe value used by IfBelowAction.

IfEqualActionA 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.

IfEqualValueThe value used by IfEqualAction.

Example Skin

 

Calc MeasureThe Calc measure is used to calculate formulas.

FormulaThis 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.

Operators

+ (addition) - (substraction) * (multiplication) / (division)

Page 24: rainmeter manual

** (power) % (remainder or modulus) & (bitwise and) | (bitwise or) ^ (bitwise xor) ~ (bitwise not)

Logical Operators

<> (not equal) = (equal to) > (greater than) < (less than) && (logical and) || (logical or)

Functions

ATAN(x), ASIN(x), ACOS(x), COS(x), SIN(x), TAN(x) - Standard trigonometric functions 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.

Constants

PI - Pi (~3.14159265...) E - Euler's constant (~2.71828182...)

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:

Page 25: rainmeter manual

   if (condition)     then       expr. if true     else       expr. if false   end if

Random FunctionThe word RANDOM returns a random number between the values of "LowBound" and "HighBound" defined in the measure.

UpdateRandomWhen UpdateRandom=1 a new random number is set on each update cycle. When UpdateRandom=0 a random number is set on refresh.

Other BasesThe 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

 

CPU MeasureReturns the percentage used of the entire CPU or individual cores.

ProcessorCan 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

Page 26: rainmeter manual

 

FreeDiskSpace MeasureFreeDiskSpace returns usage statistics for the selected drive.

DriveThis is the drive for which the disk space is measured. (eg: "C:")

TotalIf set to 1 this returns the total size of the drive.

LabelIf set to 1 this returns the label of the drive.

IgnoreRemovableIf 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.

Example Skin

 

MemoryMeasures the amount of virtual memory free in bytes. Virtual memory is equal to Pagefile + RAM + RAM.

TotalIf set to 1 this returns the total memory.

Example Skin

Page 27: rainmeter manual

 

NetIn/Out MeasuresMeasures various types of network traffic.

NetIn

Measures incoming network traffic.

NetInSpeedThe 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.

TrafficActionAction to be executed when a certain amount of data has been downloaded.

TrafficValueThe value used by TrafficAction.

InterfaceThe 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.

CumulativeIf 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.

NetOut

Measures outgoing network traffic.

NetOutSpeedThe 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.

TrafficActionAction to be executed when a certain amount of data has been uploaded.

TrafficValueThe value for the TrafficAction.

Page 28: rainmeter manual

InterfaceThe 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.

CumulativeIf 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.

NetTotalSpeedThe 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.

TrafficActionAction to be executed when a certain amount of data has been uploaded and downloaded.

TrafficValueThe value for the TrafficAction.

InterfaceThe 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.

CumulativeIf 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

 

PhysicalMemory MeasureMeasures the amount of physical RAM memory free in bytes.

TotalIf set to 1 this returns the total physical memory.

Page 29: rainmeter manual

Example Skin

 

Plugin MeasureA 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.

PluginThe path and name of the plugin relative to the program folder, where Rainmeter.exe is (e.g. Plugin=Plugins\WebParser.dll).

Example Skin

 

Registry MeasureProvides a way to read data from the Windows Registry.

RegHKeyThe name of the HKEY. Possible values are:

HKEY_CURRENT_CONFIG HKEY_CURRENT_USER HKEY_LOCAL_MACHINE HKEY_CLASSES_ROOT

Page 30: rainmeter manual

HKEY_PERFORMANCE_DATA HKEY_DYN_DATA

RegKeyThe name of the registry key.

RegValueThe 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=CalcFormula=[MeasureRegistry]MinValue=0MaxValue=100DynamicVariables=1

Example Skin

 

SwapMemory MeasureMeasures the amount of virtual (swap) memory free in bytes.

Total

Page 31: rainmeter manual

If set to 1 this returns the total swap memory.

Example Skin

 

Time MeasureMeasures the current time/date.

FormatThe format how the time is written (e.g. Format="%H:%M:%S").You can also use "locale-time" and "locale-date" to use the format that is used currently in Windows.

TimeZoneThe timezone value (e.g. TimeZone=+2.0). You can use also fractional values. If this is not given the local time is used.

DaylightSavingTimeIf set to 1, the daylight saving time is applied to the time (it depends on your local time). This is only used if the TimeZone has been set.

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)

Page 32: rainmeter manual

%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

 

UpTime MeasureReturns the amount of time since the last restart of the computer.

FormatFormat to display the output. The default is Format="%4!i!d %3!i!:%2!02i!".

%4 - Days %3 - Hours %2 - Minutes %1 - Seconds !i! - Putting this after the format code shows the numbers with no leading zeros !02i! - Putting this after the format code shows the numbers with leading zeros

Note: If %4 (days) is not included in the Format= statement then days * 24 are added to %3 (hours).

Example Skin

 

Meters

Page 33: rainmeter manual

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 containng 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, irregardless 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

 

General SettingsThe following are setting which apply to all meter types.

MeterIndicates the type of the meter. The valid values are:

BAR BITMAP BUTTON HISTOGRAM IMAGE LINE ROTATOR ROUNDLINE STRING

MeterStyleThe name of a [Section] containing settings for meter attributes you wish to share with multiple meters. See MeterStyles for details.

Page 34: rainmeter manual

MeasureNameThe 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.

XThe 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.

YThe 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.

WThe 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.

HThe 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)).

HiddenIf set to 1, the meter is hidden.

UpdateDividerThis 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.

SolidColorThe 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.

SolidColor2An optional second color for the meter's background to create a gradient. This follows the same format as SolidColor.

Page 35: rainmeter manual

GradientAngleThe angle of the meter's background color gradient. The angle is defined in degrees.

BevelTypeThis draws a beveled edge around the solid background.

0 - No bevel (Default) 1 - Raised 2 - Sunken

AntiAliasIf set to 1, the meter is drawn as antialiased.

 

Color CodesRainmeter 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.

Decimal format: RRR,GGG,BBB,AAAThe 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: RRGGBBAAThe 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.

Page 36: rainmeter manual

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 he 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 ColorPicker.com.

Examples:

Solid opaque red is 255,0,0,255 or FF0000FFSolid opaque blue is 0,0,255,255 or 0000FFFFSolid opaque grey is 128,128,128,255 or 808080FFHalf-transparent green is 0,255,0,128 or 00FF0080

 

MeterStyleThis allows you to create CSS-like "Styles" for meters. The current meter will use the settings from the specified style as its own. A "Style" is really just another section, however it is not necessarily a meter or measure. A meter will, basically, inherit all values from the specified styles. Multiple styles can be used by separating them with a pipe (i.e. Style1 | Style2 | ...).

Example Skin

 

A Note on Fonts in RainmeterFonts are used in Meter=STRING meters in Rainmeter with the FontFace= setting in the meter, and can be handled two ways. You can permanently install the font in Windows, (simply right click any font file and select "Install Font") or you can use the "LocalFont" functionality of Rainmeter to use a font without installing it.

Page 37: rainmeter manual

Generally speaking, unless you plan to use a new font for more than one or two Rainmeter skins, and want it available all the time, LocalFont is a good option. Installed fonts in Windows use resources (memory primarily) even if you are not using them, and if you just need a font for Rainmeter, there is no reason why you must install it and have Windows load it on every reboot. Both approaches work equally well, and it is your choice. Do be aware however, that if you distribute a skin using a 3rd-party font, you must include the font with the skin and either have the user install it in Windows or design the skin to use LocalFont.

Some general tips on using fonts in Rainmeter

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 FontForge, 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.

Page 38: rainmeter manual

Installing a font in Windows and using it

Install the font by right clicking it and selecting "Install Font". This will install the font in Windows\Fonts and it will be available in Rainmter and all other Windows applications.

Note: You MUST restart Rainmeter after installing a new font in Windows, so Rainmeter "sees" the new font.

Use the font with the Family Name in a Meter=STRING meter.

[MeterName]Meter=StringFontFace=MyInstalledFont

Using LocalFont

Place the actual .ttf font file in a folder. Use the LocalFont="Path\FileName.ttf" statement in the [Rainmeter] section of your skin. Then use the Family Name in FontFace=xxx as you normally would.

Note: You may use more than one LocalFont in [Rainmeter] by simply adding a number: LocalFont2=, LocalFont3=

[Rainmeter]LocalFont="#CURRENTPATH#SomeFont.ttf

[MeterName]Meter=StringFontFace=MyLocalFont

Example Skin

 

Mouse Actions

Page 39: rainmeter manual

Mouse actions are commands you add to a meter (or the [Rainmeter] section in two cases) to have Rainmeter take some action when the mouse interacts with the meter. You can have Rainmeter run a built-in !Bang, several !Bangs at once, or even execute some external command.

Note: When using a mouse action on a string meter or image meter with transparency, you must click exactly on the meter text or image, as the transparent areas do not react to clicks. 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 element.

How an action is formatted varies somewhat depending on which !Bang is being used, or what an external application expects. The rules are available at the Bangs page.

Mouse Actions for [Meters]

LeftMouseDownActionA command or a bang that will be executed when the left mouse button is pressed down over the Rainmeter's window. Note that this disables dragging.

RightMouseDownActionA command or a bang that will be executed when the right mouse button is pressed down over the Rainmeter's window. Note that this disables the context menu.

MiddleMouseDownActionA command or a bang that will be executed when the middle mouse button is pressed down over the Rainmeter's window.

LeftMouseUpActionA command or a bang that will be executed when the left mouse button is released over the Rainmeter's window.

RightMouseUpActionA command or a bang that will be executed when the right mouse button is released over the Rainmeter's window. Note that this disables the context menu.

MiddleMouseUpActionA command or a bang that will be executed when the middle mouse button is released over the Rainmeter's window.

LeftMouseDoubleClickActionA command or a bang that will be executed when the left mouse button is Double Clicked on the Rainmeter's window. (if this action is missing, LeftMouseDownAction will be executed)

RightMouseDoubleClickActionA command or a bang that will be executed when the right mouse button is Double Clicked on the Rainmeter's window. Note that this disables the context menu.

Page 40: rainmeter manual

MiddleMouseDoubleClickActionA command or a bang that will be executed when the middle mouse button is Double Clicked on the Rainmeter's window.

Mouse Actions for [Meters] and [Rainmeter]

MouseOverActionA command or a bang that will be executed when the mouse goes over the Meter.

MouseLeaveActionA command or a bang that will be executed when the mouse leaves the Skin or Meter.

MouseActionCursorWhen set to 1 (which is the default), Rainmeter will change the cursor to a pointer if it is over a meter with a mouse action or a button.

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 (text or image) on TOP of it, you will need to set MouseActionCursor=0 on the foreground meter, even if it does not have a mouse action, or the action will not be seen on the background meter/button and the cursor will not change. MouseActionCursor=0 causes the "cursor" routines to ignore a meter, and the action on the background meter/button will then be detected.

 

ToolTipsThis 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.

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.

ToolTip can use values of MeasureName in the form %1, %2 etc. as appropriate for various meter types:Line, String: %1, %2, %3, ...

Page 41: rainmeter manual

Histogram: %1, %2Others: %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:

INFO WARNING ERROR QUESTION SHIELD (Only available in 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.

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 show and hide all ToolTips in an entire skin.

 

Transformation MatrixThis 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

Page 42: rainmeter manual

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.

 

Bar MeterBar 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.

BarColorThe color of the bar. The colors are given in the same manner as with SolidColor: RGB(A).

Page 43: rainmeter manual

BarImageThe image that is used behind the bar. This can be used instead of the BarColor.

BarBorderIf 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).

ImageCropCrops the image. The parameters are ImageCrop=X, Y, W, H, Origin. Origin is optional and can be set to one of the following:

1 - Top left 2 - Top right 3 - Bottom right 4 - Bottom left 5 - Center (both W and H)

GreyscaleIf set to 1, the image will be greyscaled.

ImageTintThe 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".

ImageFlipValues are NONE, HORIZONTAL, VERTICAL or BOTH.

ImageRotateRotates an image by the defined number of degrees. Negative numbers rotate counter-clockwise.

ColorMatrixNThe 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; 0ColorMatrix2=0; 1; 0; 0; 0ColorMatrix3=0; 0; 1; 0; 0ColorMatrix4=0; 0; 0; 1; 0ColorMatrix5=0; 0; 0; 0; 1

Page 44: rainmeter manual

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.

ImageAlphaChange 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.

BarOrientationThe orientation of the bar. Valid values are HORIZONTAL or VERTICAL.

FlipSet to 1 to flip the direction of the bar.

Example Skin

 

Bitmap MeterThe 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.

BitmapImageThis 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

Page 45: rainmeter manual

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.

BitmapFramesThe number of frames in the image.

BitmapTransitionFramesThe 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.

BitmapZeroFrameIf 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.

BitmapExtendIf 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.

BitmapDigitsNumber 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.

BitmapSeparationSeparation between digits when BitmapDigits is higher than one. This can also be a negative number.

ImageTintThe 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".

Page 46: rainmeter manual

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".

ImageFlipValues are NONE, HORIZONTAL, VERTICAL or BOTH.

ColorMatrixNThe 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; 0ColorMatrix2=0; 1; 0; 0; 0ColorMatrix3=0; 0; 1; 0; 0ColorMatrix4=0; 0; 0; 1; 0ColorMatrix5=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.

ImageAlphaChange 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

 

Button MeterThe 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.

Page 47: rainmeter manual

Changes to the button image are applied in the following order: GreyScale -> ImageTint -> ImageFlip.

ButtonImageThe 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 at Creating a Button Image.

ButtonCommandThe command or !bang that is executed when the button is pressed.

GreyscaleIf set to 1, the image will be greyscaled.

ImageTintThe 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".

ImageFlipValues are NONE, HORIZONTAL, VERTICAL or BOTH.

ColorMatrixNThe 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; 0ColorMatrix2=0; 1; 0; 0; 0ColorMatrix3=0; 0; 1; 0; 0ColorMatrix4=0; 0; 0; 1; 0ColorMatrix5=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.

Page 48: rainmeter manual

ImageAlphaChange 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

 

Histogram MeterHistograms 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.

SecondaryMeasureName or MeasureName2The 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.

PrimaryColorColor for the primary histogram. The colors are given in the same manner as with SolidColor.

SecondaryColorColor for the secondary histogram.

BothColorColor that is used when the primary and secondary histograms are on top of each other.

PrimaryImageName of the image that is used behind the secondary 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

Page 49: rainmeter manual

Name of the image that is used behind the secondary histogram.

BothImageName of the image that is used when the primary and secondary histograms are on top of eachother.

PrimaryImageCrop, SecondaryImageCrop, BothImageCropCrops the image. The parameters are PrimaryImageCrop=X, Y, W, H, Origin. Origin is optional and can be set to one of the following:

1 - Top left 2 - Top right 3 - Bottom right 4 - Bottom left 5 - Center (both W and H)

PrimaryGreyscale, SecondaryGreyscale, BothGreyscaleIf set to 1, the image will be greyscaled.

PrimaryImageTint, SecondaryImageTint, BothImageTintThe 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, BothImageFlipValues are NONE, HORIZONTAL, VERTICAL or BOTH.

PrimaryImageRotate, SecondaryImageRotate, BothImageRotateRotates an image by the defined number of degrees. Negative numbers rotate counter-clockwise.

PrimaryColorMatrixN, SecondaryColorMatrixN, BothColorMatrixNThe 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; 0PrimaryColorMatrix2=0; 1; 0; 0; 0PrimaryColorMatrix3=0; 0; 1; 0; 0PrimaryColorMatrix4=0; 0; 0; 1; 0PrimaryColorMatrix5=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,

Page 50: rainmeter manual

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, BothImageAlphaChange 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.

AutoscaleIf set to 1, the histogram is automatically scaled to show all the values.

FlipIf set to 1 the meter is flipped upside-down.

Example Skin

 

Image MeterThe 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.

ImageNameName of the image to be displayed. ImageName can also be the result of values returned by one or more measures:Meter=IMAGEMeasureName=SomeMeasureMeasureName2=SomeMeasure2ImageName=%1-%2.png

PathPath to the image. The path is relative to the skin's folder.

Page 51: rainmeter manual

AntiAliasIf set to 1, the image has antialias interpolation routines applied to it when displayed.

PreserveAspectRatioIf set to 1, the aspect ratio of the image is preserved when the image is scaled. Set to 0 by default.

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.

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.

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.

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.

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.

ImageCropCrops the image. The parameters are ImageCrop=X, Y, W, H, Origin. Origin is optional and can be set to one of the following:

1 - Top left 2 - Top right 3 - Bottom right 4 - Bottom left 5 - Center (both W and H)

ScaleMarginsAllows 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.

GreyscaleIf set to 1, the image will be greyscaled.

ImageTint

Page 52: rainmeter manual

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".

ImageFlipValues are NONE, HORIZONTAL, VERTICAL or BOTH.

ImageRotateRotates an image by the defined number of degrees. Negative numbers rotate counter-clockwise.

TileTiles (repeats) an image within the bounds set by W and H on the image meter.

ColorMatrixNThe 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; 0ColorMatrix2=0; 1; 0; 0; 0ColorMatrix3=0; 0; 1; 0; 0ColorMatrix4=0; 0; 0; 1; 0ColorMatrix5=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.

ImageAlphaChange 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

Page 53: rainmeter manual

 

Line MeterThe 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.

LineCountNumber of lines in the meter. There can be any number of lines in the same meter. Settings with N in their name must have the number of the line being used to be defined. 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.

AutoScalef 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.

HorizontalLinesIf set to 1 horizontal lines are drawn behind the histogram lines.

HorizontalLineColorThe color of the horizontal lines. The colors are given in the same manner as with SolidColor: RGB(A).

Page 54: rainmeter manual

LineWidthThe width of the line in pixels.

FlipIf set to 1 the meter is flipped upside down.

Example Skin

 

Rotator MeterThe 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.

Changes to the image are done by applied in the following order: ImageCrop -> GreyScale -> ImageTint -> ImageFlip -> ImageRotate.

ImageNameName of the image to be rotated.

ImageCropCrops the image. The parameters are ImageCrop=X, Y, W, H, Origin. Origin is optional and can be set to one of the following:

1 - Top left 2 - Top right 3 - Bottom right 4 - Bottom left 5 - Center (both W and H)

GreyscaleIf set to 1, the image will be greyscaled.

ImageTintThe 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

Page 55: rainmeter manual

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".

ImageFlipValues are NONE, HORIZONTAL, VERTICAL or BOTH.

ImageRotateRotates an image by the defined number of degrees. Negative numbers rotate counter-clockwise.

ColorMatrixNThe 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; 0ColorMatrix2=0; 1; 0; 0; 0ColorMatrix3=0; 0; 1; 0; 0ColorMatrix4=0; 0; 0; 1; 0ColorMatrix5=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.

ImageAlphaChange 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.

OffsetXX-offset of the center of rotation.

OffsetYY-offset of the center of rotation.

StartAngleThe start angle for the line. This is in radians and the zero angle at the right. The defualt rotation direction is clockwise.

RotationAngle

Page 56: rainmeter manual

The size of the rotation angle for the line. Use negative value for counter-clockwise rotation.

ValueRemainderUse remainder instead of the actual measured value. This can be used to draw analog clock.

Example Skin

 

Roundline MeterThe 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. If the width and height are not defined, the center point is the at the X and Y position of the meter. If width and height are specified, it is in the middle of the bounding box. Roundline meters require that the measure being used is from 0.0 to 1.0 or has both MaxValue and MinValue set.

LineWidthThe width of the line in pixels

LineLengthThis defines the length of the line. The length is always measured from the center of rotation (no matter what the LineStart value is).

ControlLength, LengthShiftIf ControlLength is set to 1, the measure value controls the LineLength from LineLength to LineLength + LengthShift.

LineStart

Page 57: rainmeter manual

This defines the distance from the center at which the line starts.

ControlStart, StartShiftIf ControlStart is set to 1, the measure controls the LineStart from LineStart to LineStart + StartShift.

StartAngleThe starting angle for the line. This is in radians and the zero angle is at the right. The default rotation direction is clockwise.

ControlAngle, RotationAngleUnless 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.

ValueRemainderUse remainder instead of the actual measured value. This can be used to draw an analog clock.

LineColorThe color of the line. The colors are given in the same manner as with SolidColor: RGB(A).

SolidSet to 1 and the meter will draw a pie-chart instead.

Example Skin

 

String MeterString 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.

MeasureName, MeasureName2, ...The name of a measure to bind with the meter.

Page 58: rainmeter manual

FontColorThe color of the text. The colors are given in the same manner as with SolidColor: RGB(A).

PrefixString that is displayed before the value.

PostfixString that is displayed after the value.

FontFaceName 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.

FontSizeSize of the font.

StringAlignThe alignment of the string. The valid values are: LEFT, CENTER and RIGHT.

StringStyleStyle of the string. The valid values are: NORMAL, BOLD, ITALIC and BOLDITALIC.

StringEffectEffect of the string. The valid values are: NONE, SHADOW and BORDER.

FontEffectColorThe color of the StringEffect. The colors are given in the same manner as with SolidColor: RGB(A).

StringCaseSets the "case" of the string. The Valid values are NONE, UPPER, LOWER, PROPER.

ScaleScaling 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.

AutoScaleIf set to other than 0, the value is scaled automatically. This setting overrides Scale. The value is automatically postfixed with the appropriate T, G, M or k characters.

Valid values are 0, 1, 1k, 2 or 2k, with 1/1k scaling by 1024 and 2/2k scaling by 1000For instance:A=2800000000, B=0

Page 59: rainmeter manual

- AutoScale=0AutoScale is disabled. Uses Scale value.A="2800000000", B="0"

- AutoScale=1Scales value by 1024.A="2.6 G", B="0.0 "

- AutoScale=2Scales value by 1000.A="2.8 G", B="0.0 "

- AutoScale=1kScales value by 1024, and uses kilo as the lowest unit.A="2.6 G", B="0.0 k"

- AutoScale=2kScales value by 1000, and uses kilo as the lowest unit.A="2.8 G", B="0.0 k"

PercentualIf set to 1, the value is displayed as a percentage.

NumOfDecimalsThe number of decimals used in the displayed value.

TextThe text that is displayed. Use %1, %2, etc. for different measures.

ClipStringIf 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.

AngleThis 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.

Example Skin

Page 60: rainmeter manual

 

PluginsA 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 left 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.

 

AdvancedCPU PluginPlugin=Plugins\AdvancedCPU.dll

This is similar to using PerfMon to measure the CPU usage except that you can filter out processes or only include some of them.

CPUIncludeList of process names that are included in the cpu measuring. The names are separated with semicolon (";"-char). The include list overrides the excludes.

Page 61: rainmeter manual

CPUExcludeList 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.

TopProcessValue 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 to get the percentage but you should note that if the values cannot be measured excatly once per second (like it usually cannot because the timer in Windows is not accurate) you might get values larger than 100%.

Example Skin

 

FolderInfo PluginPlugin=Plugins\FolderInfo.dll

FolderInfo.dll can be used to count files in a folder, their size, and more.

FolderPath to the folder to watch. Relative paths do not work currently.

InfoTypeDefines the return value:

FileCount - Found files as an integer value FileCountStr - Found files as a string FolderCount - Found folders as an integer value FolderCountStr - Found folders as a string FolderSize - Total size of found folders as an integer value FolderSizeStr - Total size of found folders as a string

RegExpFilterThe 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.

IncludeSubFoldersIf set to 1, sub-folders are included in the count. Disabled by default.

Page 62: rainmeter manual

IncludeHiddenFilesIf set to 1, hidden files are included in the count. Disabled by default.

IncludeSystemFilesIf set to 1, system files are included in the count. Disabled by default.

Example Skin

 

InputText PluginPlugin=Plugins\InputText.dll

InputText inserts user-supplied text into a one or more !Bang-commands. 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.

Command1 (Command2, Command3...)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:

Command[#]=[Command Before Input]$UserInput$[CommandAfterInput] [MeasureKey]="[Value]"

DefaultValueText that will appear in the input box when it is created.

PasswordIf Password=1, all input will be displayed as asterisks.

X

Page 63: rainmeter manual

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").

YThe 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").

WThe width of the input box, in pixels.

HThe height of the input box, in pixels.

SolidColorThe 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.

FontColorThe 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.

FontFaceThe font of text written in the input box.

Note: LocalFont cannot be used to format an InputText box.

FontSizeThe size of text written in the input box.

StringStyleAdditional text effect applied to text. Valid values are NORMAL, BOLD, ITALIC, BOLDITALIC.

StringAlignInput 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=!RainmeterPluginBang "MeasureInputTextPlugin ExecuteBatch

Page 64: rainmeter manual

ALL X=100"

IfAboveAction=!RainmeterPluginBang "MeasureInputTextPlugin ExecuteBatch 3"

Command4=!RainmeterPluginBang "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.

While an InputText box is open, no Rainmeter skin will respond to mouse actions. Although the bang !RainmeterRefresh 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 !RainmeterRefresh #CURRENTCONFIG#.

Example Skin

 

iTunes PluginPlugin=Plugins\iTunesPlugin.dll

This plugin can be used to remote control iTunes and get information from it.

DefaultArtworkSets the default path (relative path to the skin's folder) for artwork returned by Command=GetCurrentTrackArtwork.

CommandCan be any of the following:

Control Bangs: (no return value)

Backtrack - reposition to the beginning of the current track or go to the previous track if already at start of current track

FastForward - skip forward in a playing track NextTrack - advance to the next track in the current playlist Pause - pause playback Play - play the currently targeted track

Page 65: rainmeter manual

PlayPause - toggle the playing/paused state of the current track PreviousTrack - return to the previous track in the current playlist Resume - disable fast forward/rewind and resume playback if playing Rewind - skip backwards in a playing track Stop - stop playback GotoMusicStoreHomePage - go to the iTunes Store home page Power - open/close iTunes instance Quit - exit the iTunes application SoundVolumeUp - turn the volume up 5% SoundVolumeDown - turn the volume down 5% ToggleiTunes - show/hide iTunes window ToggleVisuals - show/hide iTunes visuals UpdateIPod - update the contents of the iPod UpdatePodcastFeeds - update all podcast feeds (equivalent to the user pressing the Update

button when Podcasts is selected in the Source list)

Integer Values:

GetSoundVolume - return sound volume between 0 ~ 100 GetPlayerPosition - return player position in seconds GetPlayerPositionPercent - return player position between 0 ~ 100

String Values:

GetCurrentTrackAlbum - album GetCurrentTrackArtist - artist GetCurrentTrackBitrate - bitrate GetCurrentTrackBPM - beats per minute GetCurrentTrackComment - comment GetCurrentTrackComposer - composer GetCurrentTrackEQ - EQ preset name GetCurrentTrackGenre - genre(category) GetCurrentTrackKindAsString - file description GetCurrentTrackName - name GetCurrentTrackRating - rating (0 ~ 100) GetCurrentTrackSampleRate - sample rate GetCurrentTrackSize - file size GetCurrentTrackTime - the length of the track GetCurrentTrackTrackCount - track count of the album GetCurrentTrackTrackNumber - track index GetCurrentTrackYear - year GetCurrentTrackArtwork - return artwork file path, use in comibnation with DefaultArtwork.

Bangs

Page 66: rainmeter manual

iTunes can be controlled through !RainmeterPluginBang statements. You can either one of the following methods.

Create a separate measure for each command that will be required. To control, execute !RainmeterPluginBang MeasureName.

Send the bang to any iTunes measure with the command as an argument. For example, !RainmeterPluginBang "AnyiTunesMeasure NextTrack" (quotes required).

The example skin below demonstrates both methods.

Example Skin

 

Perfmon PluginPlugin=Plugins\PerfMon.dll

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.

Important note: The names of the objects, counters and instances need to be in English even in localized versions of Windows.

PerfMonObjectThe name of the performance object. E.g. Memory, Process, Processor,...

PerfMonCounterThe name of the performance counter. E.g. "% Processor Time", "Disk Read Bytes/sec", ...

PerfMonInstanceThe name of the instance. E.g. "_Total". If the counter doesn't have any instances you can leave this empty.

PerfMonDifferenceIf 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.

Page 67: rainmeter manual

Note: This is 1 by default. Set to 0 to return current value.

Example Skin

 

Ping PluginPlugin=Plugins\PingPlugin.dll

This plugin can be used to send ping packets to a server and measure the network latency.

DestAddressThe DNS address or IP-number of the server.

UpdateRateHow often the ping packet will be send to the server. This relative to the config's overall update rate.

TimeoutDefines the amount of time in milliseconds that the plugin waits for a reply. The default value is 30000 (i.e. 30 seconds).

TimeoutValueDefines the value that is returned when timeout happens. By default this is the Timeout.

Example Skin

 

MediaKey PluginPlugin=Plugins\MediaKey.dll

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.

Page 68: rainmeter manual

Usage:

[MeasureMediaKey]Measure=PluginPlugin=MediaKey.dll

The plugin is controlled via !RainmeterPluginBang statements sent to its measure. E.g.:

!RainmeterPluginBang "MeasureMediaKey NextTrack"

Valid arguments are:

NextTrack PrevTrack Stop PlayPause VolumeMute VolumeDown VolumeUp

 

Power PluginPlugin=Plugins\PowerPlugin.dll

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).

PowerStateThis defines what is measured. The valid values are:

ACLINE - Measures if the power is hooked to ac-line (returns 0 for battery and 1 for ac-line). 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). STATUS2 - Same as STATUS except that the BatteryFlag in SYSTEM_POWER_STATUS is

returned as is. LIFETIME - Measures the lifetime of the battery. PERCENT - Measures the percentual lifetime. HZ - Measures the current CPU in Hz. MHZ - Measures the current CPU in MHz.

FormatThis is the same as in a TIME measure. It is used only when PowerState=LIFETIME.

Page 69: rainmeter manual

 

Quote PluginPlugin=Plugins\QuotePlugin.dll

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).

PathNamePath 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.

SeparatorA string that separates the text. The default value is \n (i.e. newline).

SubfoldersIf set to 1, subfolders are also taken into account.

FileFilterThis 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

 

RecycleManager PluginPlugin=Plugins\RecycleManager.dll

This plugin can be used to check the size and count of the files in the recycle bin.

RecycleTypeThis defines what is measured. The valid values are:

COUNT - The number of items in the recycle bin. SIZE - The total size of the items in the recycle bin.

Page 70: rainmeter manual

DrivesDefines the drives to watch for trash. For the sum all recycle bins, use Drives=ALL.For specific drives use a pipe as a delimiter. E.g. Drives=A:|C:|D: will give the sum of these drives.

Bangs

The following bangs can also be sent to any RecyleManager measure:

!RainmeterPluginBang "MeasureMyBin OpenBin"Opens the recycle bin.

!RainmeterPluginBang "MeasureMyBin EmptyBin"Empties the contents of the recycle bin.

!RainmeterPluginBang "MeasureMyBin EmptyBinSilent"Empties the contents of the recycle bin without a confirmation messagebox.

Example Skin

 

ResMon PluginPlugin=Plugins\ResMon.dll

Requires Windows XP with Service Pack 1 or newer. The plugin was originally made by Daedalus.

ResCountTypeValid values are:

GDI - Measures the number of GDI objects. USER - Measures the number of user objects. HANDLE - Measures the number of open handles. WINDOW - Measures the number of windows in the system.

Page 71: rainmeter manual

ProcessNameThe 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.

 

Speedfan PluginPlugin=Plugins\SpeedFanPlugin.dll

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.

SpeedFanTypeDefines the return value. Valid values are:

TEMPERATURE - Returns the temperature value. FAN - Returns the fan speed. VOLTAGE - Returns the voltage value.

SpeedFanNumberThis 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.

SpeedFanScaleThis defines the temperature unit of measure when SpeedFanType is set to TEMPERATURE.

C - Returns the temperature in Centigrade. F - Returns the temperature in Fahrenheit. K - Returns the temperature in Kelvin.

Note: This requires SpeedFan to be set to return Centigrade. Otherwise the returned value will be incorrect.

 

SysInfo PluginPlugin=Plugins\SysInfo.dll

This plugin returns various information about your system.

SysInfoType

Page 72: rainmeter manual

Type of the system information. The valid values are:String Values (can be used only with STRING meters):

COMPUTER_NAME USER_NAME SCREEN_SIZE - The resolution of the primary display monitor in a string of the form "width x

height" WORK_AREA - The size of the client area of the primary display monitor in a string of the

form "width x height" RAS_STATUS OS_VERSION OS_BITS ADAPTER_DESCRIPTION (SysInfoData specifies the adapter) NET_MASK (SysInfoData specifies which net mask, if there are several) IP_ADDRESS (SysInfoData specifies which ip address, if there are several. 0-999 for installed,

1000-1999 for active) GATEWAY_ADDRESS (SysInfoData specifies the adapter) HOST_NAME DOMAIN_NAME DNS_SERVER

Numeric Values:

SCREEN_WIDTH (SysInfoData specifies which monitor, if there are several) SCREEN_HEIGHT (SysInfoData specifies which monitor, if there are several) 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.

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.

VIRTUAL_SCREEN_WIDTH - Width of the virtual screen which encompases all display monitors.

VIRTUAL_SCREEN_HEIGHT - Height of the virtual screen which encompases all display monitors.

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.

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.

WORK_AREA_WIDTH - Width of the client area of the primary display monitor. Use SysInfoData to specify a different monitor, if there are several.

WORK_AREA_HEIGHT - Height of the client area of the primary display monitor. Use SysInfoData to specify a different monitor, if there are several.

NUM_MONITORS - The number of display monitors currently active.

Page 73: rainmeter manual

SysInfoDataAdditional 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.

 

VirtualDesktops PluginPlugin=Plugins\VirtualDesktops.dll

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.

VDManagerMust be set to the name of a supported VDM. The plugin currently supports "Dexpot" and "VirtuaWin".

VDMeasureTypeSpecifies 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.

VDMActive - Returns 1 if the VDM is currently running, and 0 otherwise. CurrentDesktop - Returns the number of the currently active desktop. SwitchDesktop - Triggers a switch to another desktop when sent that desktop's number as a

bang. DesktopCount - Returns the total number of virtual desktops.

VDDesktopCountUsed 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=PluginPlugin=VirtualDesktops.dllVDManager=VirtuaWinVDMeasureType=CurrentDesktop

[DesktopCountX]Measure=PluginPlugin=VirtualDesktops.dllVDManager=VirtuaWinVDMeasureType=DesktopCountVDDesktopCount=X

Page 74: rainmeter manual

[SwitchDesktop]Measure=PluginPlugin=VirtualDesktops.dllVDManager=DexpotVDMeasureType=SwitchDesktop

Using Bangs:!RainmeterPluginBang "SwitchDesktop 2"

Extensions specific to VDManager=DexpotAdditional options for basic measure types:

VDOnActivate VDOnDeactivate VDOnChange

These options can be used to execute Rainmeter bangs when certain events occur. VDOnActivate and VDOnDeactivate are used with VDMeasureType=VDMActive and get triggered when Dexpot starts or quits, respectively. VDOnChange can be used with both VDMeasureType=CurrentDesktop and VDMeasureType=DesktopCount and is triggered when the corresponding value changes. Note that bangs do not default to the current skin. Only those bangs can be used that would also work when given to Rainmeter on the command line (after variable substitution).

Example:[CurrentDesktop]Measure=PluginPlugin=VirtualDesktops.dllVDManager=DexpotVDMeasureType=CurrentDesktopVDOnChange=!RainmeterRefresh #CURRENTCONFIG#

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.

Page 75: rainmeter manual

Other options specific to VDMeasureType=Screenshot: VDDesktopSet to a desktop number to always save a screenshot of that particular desktop.

VDWidth and VDHeightUsed 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.

VDRefreshOnUpdateIf 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=PluginPlugin=VirtualDesktops.dllVDManager=DexpotVDMeasureType=ScreenshotVDDesktop=1VDOutputFile=#CURRENTPATH#Desktop1.bmpVDWidth=320

[DexpotCommand]Measure=PluginPlugin=VirtualDesktops.dllVDManager=DexpotVDMeasureType=Command

Bangs:

!RainmeterPluginBang "DexpotCommand -next"!RainmeterPluginBang "DexpotCommand -prev"!RainmeterPluginBang "DexpotCommand -V"!RainmeterPluginBang "DexpotCommand -d"

 

WebParser PluginPlugin=Plugins\WebParser.dll

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

Page 76: rainmeter manual

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.

UrlUrl 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]

Note: WebParser can also be used to read and parse local files on your computer by using Url=file://C:\path\file.ext.

RegExpThe regular expression used in parsing. The plugin uses Perl Compatible Regular Expressions, so check the Perl docs for syntax and more info.

FinishActionAction that is executed when the page has been downloaded and the parsing is done.

Note: There is a known issue with WebParser / FinishAction not being able to determine the name of the config it is called from. This means that all bangs used in FinishAction need to have the name of the config or #CURRENTCONFIG# at the end of the statement.

StringIndexDefines 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.

StringIndex2The 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.

UpdateRateThe rate how often the webpage is downloaded. This is relative to the config's main update rate. It is advisable to limit the rate so that you're not flooding the server with constant requests. The web server admins will not like it and you probably get banned from the server altogether if you try to poll the server too often. So, if the main update rate is 1000 (i.e. one second, which is the default) set this e.g. to 60 to read the webpage once per minute.

Page 77: rainmeter manual

DecodeCharacterReferenceAutomatically decodes HTML Character References. This will eliminate the need to use a Substitute= statement to translate character references like &quot;, &amp;, &lt;, &gt; to the actual character.

0 - Does nothing (default) 1 - Decodes both numeric character references and character entity references 2 - Decodes only numeric character references 3 - Decodes only character entity references

DebugSet this to 1 and the log file will contain some useful debug information. 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.

Debug2FileIf 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.

Usage:[WebParserMeasure]Debug2File="[path\]Filename.ext"Debug=2

Example:[WebParserMeasure]Debug2File="Debug2File.txt";(saves to current skin folder)Debug=2

[WebParserMeasure]Debug2File="#SKINSPATH#DebugFiles\Debug2File.txt";(saves to\DebugFiles under the \Skins folder)Debug=2

Notes:

Must include at least a filename. Path alone will not work. Must be a directory which already exists. Does not create the target directory. If the Debug2File= parameter is not used, WebParser will save webparserdbump.txt in the root

of C: as it always has.

DownloadIf 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.

Page 78: rainmeter manual

DownloadFileWhen 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:

This file is not a temporary file so it is not deleted even if it close a skin. As for specification of file path, it is not possible to specify by the absolute path and also

specification to the outside of DownloadFile folder is not possible.

ErrorStringString that is returned in case there is a parse error.

ForceReloadWebParser reads the resource only if it has been modified. This can be overridden with ForceReload=1.

ProxyName 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.

CodePageDefines 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 Microsoft Reference.

Example:

Display the title and first item from Slashdot's RSS feed.

[MeasureRSSTitle]Measure=PluginPlugin=Plugins\WebParser.dllUpdateRate=3600Url=http://slashdot.org/slashdot.rdfRegExp="(?siU)<title>(.+)</title>(.+)<item(.+)<title>(.+)</title>"StringIndex=1FinishAction=!RainmeterRedraw

[MeasureRSS]Measure=PluginPlugin=Plugins\WebParser.dllUrl=[MeasureRSSTitle]

Page 79: rainmeter manual

StringIndex=4Substitute="&amp;":"&"

Download the current weather map from Finnish Meteorological Institute.

[MeasureDL]Measure=PluginPlugin=Plugins\WebParser.dllUpdateRate=1800Url=http://www.fmi.fi/saa/sadejapi_5.html?selected=7RegExp="(?siU)ennuste" SRC=\"(.*)\"></TD>"FinishAction=!RainmeterRedrawStringIndex=1Download=1

[MeterImage]Meter=IMAGEMeasureName=MeasureDLX=0Y=0W=400H=300

 

WiFiStatus PluginPlugin=Plugins/WifiStatus.dll

The WifiStatus plugin can be used to display various attributes of visible wireless networks in your area.

This plugin has been tested successfully on all versions of Windows (32 and 64 bit). Note: Windows XP SP1/SP2 users need to install this hotfix: KB918977

The plugin uses the following values as input:

WifiInfoType (required)This defines what is measured. The valid values are:

SSID - The broadcast name for your current connection. If you are still trying to connect, you may see a 'connecting...' or 'authorizing...' next to the name, but only if your update speed is around 2 seconds

QUALITY - A percentage value of the maximum dBm signal strength for your current connection

Page 80: rainmeter manual

ENCRYPTION - The cipher algorithm being used for your current connection. Possible values are: NONE, WEP40, TKIP, AES, WEP104, WPA_GROUP, WEP, ??? (for unknown)

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, ???

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.

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:0 - SSID1 - SSID @band2 - SSID (Encryption:Authentication)3 - SSID @band (Encryption:Authentication)Tip: You can use Substitute to modify the characters used as delimiters here

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.

Example:

[MeasureSSID]Measure=PluginPlugin=Plugins\WifiStatus.dllWifiInfoType=SSIDWifiIntfID=0

[MeasureNetworks]Measure=PluginPlugin=Plugins\WifiStatus.dllWifiInfoType=LISTWifiIntfID=0WifiListStyle=3

A more detailed sample and support is available at the WifiStatus support thread.

Page 81: rainmeter manual

 

Win7Audio PluginPlugin=Plugins\Win7AudioPlugin.dll

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=PluginPlugin=Win7AudioPlugin.dll

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 !RainmeterPluginBang statements sent to the plugin. See the sample .ini below for examples.

!RainmeterPluginBang "MeasureWin7Audio ToggleNext"Jump to the first if last device is active.

!RainmeterPluginBang "MeasureWin7Audio TogglePrevious"Jumps to the last if first device is active.

!RainmeterPluginBang "MeasureWin7Audio SetOutputIndex i"Set a specific device with index i. This depends on your system setup and number of output devices.

!RainmeterPluginBang "MeasureWin7Audio ToggleMute"Toggle the mute state.

Page 82: rainmeter manual

!RainmeterPluginBang "MeasureWin7Audio SetVolume x"Set volume to x (between 0 and 100). This disables mute.

!RainmeterPluginBang "MeasureWin7Audio ChangeVolume x"Change the volume by x percent. Use negative numbers to lower volume. This disables mute.

Example Skin

 

WindowMessage PluginPlugin=Plugins/WindowMessagePlugin.dll

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.

WindowNameThe name of the window. This is used to identify the window. It's not necessary to set this if the WindowClass is set.

WindowClassThe class of the window. This is used to identify the window. It's not necessary to set this if the WindowName is set.

WindowMessageThis 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()-function. If the WindowMessage is not given the measure returns the window's current title.

It's also possible to send messages to applications with !RainmeterPluginBang. The arguments are similar to WindowMessage. That is, !RainmeterPluginBang "MeasureName SendMessage Msg wParam lParam".

Example Skin

Page 83: rainmeter manual

 

BangsRainmeter can also be controlled with !Bang-commands. A bang is a special command that can be executed to change something in the application. You can use the bangs in the various actions that Rainmeter has, or run from them from the command line by giving it as an argument for Rainmeter.exe.

General Rules

A single !Bang may be called using:LeftMouseUpAction=!RainmeterRefresh

Multiple !Bangs must be in square brackets preceded by !Execute and a space:LeftMouseUpAction=!Execute [!RainmeterResetStats][!RainmeterRefresh]

Executing an external application is done by using the !Execute bang and a space, followed by the command and any parameters inside of square brackets:LeftMouseUpAction=!Execute ["C:\Windows\Notepad.exe" "FileToOpen.txt"]

Bangs

Note that the [] means that you must supply the argument for the bang (do not include the []-chars). The () means that the argument is not necessary.

Most !bangs take also the config as an optional parameter. If the config is defined the bang only applies to that particular config. If it's not given, the !bang is sent to the current (in a skin) or first (from the command line) config. Use * as the config's name to send it to all configs.

!RainmeterShow (Config)Displays the Rainmeter-window.

Page 84: rainmeter manual

!RainmeterHide (Config)Hides the Rainmeter-window.

!RainmeterToggle (Config)Toggles the Rainmeter-window.

!RainmeterRefresh (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.

!RainmeterUpdate (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.

!RainmeterUpdateMeter [Meter] (Config) / !RainmeterUpdateMeterGroup [GroupName] (Config)Immediately updates an individual meter or group of meters. This does override UpdateDivider if set.

!RainmeterUpdateMeasure [Measure] (Config) / !RainmeterUpdateMeasureGroup [GroupName] (Config)Immediately updates an individual measure or group of measures. This does override UpdateDivider/UpdateRate if set.

!RainmeterRedraw (Config)Forces the redraw of the window. This also updates all the meters.

!RainmeterHideMeter [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.

Page 85: rainmeter manual

!RainmeterShowMeter [Meter] (Config)Shows the given meter if it was hidden.

!RainmeterToggleMeter [Meter] (Config)Toggles the visibility of the given meter.

!RainmeterMoveMeter [X] [Y] [Meter] (Config)Moves the given meter (i.e. not the window, but the meter) to a new location.

!RainmeterDisableMeasure [Measure] (Config)Disables the given measure.

!RainmeterEnableMeasure [Measure] (Config)Enables the given measure.

!RainmeterToggleMeasure [Measure] (Config)Toggles the status of the given measure (i.e. disabled/enabled).

!RainmeterActivateConfig [Config] [Ini-file]Activates a new configuration ini-file. The ini-file is just the name of the file; do not include the path.

!RainmeterDeactivateConfig [Config]Deactivates the configuration ini-file.

!RainmeterToggleConfig [Config] [Ini-file]Toggles the configuration ini-file.

Page 86: rainmeter manual

!RainmeterMove [X] [Y] (Config)Moves the window to new location.

!RainmeterZPos [POS] (Config)Changes the z-position of the window. -2 = OnDesktop, -1 = OnBottom, 0 = Normal, 1 = OnTop, 2 = Topmost.

!RainmeterAboutOpens the About dialog.

!RainmeterLsBoxHook [Config]Special bang for lsBox. Note that you MUST give the name of the config as argument.

!RainmeterResetStatsResets the statistics.

!RainmeterPluginBang "[MeasureName] (Arguments)"Sends a bang to a plugin. The parameter must be inside quotes. The MeasureName defines the plugin which handles the plugin. The Arguments depend on the plugin. If no argument is provided, and empty string ("") is sent to the plugin.

!ExecuteSpecial !bang that can be used to combine several !bangs together. The !bangs are separated with '[' and ']'-chars. You can also launch applications with this (!Execute ["C:\Windows\Notepad.exe"])

!RainmeterQuitQuits Rainmeter.

Page 87: rainmeter manual

!RainmeterSetVariable [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: !RainmeterSetVariable VarName "(#SCREENAREAWIDTH# - 10)"

!RainmeterWriteKeyValue [Section] [Key] [Value] ("FileSpec")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], "Key" and "Value" are the Key=Value pairs such as FontSize=15. "FileSpec" is optional. 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.

!RainmeterRefreshAppDoes 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. Is not the same as !RainmeterRefresh [config | *] as it can be used to make Rainmeter "see" a new folder added to \Skins by the user or a process.

!RainmeterSetTransparency [AlphaAmount] (Config)Sets the transparency of a skin from 0 (invisible) to 255 (opaque).

!RainmeterShowFade (Config), !RainmeterHideFade (Config), !RainmeterToggleFade (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.

!RainmeterShowMeterGroup [Group] (Config)Shows all of the meters in the specified group.

!RainmeterHideMeterGroup [Group] (Config)Hides all of the meters in the specified group.

Page 88: rainmeter manual

!RainmeterToggleMeterGroup [Group] (Config)Toggles the visibility of all of the meters in the specified group.

!RainmeterEnableMeasureGroup [Group] (Config)Enables all of the measures in the specified group.

!RainmeterDisableMeasureGroup [Group] (Config)Disables all of the measures in the specified group.

!RainmeterToggleMeasureGroup [Group] (Config)Toggles the status of all of the measures in the specified group (i.e. enabled/disabled).

!RainmeterRefreshGroup [Group]Refresh the configs in the specified group.

!RainmeterRedrawGroup [Group]Redraw the configs in the specified group.

!RainmeterHideGroup [Group]Hide the configs in the specified group.

!RainmeterShowGroup [Group]Show the configs in the specified group.

!RainmeterToggleGroup [Group]Toggle the configs in the specified group between show and hide.

Page 89: rainmeter manual

!RainmeterHideFadeGroup [Group]Hide the configs in the specified group using a fade effect.

!RainmeterShowFadeGroup [Group]Show the configs in the specified group using a fade effect.

!RainmeterToggleFadeGroup [Group]Toggle the configs in the specified group between show and hide using a fade effect.

!RainmeterDeactivateConfigGroup [Group]Deactivate the configs in the specified group.

!RainmeterZPosGroup [POS] [Group]Change the z-position of the configs in the specified group.

!RainmeterSetTransparencyGroup [AlphaAmount] [Group]Change the transparency of the configs in the specified group.

!RainmeterSetVariableGroup [Variable] [Value] [Group]Change the value of a variable in the configs of the specified group.

!RainmeterSkinMenu (Config)Open the skin menu at the cursor's current position.

!RainmeterTrayMenuOpen the tray menu at the cursor's current position.

Page 90: rainmeter manual

!RainmeterDraggable [NewSetting] (Config)Sets Draggable setting for current / named / all configs. NewSetting = -1 (toggle) | 0 (off) | 1 (on)

!RainmeterDraggableGroup [NewSetting] [Group]Sets Draggable setting for specified group. NewSetting = -1 (toggle) | 0 (off) | 1 (on)

!RainmeterKeepOnScreen [NewSetting] (Config)Sets KeepOnScreen setting for current / named / all configs. NewSetting = -1 (toggle) | 0 (off) | 1 (on)

!RainmeterKeepOnScreenGroup [NewSetting] [Group]Sets KeepOnScreen setting for specified group. NewSetting = -1 (toggle) | 0 (off) | 1 (on)

!RainmeterClickThrough [NewSetting] (Config)Sets ClickThrough setting for current / named / all configs. NewSetting = -1 (toggle) | 0 (off) | 1 (on)

!RainmeterClickThroughGroup [NewSetting] [Group]Sets ClickThrough setting for specified group. NewSetting = -1 (toggle) | 0 (off) | 1 (on)

!RainmeterSnapEdges [NewSetting] (Config)Sets SnapEdges setting for current / named / all configs. NewSetting = -1 (toggle) | 0 (off) | 1 (on)

!RainmeterSnapEdgesGroup [NewSetting] [Group]Sets SnapEdges setting for specified group. NewSetting = -1 (toggle) | 0 (off) | 1 (on)

 

Sound

Page 91: rainmeter manual

Rainmeter supports audio commands that can be used like and other commands or !bangs.

PLAY [soundfile] - Plays the given soundfile once.

PLAYLOOP [soundfile] - Plays the given soundfile as loop.

PLAYSTOP - Stops the currently playing sound.

Example formatting:

ButtonCommand=PLAY #SKINSPATH#Beeper\Sounds\beep.wavButtonCommand=PLAY "#SKINSPATH#Beeper\Sounds\beep.wav"ButtonCommand=!execute [PLAY #SKINSPATH#Beeper\Sounds\beep.wav]ButtonCommand=!execute [PLAY "#SKINSPATH#Beeper\Sounds\beep.wav"]

Example:

[BeeperButton]Meter=ButtonButtonImage=button.pngButtonCommand=PLAY #SKINSPATH#Beeper\Sounds\beep.wav

This would create a button that plays "beep.wav" when it is clicked.

 

WindowMessages

Using Window Messages to interact with Rainmeter from a 3rd-party application

It is possible to access key data about a Rainmeter instance through basic Windows Messaging API calls. The majority of the queries return data via a COPYDATASTRUCT, but some operate slightly differently depending on the content that needs to be communicated. Note: These instructions assume you are using C++ in your program. The method is applicable in other languages but the format will be different.

Querying Rainmeter for string values

There are a number of strings associated with Rainmeter that can be requested. These are:

RAINMETER_QUERY_ID_SKINS_PATHQueryID: 4101Returns the skins path as defined in Rainmeter.ini

Page 92: rainmeter manual

RAINMETER_QUERY_ID_SETTINGS_PATHQueryID: 4102Returns the path to the Rainmeter.ini file

RAINMETER_QUERY_ID_PLUGINS_PATHQueryID: 4103Returns the path to the Rainmeter plugins directory

RAINMETER_QUERY_ID_PROGRAM_PATHQueryID: 4104Returns the path to the Rainmeter program directory

RAINMETER_QUERY_ID_LOG_PATHQueryID: 4105Returns the path to the Rainmeter.log file

RAINMETER_QUERY_ID_CONFIG_EDITORQueryID: 4106Returns the path specified as the ConfigEditor= setting in Rainmeter.ini

RAINMETER_QUERY_ID_COMMAND_LINEQueryID: 4107Returns the command line parameters used to launch Rainmeter

RAINMETER_QUERY_ID_STATS_DATEQueryID: 4108Returns the date on which the Net measures stats were started

RAINMETER_QUERY_ID_TRAY_EX_LQueryID: 4109Returns the TrayExecuteL (Left Mouse) string from Rainmeter.ini

RAINMETER_QUERY_ID_TRAY_EX_RQueryID: 4110Returns the TrayExecuteR (Right Mouse) string from Rainmeter.ini

RAINMETER_QUERY_ID_TRAY_EX_MQueryID: 4111Returns the TrayExecuteM (Middle Mouse) string from Rainmeter.ini

RAINMETER_QUERY_ID_TRAY_EX_DLQueryID: 4112Returns the TrayExecuteDL (Double Click Left Mouse) string from Rainmeter.ini

RAINMETER_QUERY_ID_TRAY_EX_DRQueryID: 4113Returns the TrayExecuteDR (Double Click Right Mouse) string from Rainmeter.ini

RAINMETER_QUERY_ID_TRAY_EX_DMQueryID: 4114Returns the TrayExecuteDM (Double Click Middle Mouse) string from Rainmeter.ini

Note: All these options are defined within RainmeterQuery.h available at http://rainmeter.googlecode.com/svn/trunk/Library/RainmeterQuery.h This file also includes code examples. If you do not wish to include this file or its definitions in your project then you can use the numbers in brackets as the msg parameter.

Using these functions in C++

Page 93: rainmeter manual

void QueryRainmeterSkinsPath(HWND hWndSelf){

HWND hWndRainmeter = FindWindow(RAINMETER_QUERY_CLASS_NAME, RAINMETER_QUERY_WINDOW_NAME);

if (hWndRainmeter){

PostMessage(hWndRainmeter, WM_QUERY_RAINMETER,RAINMETER_QUERY_ID_SKINS_PATH, (LPARAM)hWndSelf);

}}

The first parameter should be the HWND of Rainmeter, the second should be WM_QUERY_RAINMETER, defined as WM_APP + 1000. The third is the Query ID as listed above. Finally, the fourth parameter needs to be the HWND of the calling app. This allows Rainmeter to send the requested information back.

RAINMETER_QUERY_CLASS_NAME is defined as RainmeterTrayClass and RAINMETER_QUERY_WINDOW_NAME is NULL.

Rainmeter will then send a WM_COPYDATA message to the window specified in hWndSelf. The lParam of the message will contain a COPYDATASTRUCT with the requested string, the Query ID and the size of the requested string. To access the data you will need to add something like this to your WndProc:

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){

switch (message){case WM_COPYDATA:

{COPYDATASTRUCT* cds = (COPYDATASTRUCT*)lParam;

// Copy ID and string to localDWORD id = cds->dwData;// contains QUERY ID (RAINMETER_QUERY_ID_XXXXX)std::wstring string = (WCHAR*)cds->lpData;// contains requested string in wide char

//...

}break;

Page 94: rainmeter manual

default:return DefWindowProc(hWnd, message, wParam, lParam);

}return 0;

}

Querying Rainmeter for numeric values

RAINMETER_QUERY_ID_VERSION_CHECKQueryID: 4115Returns 0 if version checking is disabled, 1 if it is enabled, and 2 if a new version is available

RAINMETER_QUERY_ID_IS_DEBUGGINGQueryID: 4116Returns 1 if Debug=1 is set in Rainmeter.ini

RAINMETER_QUERY_ID_IS_LITESTEPQueryID: 4117Returns 1 if Rainmeter is running as a Litestep plugin

To get this information you should send a message in the same way as the strings above. Rainmeter will then send a message to your window with the requested data stored directly in the lParam. The msg will contain WM_QUERY_RAINMETER_RETURN, defined as WM_APP + 1001.

Querying Rainmeter for the Window Handle of an active skin

To do this, send a COPYDATASTRUCT to the Rainmeter window in this form:

COPYDATASTRUCT cds;LPWSTR SkinName = L"Gnometer\\Clock";

cds.dwData = 5101; // RAINMETER_QUERY_ID_SKIN_WINDOWHANDLEcds.lpData = SkinName;cds.cbData = (wcslen(SkinName) + 1) * 2;

HWND hWndMeter = (HWND) SendMessage(hWndRainmeter, WM_COPYDATA, (WPARAM) hWndYourWindow, (LPARAM) &cds);

This will assign hWndMeter with the Handle of the requested skin if it is loaded, or NULL otherwise.

Page 95: rainmeter manual

The SkinName element is actually the ConfigName as shown in Rainmeter.ini, and is Case-Sensitive.

 

Creating .rmskin packagesThe 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 components

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).

Fonts and Plugins are also supported. Read more about including them later on in this guide.

For example, to include the "MySkins" suite of skins, simply copy it into Template\Skins.

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 and Template\Plugins\64bit folders and copy the plugin(s) into the appropriate folder.

Prior to Rainmeter 1.4 r596, plugins in Template\Plugins were copied into both 32bit and 64bit systems. As a result, 32bit plugins may have been installed to 64bit Rainmeter and vice versa. This causes issues and this behaviour will be eventually removed.

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

Page 96: rainmeter manual

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.

Changing settings

After you have copied all the necessary files into the correct folders, open any text editor (e.g. notepad) and drag & drop the Template\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.

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 ExtChanger from from here. It will allow you change extensions from .zip to .rmskin and vice versa.

Rainstaller.cfg Basic Options

AdminRightsSet AdminRights=1 if the package contains addons, fonts, or plugins.

MinRainmeterVerSets 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.393The revision numbers are available from from Google Code.

LaunchType and LaunchCommandThese two values are used to either load config(s) or a specific theme after installation.

To open an installed theme, set the following (replacing NameOfTheme with the the theme name):

LaunchType=ThemeLaunchCommand=NameOfTheme

Page 97: rainmeter manual

To open load specific config(s) after install, set something like:

LaunchType=LoadLaunchCommand=MySuite\Clock\Clock.ini

The path is relative to the Rainmeter\Skins folder. To open multiple configs, seperate each config with a vertical bar (i.e. LaunchCommand=file1.ini|file2.ini|file3.ini).

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.

CompatibilityWithBitUse 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.

MergeUse 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).

KeepVarUse 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).

Page 98: rainmeter manual

RainmeterFontsSet 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.

 

ContactSupport for Rainmeter is provided at: http://www.rainmeter.net.

The best way to get help is to create a thread on the Rainmeter Forums.

Be sure when creating a help thread to indicate:

The exact version of Rainmeter you are running Your operating system version (XP/Vista/Win7) and architecture (32bit/64bit) The nature of the issue, with as much detail as possible Any other relevant information (eg: if a skin is causing problems, the name and possibly the .ini

file of that skin)

It might also be helpful if you include the log-file that Rainmeter creates when creating bug-reports. You can activate the log-file by right clicking the Rainmeter System Tray icon and selecting "Show Log File". Rainmeter will offer to create the log file if it does not exist.

Rainy, the author of Rainmeter can be contacted at: Rainy

 

License GNU GENERAL PUBLIC LICENSE Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Page 99: rainmeter manual

Preamble

The licenses for most software are designed to take away yourfreedom to share and change it. By contrast, the GNU General PublicLicense is intended to guarantee your freedom to share and change freesoftware--to make sure the software is free for all its users. ThisGeneral Public License applies to most of the Free SoftwareFoundation's software and to any other program whose authors commit tousing it. (Some other Free Software Foundation software is covered bythe GNU Library General Public License instead.) You can apply it toyour programs, too.

When we speak of free software, we are referring to freedom, notprice. Our General Public Licenses are designed to make sure that youhave the freedom to distribute copies of free software (and charge forthis service if you wish), that you receive source code or can get itif you want it, that you can change the software or use pieces of itin new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbidanyone to deny you these rights or to ask you to surrender the rights.These restrictions translate to certain responsibilities for you if youdistribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whethergratis or for a fee, you must give the recipients all the rights thatyou have. You must make sure that they, too, receive or can get thesource code. And you must show them these terms so they know theirrights.

We protect your rights with two steps: (1) copyright the software, and(2) offer you this license which gives you legal permission to copy,distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certainthat everyone understands that there is no warranty for this freesoftware. If the software is modified by someone else and passed on, wewant its recipients to know that what they have is not the original, sothat any problems introduced by others will not reflect on the originalauthors' reputations.

Finally, any free program is threatened constantly by softwarepatents. We wish to avoid the danger that redistributors of a freeprogram will individually obtain patent licenses, in effect making theprogram proprietary. To prevent this, we have made it clear that anypatent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution andmodification follow.

GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which containsa notice placed by the copyright holder saying it may be distributedunder the terms of this General Public License. The "Program", below,

Page 100: rainmeter manual

refers to any such program or work, and a "work based on the Program"means either the Program or any derivative work under copyright law:that is to say, a work containing the Program or a portion of it,either verbatim or with modifications and/or translated into anotherlanguage. (Hereinafter, translation is included without limitation inthe term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are notcovered by this License; they are outside its scope. The act ofrunning the Program is not restricted, and the output from the Programis covered only if its contents constitute a work based on theProgram (independent of having been made by running the Program).Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program'ssource code as you receive it, in any medium, provided that youconspicuously and appropriately publish on each copy an appropriatecopyright notice and disclaimer of warranty; keep intact all thenotices that refer to this License and to the absence of any warranty;and give any other recipients of the Program a copy of this Licensealong with the Program.

You may charge a fee for the physical act of transferring a copy, andyou may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portionof it, thus forming a work based on the Program, and copy anddistribute such modifications or work under the terms of Section 1above, provided that you also meet all of these conditions:

a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.

b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole. Ifidentifiable sections of that work are not derived from the Program,and can be reasonably considered independent and separate works inthemselves, then this License, and its terms, do not apply to thosesections when you distribute them as separate works. But when youdistribute the same sections as part of a whole which is a work basedon the Program, the distribution of the whole must be on the terms ofthis License, whose permissions for other licensees extend to the

Page 101: rainmeter manual

entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contestyour rights to work written entirely by you; rather, the intent is toexercise the right to control the distribution of derivative orcollective works based on the Program.

In addition, mere aggregation of another work not based on the Programwith the Program (or with a work based on the Program) on a volume ofa storage or distribution medium does not bring the other work underthe scope of this License.

3. You may copy and distribute the Program (or a work based on it,under Section 2) in object code or executable form under the terms ofSections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work formaking modifications to it. For an executable work, complete sourcecode means all the source code for all modules it contains, plus anyassociated interface definition files, plus the scripts used tocontrol compilation and installation of the executable. However, as aspecial exception, the source code distributed need not includeanything that is normally distributed (in either source or binaryform) with the major components (compiler, kernel, and so on) of theoperating system on which the executable runs, unless that componentitself accompanies the executable.

If distribution of executable or object code is made by offeringaccess to copy from a designated place, then offering equivalentaccess to copy the source code from the same place counts asdistribution of the source code, even though third parties are notcompelled to copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Programexcept as expressly provided under this License. Any attemptotherwise to copy, modify, sublicense or distribute the Program isvoid, and will automatically terminate your rights under this License.However, parties who have received copies, or rights, from you underthis License will not have their licenses terminated so long as suchparties remain in full compliance.

Page 102: rainmeter manual

5. You are not required to accept this License, since you have notsigned it. However, nothing else grants you permission to modify ordistribute the Program or its derivative works. These actions areprohibited by law if you do not accept this License. Therefore, bymodifying or distributing the Program (or any work based on theProgram), you indicate your acceptance of this License to do so, andall its terms and conditions for copying, distributing or modifyingthe Program or works based on it.

6. Each time you redistribute the Program (or any work based on theProgram), the recipient automatically receives a license from theoriginal licensor to copy, distribute or modify the Program subject tothese terms and conditions. You may not impose any furtherrestrictions on the recipients' exercise of the rights granted herein.You are not responsible for enforcing compliance by third parties tothis License.

7. If, as a consequence of a court judgment or allegation of patentinfringement or for any other reason (not limited to patent issues),conditions are imposed on you (whether by court order, agreement orotherwise) that contradict the conditions of this License, they do notexcuse you from the conditions of this License. If you cannotdistribute so as to satisfy simultaneously your obligations under thisLicense and any other pertinent obligations, then as a consequence youmay not distribute the Program at all. For example, if a patentlicense would not permit royalty-free redistribution of the Program byall those who receive copies directly or indirectly through you, thenthe only way you could satisfy both it and this License would be torefrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable underany particular circumstance, the balance of the section is intended toapply and the section as a whole is intended to apply in othercircumstances.

It is not the purpose of this section to induce you to infringe anypatents or other property right claims or to contest validity of anysuch claims; this section has the sole purpose of protecting theintegrity of the free software distribution system, which isimplemented by public license practices. Many people have madegenerous contributions to the wide range of software distributedthrough that system in reliance on consistent application of thatsystem; it is up to the author/donor to decide if he or she is willingto distribute software through any other system and a licensee cannotimpose that choice.

This section is intended to make thoroughly clear what is believed tobe a consequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted incertain countries either by patents or by copyrighted interfaces, theoriginal copyright holder who places the Program under this Licensemay add an explicit geographical distribution limitation excludingthose countries, so that distribution is permitted only in or amongcountries not thus excluded. In such case, this License incorporatesthe limitation as if written in the body of this License.

Page 103: rainmeter manual

9. The Free Software Foundation may publish revised and/or new versionsof the General Public License from time to time. Such new versions willbe similar in spirit to the present version, but may differ in detail toaddress new problems or concerns.

Each version is given a distinguishing version number. If the Programspecifies a version number of this License which applies to it and "anylater version", you have the option of following the terms and conditionseither of that version or of any later version published by the FreeSoftware Foundation. If the Program does not specify a version number ofthis License, you may choose any version ever published by the Free SoftwareFoundation.

10. If you wish to incorporate parts of the Program into other freeprograms whose distribution conditions are different, write to the authorto ask for permission. For software which is copyrighted by the FreeSoftware Foundation, write to the Free Software Foundation; we sometimesmake exceptions for this. Our decision will be guided by the two goalsof preserving the free status of all derivatives of our free software andof promoting the sharing and reuse of software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTYFOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHENOTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIESPROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSEDOR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OFMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK ASTO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THEPROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITINGWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/ORREDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISINGOUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITEDTO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BYYOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHERPROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THEPOSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

 

History23 JAN 2011 (Version 1.4)

Rainmeter installer changed to a single .exe which installs both 32bit and 64bit Rainmeter

Page 104: rainmeter manual

Fixed an issue with "BevelType" in meters not displaying correctly. Added AutoScale=2 and "k" postfix to Meter=STRING. Removed Enigma and Gnometer skins from the build. Now available as a download after the

install. Added new illustro default skin suite. Updated Rainmeter to support UNICODE characters better. MeterStyle now supports multiple styles in a single meter. (MeterStyle=Style1 | Style2 | Style3)

Added support for image effects on BAR and ROTATOR meters.

ToolTipHidden can now be added to the [Rainmeter] section of a skin to turn off / on ToolTips for an entire skin.

Update to illustro from 0.9.0 to 0.9.1 Addedd "Version" information to Windows "Properties / Details" dialog for plugin .dll files. RainStaller: Added the ability to distribute both 32bit and 64bit 3rd-party plugins in a

single .rmskin file. RainThemes: Addressed an issue where on some systems Rainmeter was not exiting properly,

generating an error. Fixed an issue with an inconstent "space" between the value and the "k/m/g/t" postfix on

AutoScaled values. Fixed an issue where UpdateDivider was being ignored on meters when DynamicVariables=1

was set. The Rainmeter installer can now install in "portable" mode, no more unzipping required. Changed Meters so that unlimited MeasureName(x) values and %xx values can be used. Added new FolderInfo plugin. Removed old MBM5 plugin from the build. Removed WirelessInfo plugin from the build.

This was outdated and replaced by WiFiStatus. Fixed an issue where Rainmeter would stop loading skins if there was a NULL [] section. Added DisableRDP=1/0 to disable redraw during RDP session.

This should be added to [Rainmeter] in Rainmeter.ini (thanks to FUR10N for the code) Added DisableDragging=1/0 to toggle "Dragging" for all skins at once.

This is set in [Rainmeter] in Rainmeter.ini, and can be changed from the context menu under "Configs".

"Groups" can now be defined under an individual skin's [Rainmeter] section as well as in Rainmeter.ini.

Fixed a minor bug with !RainmeterZPos Fixed an issue where AlwaysOnTop=-1/-2 was failing on startup. "About" dialog now opens with the log selected by default. Added the image manipulation functions (Greyscale / ImageTint / ImageAlpha / ColorMatrixN /

ImageFlip to BITMAP and BUTTON meters. Added the image manipulation functions (PrimaryGreyscale / PrimaryImageTint /

PrimaryImageAlpha / PrimaryColorMatrixN / PrimaryImageFlip / PrimaryImageRotate / Secondaryall above / Bothall above to HISTOGRAM meters.

Page 105: rainmeter manual

Change to InputText Plugin to add FocusDismiss= (0/1 - Default is 0).This switch changes the behavior of the input box so it is dismissed without firing any actions if the input field loses focus (if the user clicks outside the input box)

Fixed: FolderInfo.dll did not support relative paths (thanks to elestel) Fixed: TrayMeasure didn't work with Measure=PLUGIN. Fixed: Bug created by an earlier revision which impacted using "X/Y=xxR" in some cases.

Issue was identified in Forum Thread Fixed: Bug in Rainstaller that prevented an author from distributing both 32bit and 64bit versions

of a PLUGIN. Added ScaleMargins to Image meter. Changed !RainmeterPluginBang to allow specifying only MeasureName. iTunesPlugin now accepts commands as a !RainmeterPluginBang. CSPluginTemplate has been added to the Rainmeter source code Added #CURRENTSECTION# variable. Fixed a bug in the iTunes plugin that could crash Rainmeter Added several new !Bangs to Rainmeter.

!RainmeterUpdate / !RainmeterUpdateMeter / !RainmeterUpdateMeterGroup / !RainmeterUpdateMeasure / !RainmeterUpdateMeasureGroup

Changed Update= and UpdateDivider to enable a setting of -1, disabling updates after the initial load/refresh.

3 OCT 2010 (Version 1.3)

Fixed a issue that MouseOver/LeaveAction could loop infinitely when used with !RainmeterMoveMeter.

Minor change to RainThemes to make closing Rainmeter more efficient. Changes to many Rainmeter error/prompt dialogs to make them more descriptive. Fixed a issue that Value column isn't updated if value is empty string in the About dialog. Fixed a issue that Download=1 doesn't work correctly in some cases in WebParser. Added [Measure]-name to log messages in WebParser. Rainmeter error messages now display meter/measure in question. Change to detect skins with no meters OR measures to reduce issues with people loading

Rainlendar skins and such. Fixed an issue where ToolTips were remaining active on hidden meters. Added the ability to use formulas to define ToolTipWidth. Rainstaller: Added display of fonts to be installed in a .rmskin Fix for long standing issue where numbers were being truncated to zero decimal places in some

instances, causing possible incorrect calculated values when the measure's number was used dynamically later.

Fix for a TooTip initialization issue which could cause intermittent Windows Taskbar error message loop when Rainmeter was started.

NumOfDecimals is now enabled when Percentual=1 is used in a STRING meter. Fixed a multithreading issue that could cause a crash of Rainmeter in the internal function

LSLog(). Added new character entity &apos; to automatic decode for WebParser. Added code to address Microsoft security issue: Details.

Page 106: rainmeter manual

Changed ToolTip function to allow using %1, %2 etc. as appropriate for various meter types:Line, String: %1, %2, %3, ...Histogram: %1, %2Others: %1

Some minor fixes to the About diaglog.

New statement / option for WebParser to automatically decode html Character References.DecodeCharacterReference=0 | 1 | 2 | 3 (default 0) 0 : Does nothing. (default) 1 : Decodes both numeric character references and character entity references. 2 : Decodes only numeric character references. 3 : Decodes only character entity references.

Improved the PLAY command so it works more like a !bang does:ButtonCommand=PLAY #SKINSPATH#Beeper\Sounds\beep.wavButtonCommand=PLAY "#SKINSPATH#Beeper\Sounds\beep.wav"ButtonCommand=!execute [PLAY #SKINSPATH#Beeper\Sounds\beep.wav]ButtonCommand=!execute [PLAY "#SKINSPATH#Beeper\Sounds\beep.wav"]

Fix an issue with the "ClickThrough" skin setting broken in an earlier beta. Major visual / interface changes to the "About" dialog. Should make this a much more valuable

tool for "debugging" skins.

Win7AudioPlugin updated to version 1.6- New bangs Mute/Unmute- Volume shows -1 when muted

Fixed an issue where dynamic variables would be reset to default when Windows "WorkArea" is reset by changing the screen resolution or a screensaver is activated.

Minor fixes to WebParser for a memory leak and routines to interact with Rainmeter "window". Changed to allow substituting 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.

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.

Page 107: rainmeter manual

Updated the pcre (Regular Expression) library from 6.4 to 8.10. The pcre change log is at Change Log

Fixed an issue where certain invalid RegExp statements could crash Rainmeter. Simplified and improved the Rainstaller user interface. Added new !bangs to change "settings" in Rainmeter.ini for current / group / all skins at once.

!RainmeterDraggable/!RainmeterDraggableGroup!RainmeterKeepOnScreen/!RainmeterKeepOnScreenGroup!RainmeterClickThrough/!RainmeterClickThroughGroup!RainmeterSnapEdges/!RainmeterSnapEdgesGroup

!RainmeterSnapEdges [parm1] (Config | *)!RainmeterSnapEdgesGroup [parm1] [GroupName]

Parm1:-1 toggles the setting.0 forces the setting to off.1 forces to setting to on.

WebParser: Fix for issue where StringIndexes from previous call to WebParser would remain even if the item no longer exists. This fixes a long standing problem with uTorrent skins for example, when the last item was removed from uTorrent but remained displayed in the skin until a refresh was done.

Added MeasureName2 as an alternative to SecondaryMeasureName in Meter=Histogram. Changes to CALC measure to remove any and all restrictions on the string case of function

names. Calc measures are now completely case-insensitive, with the exception of the "b/o/x" character when specifying the base of a number, this must be lower case.

Added new PluginMediaKey plugin by poiru. PluginMediaKey. Some minor improvements to MouseOver/MouseLeave actions. Change to Rainstaller to close RainBrowser if it is running when a skin is installed, to eliminate a

problem with open files. Fix by elestel to iTunes plugin: iTunesPlugin did not handle AboutToPromptUserToQuitEvent Added new #ROOTCONFIGPATH# variable. This will contain the path to the highest level

folder under \Skins for the current config. #ROOTCONFIGPATH#Settings\UserVariables.inc can be used to have an @Include work even if you move a skin to another "suite" for instance.

Re-design of the layout of the Rainmeter manual. The manual is now exclusively online. The "Help" context menu item will launch the appropriate (release or beta) version of the manual in your default web browser. The Rainmeter.chm help file is no longer included in the build or installed on your PC.

Added new !RainmeterWriteKeyValue bang. !RainmeterWriteKeyValue "Section" "Key" "Value" ("FileSpec"), where "FileSpec" is an optional parameter. If FileSpec is not present, the change is automatically done in the currently running skin file. If the bang is executed from the command line, FileSpec is required. FileSpec must be either in the \Skins or %APPDATA%\Rainmeter paths. This can be used to permanently change any Key=Value setting in any .ini or .inc file. (Including Rainmeter.ini)

Page 108: rainmeter manual

Changes to MouseLeaveAction to make it more reliable and faster. This should eliminate having to put MouseLeaveAction in the [Rainmeter] section to ensure detection.

Made the "About" dialog a bit larger by default. Other cosmetic changes to this dialog. Fixed WifiStatusPlugin so it no longer closes WLAN handle when skin is closed even if another

skin is still using it Fixed an issue where an invalid Format= code in a Time or Uptime measure would crash

Rainmeter. Invalid formats are now written to the debug log and the measure just gracefully fails.

Change to Rainstaller so that a default Rainmeter plugin will not be overwritten if an author includes it by mistake in a .rmskin file.

Fixed an issue where Rainmeter was detecting an incorrect value for %APPDATA% in a multi-user environment.

Fixed an issue where check marks of context menu items in configs/root/variants menu are cleared if !RainmeterDeactivateConfig/!RainmeterToggleConfig is used.

Minor fix to new "groups" function for configs. Added root folder of a config on the skin context menu Fixed an issue where the context menu did not close when focus was given to another windows

element. Many additions to the supported Windows Messages that Rainmeter will respond to, allowing

3rd-party applications to query Rainmeter for paths, currently loaded configs, etc. These changes are courtesy of JamesAC and Patrick from Dexpot.

Added the Win7AudioPlugin plugin by Reiswaffle. Added the PluginVirtualDesktops plugin from Patrick at Dexpot. This will provide support for

Virtual Desktop Management tools like Dexpot and VirtuaWin. Added new "version checking" functionality, with DisableVersionChecking= setting in

Rainmeter.ini and on "About" dialog. Re-design of the RainBrowser GUI. Major re-design of the Rainmeter and Skins context menus Fix to Calc measure to properly allow use of numbering systems other than decimal using a

prefix of 0b (binary) 0x (hex) 0o (octal) on the numbers. Added "Group=" to meters and measures in skins, and in Rainmeter.ini to support configs. This

allows many !bangs to operate on multiple entities at once without multiple !bang statements. Major improvement to "logging" in Rainmeter, including new context menu support. Addition of support for multiple monitors when using DesktopWorkArea. This change is

courtesy of user Jott. Addtion of "ToolTip" functionality, so meters can have standard Windows tooltips when

hovered over. Improvement to image quality when scaling images

24 JUN 2010 (Version 1.2)

o Major improvements to how Rainmeter works with multiple monitors.o New WebParser settting "DownloadFile=" to allow local storage and naming of downloaded

images.o New !Bang - !RainmeterRefreshApp. Allows full Rainmeter refresh from a skin or command

line.

Page 109: rainmeter manual

o FIXED: Issue where DynamicVariables=1 disabled UpdateDivider.o FIXED: LineColor did not use the values of Dynamic Variables in Meter=Line.o FIXED: Inconsistent numerical value via DynamicVariables ( issue 130 )o FIXED: Problem with WebParser and "local files" with Cyrillic chars in the path. (issue 139)o The coded character set of the logfile is changed to UTF-8. (ccs=UTF-8) msdn.microsoft.como "MS Shell Dlg 2" is now used for the ABOUT dialog box. msdn.microsoft.como FIXED: Invalid error message box when DynamicVariables is 1 and FontSize is 0. (issue 126)o FIXED: Virtual Bytes usage for an x64 process with perfmon plugin does not display value

greater than 4 GB ( issue 113 )o FIXED: A numeric value greater than 32bit can be now displayed when NumOfDecimals is 0 in

Meter=STRING.o FIXED: Compatibility issue in Windows 2000. (AboutDialog, SysInfo)o CHANGED: FontSize=0 (invisible) is now valid in a STRING meter.o CHANGED: The parsing of parameters to use default values for incorrect "typing" (ie:

FontSize=ABC)o FIXED: An issue with skins not positioning correctly on multiple monitors when

KeepOnScreen=1. o Added "Processor=n" parameter to Measure=CPU function so it can be used as well as / instead

of PefMon.dll Plugin to measure multiple-core CPU systems. Processor=1 is the first core, etc. Processor=0 or no parameter is still the average of all cores.

o Changed NetIn and NetOut function to return correct information if Interface=0 is set. This was returning an incorrectly high value by combining the activity of the physical network card with Windows virtual interfaces.

o Added the statement "Debug=1 / 0" in the [Rainmeter] section of Rainmeter.ini. This currently will do some logging of enumerated monitors and network interfaces and may be added to over time.

o FIXED: Corrected an invalid return value from MainWndProc.o Added the parameter "ImageAlpha=" for image meters. This will allow setting the

"transparency" of an image from 0 (invisible) to 255 (fully opaque).o Changed "AntiAlias=1" to use "default" interpolation instead of "Bicubic". This should result in

better antialiasing of images. o RainBrowser: Minor change to a link added by the program to [Metadata]o FIXED: Corrected an issue where a BAR meter did not work correctly with

DynamicVariables=1o Added new image tinting / transforming functions in IMAGE meter. (ImageTint, GreyScale,

ColorMatrix(1-5), ImageFlip, ImageRotate)o FIXED: Improved image antialiasing with ImageRotate functiono Removed ImageAlpha function as it is replaced by ImageTinto FIXED: The ability to have inline comments was broken in r340. Now works again to have

Key=Value  ;commento FIXED: The RANDOM function was only returning a random number on the first run.o Changed the PLAY function to play the .wav file asynchronously so Rainmeter is not "paused"

during play. o Added StringCase function to Meter=String. StringCase=[NONE | UPPER | LOWER |

PROPER]

Page 110: rainmeter manual

o Change !RainmeterSetVariable to accept formulas as a parameter. Formulas must be enclosed in parentheses with the entire parameter enclosed in quotes if there are spaces in the formula: !RainmeterSetVariable VarName "(#SCREENAREAWIDTH# - 50)"

o Changed the code to enable the use of "On Desktop" (AlwaysOnTop=-2) Z-Position for skins under Vista and Win7.

o Added !RainmeterSetTransparency, !RainmeterShowFade, !RainmeterHideFade,!RainmeterToggleFade.

o Added logging of the installed font families to the log file when Debug=1 is set.o FIXED: a problem with incorrect image resizing when AntiAlias=0 was set.o Fixed the crash problem when multiple Rainmeter instances are running and Window's "show

desktop" was used.o RainThemes: Changed code so your original ConfigEditor and SkinPath settings are not

modified when you load a theme.o Modified the handling of "On Desktop". This affects all Windows versions.o Added "LoadOrder=" in Rainmeter.ini on each config, to handle the skins' loading order.o Some changes in how network statistics are saved in Rainmeter.inio Fixed a problem that prevented !RainmeterQuit from executing when no meter window is

running.o Fixed a problem with StyleTemplate which was causing issues with MeterStyle in rare cases.o Added a workaround to avoid the "IniFileMapping" function when reading skins, which was

causing .ini files with Windows reserved names like Control.ini or Win.ini to produce errors.o Added Rainmeter version information to the right click (Properties / Details) menu for

Rainmeter.exe.o Fixed an issue with Rainmeter properly using UNC (Universal Naming Convention) network

shared drives / folders, such as "\\SERVER".o Fixed a small bug in @Include routines that impacted some @Inlcude and MeterStyle

combinations.o The RANDOM math function was case sensitive, requiring "Random" only. Now case

insensitive.o Fixed an issue where a very high Update rate could cause problems closing a skin.o Changed the HighBound parameter for RANDOM to return up to and including the number in

HighBound instead of just up to.o Added #CRLF# as a built-in variable to allow putting a carriage return / line feed in a string

meter.o Changed the undocumented LG (logarithm) function to be LOG and added to the manual.o Corrected an issue where formulas could not be used for defining X and Y on a meter if the

"relative position" (r/R) modifiers were used.o Added new built-in variable #PROGRAMDRIVE# which will return X: or \\Server or \\Server\

X: (X=drive letter)o Corrected an issue with network statistics on a logical WiFi network interface.o Build 376 was missing a fix that addressed a WiFi NetIn/NetOut problem.o Fix to allow UNC paths in @Include statements to function correctly.o Rainstaller is now included in the Rainmeter build.o Rainmeter installer now asks to run Rainmeter when complete.o Rainstaller: Added a sample .rmskin as a template for authors.o Rainstaller: Fixed a bug when there was no top level folder in a .rmskin

Page 111: rainmeter manual

o Rainstaller: Added Merge=1/0 to support addons for suites.o Changes to better support PortableApps.com in RainThemes and Rainstaller. Now preserves

user's settings in [Rainmeter] for SkinPath, ConfigEditor and TrayExecute(x).o Improved the Registry measure to handle registry keys added or deleted while the skin is

running.o RainThemes: Added the ability to edit themes in your text editor. Changed the UI to better match

Rainstaller.o Removed Tranquil suite of skins.o Removed Wing Firefox and Lightning Sunset Enigma themes.o Added Gnometer suite of skins as a default. Either Enigma or Gnometer can be chosen on a new

install.o Added RainBackup application. Added to Windows Start Menu under Rainmeter.o Many Improvements to Rainmeter Installer. Allows for selection of default suite of skins and

runs Rainmeter at the end.o Speedfan improvement to add SpeedFanScale for converting from Celsius to Fahrenheit.o Many Updates and fixes to Enigma.o RainThemes now protects default themes from overwrite to facilitate future updates.o Fix to Ping Plugin to work better with newer versions of Windowso Fix to timing issue with Ping Plugin to reduce possibility of Rainmeter crash when pinging an

active server not responding to the Ping service.o Changed @Include to allow the use of variables in the statement.o Updated GUI for EnigmaConfigure. Now also restores saved settings on upgrade of Enigma

from \Backup.o Improvement of functionality when using !Rainmeter(Hide/Show)Meter and

DynamicVariables=1o Fixed a bug in SpeedFan that could cause a crash if SpeedFanType was not set to

TEMPERATURE.o Changed an error in using Dynamic image names to write to the log rather than producing an

error dialog.o Fixed an issue with loading image names when in a MeterStyle.o Fixed a bug in Meter=Histogram.o Fixed a bug in the Ping plugin that could cause a crash if the network was not present when the

skin was refreshed.

1 NOV 2009 (Version 1.1)

o The default value for the UpdateRate in the WebParser is now 600 (=10 mins).o Fix for the ToggleiTunes command in the iTunesPlugin.o The IgnoreRemovable now defaults to true (1) which should help with the missing disk errors.o Added Themes submenu to the Rainmeter's context and tray menus.o Variables can be used under the [Variables] section (as long as they have been defined before the

current variable is read).o Changed RainThemes to automatically create a theme called "AutoSave" which will contain

your current setup.o The windows stay visible with Windows 7 Aero Peek.

Page 112: rainmeter manual

o WebParser reads the resource now only if it has been modified. This can be overridden with ForceReload=1.

o !RainmeterRefresh and !RainmeterQuit are now handled only during the event loop since they can crash the application if executed during Update().

o It's now possible to use the measures as if they were variables (use [MeasureName] instead #VariableName#). Set DynamicVariables=1 for all meters and measures which refer to other measures.

o New bang !RainmeterSetVariable can be used to change the value of a variable (DynamicVariables must be 1 in places where the variable is used).

o Skin information and instructions can be added to [Metadata] section.o Aspect ratio of the image is preserved when the image is scaled.o New RANDOM function in the CALC measure type.o Fonts can now be stored in Rainmeter\Fonts or with the skin and not "installed" in Windows.o Added support for style sections. MeterStyle can be used in meters to read the values from the

style section.o Added support for the middle mouse button (MiddleMouseDownAction /

MiddleMouseUpAction)o The skin files can read other files with @include statement.o If native transparency is enabled the windows are not refreshed anymore when settings change

but they are just moved to the correct location.o Added a version check for the skins which come with Rainmeter so they can be upgraded.o Path and filename of the file created by Debug=2 in WebParser is now configurable with

Debug2File="[Path\]filename.ext"o The standard "hand pointer" mouse cursor is shown when you hover over a meter with any

"MouseAction" on it or a button.o Added #CURRENTCONFIG# as a "built-in" variable.o Fixed: [Measure] contained in Action in Measure and Meter are not replaced when reading skins.

They are replaced only when executing action.o Fixed: When the designation of Drive is wrong, a strange volume label is indicated.o The !bangs can be now used from command line even if there are no active configs.o Included RainBrowser to the build.o WiFiStatus: Added a variable called WifiListLimit=X that allows you control how many access

points to display at a timeo WiFiStatus: Removed all popup errors, all debugging messages now sent to Rainmeter log fileo WiFiStatus: Fixed some memory leaks 7 and Vista users were facing

7 AUG 2009 (Version 1.0)

o Diskspace can be checked from the removable drives too.o Time measure didn't show correct week number. Fixed.o New plugins: RecycleManager and iTunesPlugino SysInfo plugin updated with 11 new SysInfoTypes.o SysInfo IP Address extened to select active interfaceso The help couldn't be opened if Rainmeter was installed to a folder with spaces. Fixed.o Added support for transition frames for the bitmap meter.

Page 113: rainmeter manual

o Some Vista specific fixes: Rainmeter.ini and Rainmeter.log are now written to %APPDATA%\Rainmeter and editing the skins will ask for admin privileges.

o When Rainmeter is started the first time the default skin is activated automatically.o New build in variables: #WORKAREAX#, #WORKAREAY#, #WORKAREAWIDTH#,

#WORKAREAHEIGHT#, #SCREENAREAWIDTH#, #SCREENAREAHEIGHT#, #PROGRAMPATH#, #SETTINGSPATH#, #SKINSPATH#, #PLUGINSPATH#, #ADDONSPATH# and #CURRENTPATH# (this is the path where the ini file that is currently read is located).

o Math formulas can be used to define the window position and the meter dimensions (the formula must be surrounded in parenthesis).

o If there is a file called Default.ini in the program folder it will be used as the default settings file for new users.

o The location of the settings file (rainmeter.ini) can be defined as a command line argument.o Meters have now support for a transformation matrix.o New !bangs: !RainmeterPluginBang and !RainmeterQuit.

22 JAN 2006 (Version 0.14 - Beta)

o Webparser parses the files as UTF8 by default. The codepage can be changed with CodePage. o Added proxy support for the webparser. o The reference measures in Webparser can use RegExps to parse the substring. o Fixed few graphics problems with the images. o Fixed the background rendering bug and incompatibility problem with DynamicWindowSize. o Some !bangs didn't work during the first update cycle. Fixed. o Fixed SSID and BANDWIDTH in the WirelessPlugin. o WindowMessagePlugin uses PostMessage instead of SendMessage so now you can control

Rainmeter with it too :-). o Fixed couple of crashes with !RainmeterRefresh-bang. o The plugin folder can be defined with RainmeterPluginPath in step.rc. o The AdvancedCPU can show the process that currently takes the most CPU time. o Substitutes are applied in the order they are defined. o Fixed a crash with the PingPlugin and added TimeoutValue which defines the value on timeout. o QuotePlugin can scan subfolders and it's possible to filter the files by extension. o The tray meter can load directly icon files. o Fixed hit test in BITMAP measure when alignments are used. o Format in TIME measure can show the time and date as locale specific string. o Added OnRefreshAction which is executed when the config is refreshed. o Fixed uptime in 64-bit build.

20 JUL 2005 (Version 0.13 - Beta)

o Compiled as Unicode so this is Win2k/WinXP only from now on. o Removed wharf interface. Use !RainmeterLsBoxHook instead. o Some code optimizations. o Updated the PCRE-library in WebParser.

Page 114: rainmeter manual

o WebParser: Debug=2 Dumps the downloaded data to a file (C:\WebParserDump.txt). o Fixed crash bug when plugins were used as the tray measure. o UpdateDivider didn't work in meters. Fixed. o Empty substitutes are now also possible. o Added button meter, which should make button creation easier. o Removed size limitation from the section names. It should be now possible to have as many

meters and measures in the skins as you like. o Meter background can be drawn with a gradient fill (It's quite slow so don't overuse it). o R (i.e capital r) in the relative position makes the meter relative to the bottom (or right) edge of

the previous meter. o Created a quote plugin for random texts and images. o Created a window message plugin that allows to control other applications (e.g. Winamp). o Created a ping plugin for network status checking. o STRING meter calculates its size automatically. o The window size can be recalculated dynamically with DynamicWindowSize. o It's possible to use the string value of the measures in the actions. o Quoted paths work with !Execute-bang o MaxValue works in all plugins. o Configs can use environment strings. o Added fade effects. Set FadeDuration=0 to disable them. o The memory measures can show >4GB values correctly. o The tray histogram's colors can be changed. o Tray can show also a bitmap meter. o Snap to Edges snaps to other meter windows too o Added Angle to string meter. o Fixed the 4GB addition bug with cumulative net measures (I hope :-) o Font size does not change anymore with the screen DPI. o Added Format to Uptime measure. o Added BackgroundMargins and scalable background images (Use BackgroundMode=3) o WebParser checks references only in the same config file and not in all active configs. o Shift, alt and ctrl-keys don't disable mouse events anymore (except the "Hide on mouse over") o The drag area can be defined with DragMargins o Added Flip to bar meter. o Added "Keep on Screen"-option which makes the window to stay inside the monitor. o ClickThrough can be disabled with Shift-key. o Added ErrorString to WebParser. o Negative values should work with the MBM5 plugin. o Added IfEqualValue and IfEqualAction. o Added Label to the DiskSpace measure which will return the drive's label as string. o Mouse clicks to the tray icon can execute bangs now. o The about dialog shouldn't have a scrolling problem anymore.

13 AUG 2004 (Version 0.12 - Beta)

o Fixed !RainmeterLsBoxHook.

Page 115: rainmeter manual

o Position changing from the menu works a bit better now. o Mouse over actions didn't work unless the window was set to draggable. Fixed. o Added automatic update checking (it can be enabled from the about dialog). o Sending bangs to deactivated config shouldn't crash Rainmeter anymore. o Fixed a typo: ValueReminder -> ValueRemainder (the old one works still too) o Added LineStart to the roundline-meter.

10 JUL 2004 (Version 0.11 - Beta)

o The OnDesktop setting wasn't read from the config file correctly. Fixed. o Meter position can be defined relatively to the previous meter by adding 'r' to the end if the value

(e.g. X=10r). o Fixed autoscaling with NumOfDecimals=0. o Added Format to LIFETIME in PowerPlugin. o Added STATUS2 to PowerPlugin, which is the same as STATUS except that the BatteryFlag in

SYSTEM_POWER_STATUS is returned as is. o Fixed finalization in the plugins. o Calc-measure's Counter is separate for each active config. o Fixed TrayIcon. o Added handling of MaxValue to WebParser. o IMAGE meter's W and H can be used to scale the image. o Width of the STRING meter is handled correctly for right and center aligned text. o Mouse leave checks transparent pixels. o The WebParser can be now used to download images from the net. o Refresh all updates the skin-list so it's not necessary to restart Rainmeter anymore when

installing new skins. o Fixed a crash bug with HISTOGRAM meter. o All substitute strings were not used always. Fixed. o Added "Show Log File" to context menu. o Spaces in config names should now work correctly. Use quotes around the name in !bangs. o Use * as config name in bangs to send the command to all active configs. o Added !RainmeterToggleConfig-bang. o Added BarBorder to the BAR-meter. o Rainmeter reads now the whole folder structure of the Skins-dir (i.e. skins can be placed into

subfolders). o Date for local time wasn't calculated correctly. Fixed.

5 JUN 2004 (Version 0.10 - Beta)

o Fixed a bug in PowerPlugin (the max value of STATUS was set incorrectly). o Inverted measures sometimes gave negative values. Fixed. o MBM5plugin's MHZ didn't work. Fixed. o Added CPU speed measure into the PowerPlugin too. This one measures the current MHz of the

processor. o Fixed a memory leak in Perfmon and in AdvancedCPU plugins.

Page 116: rainmeter manual

o Improved the about dialog. o Created ROTATOR meter, which rotates images. o Added menu items for config & skin editing (opens the ini-file in editor). o Added TimeZone and DaylightSavingTime to Time measure. o Most of the values are now doubles instead of integers. This also means that there might be some

inaccuracy with very large values (e.g. diskspace). o MaxValue and MinValue can be defined for all measures. o Time measure converts the Format to value (e.g. if Format=%S, a meter bound to it shows values

from 0 to 59). o MaxRegValue is gone. Use MaxValue instead. o Sysinfo plugin detects now Windows 2003 too. o Variables can be defined in [Variables] section for 'easy' customization of the configs. o Added possibility to change the string values with substitute strings. o Meter's transparency can be changed with AlphaValue. o Added a click through feature (works only with native transparency). o Added Total to FreeDiskSpace and the memory measures. o Added LineWidth to the Line meter. o Added Flip to Histogram and Line meters. o Made the string meter multibindable. Several values can be displayed with Text-keyword. o Added MouseOverAction and MouseLeaveAction to the meters and main window. o Implemented Calc measure, which can calculate math formulas. The measures can be used as

variables. o Added Solid to the ROUNDLINE meter, which draws a pie. o Moved the Update setting from Rainmeter.ini to the skin's ini-file so that skin can determine it's

update speed. o AverageSize can be used to measures an average value (the parameter is the value window size) o UpdateDivider works for meters too. o If the image meter is bound to a measure it tries to load the image named after the value (that is

returned as string). o Added !RainmeterResetStats-bang. o Fixed !RainmeterZPos-bang when executed without Litestep. o Added ClipString to the string meter. o AlwaysOnTop=2 keeps the window on top of other topmost windows (like to taskbar). o AlwaysOnTop=-2 keeps the window on desktop. o DesktopWorkArea can be used to change the desktop's work area. o String meter displays the battery time in HH:MM:SS-format (or "Unknown", if it not supported) o Removed !RainmeterChangeConfig and added !RainmeterActivateConfig and !

RainmeterDeactivateConfig o Added a tray icon. It can be bound to a [TrayMeasure] in Rainmeter.ini. o The tray icon can be disabled with TrayIcon=0. o Meters can be moved with !RainmeterMoveMeter. o Window position can be overridden with RainmeterWindowX and RainmeterWindowY in

step.rc. o Configs can use AppVersion to inform that they need a specific version of Rainmeter to run.

Page 117: rainmeter manual

o The config editor can be changed with ConfigEditor=editor.exe in Rainmeter.ini (don't use spaces in the filename).

o New Help!

9 FEB 2003 (Version 0.9 - Beta)

o Fixed a bug in the ini-file parsing routine. o Created a PowerPlugin for laptop battery information. o Selecting the network interface didn't work. Fixed. o The general config and skin's config are separated into different ini-files. o Added RainmeterSkinPath step.rc command, which sets the path to the skin folders. o Skins are read from Skins-folder by default (instead of the main folder). o The about dialog now shows all the active measures. o Removed GatherStatistics. Stats are now always gathered if a measure supports that. o Added Cumulative to net meters. o Added AntiAlias to line meter and string meter. o All colors can now have 4 parameters, where the last one is the alpha value. o Added a round line meter that can be used draw analog VU-meters and such. o Added Autoscale to the histogram meter. o Added support for native W2k/XP transparency. o Implemented a median filter in the automatic max value tracker to strip out the spikes. o !Execute bang works now also with the standalone version of Rainmeter. o Added BackgroundMode option. o Added SolidColor & BevelType options to the meters and the main window for a solid color

background. o Added few new bangs: !RainmeterMove, !RainmeterZPos, !RainmeterAbout, !RainmeterRedraw

and !RainmeterLsBoxHook. o The string meter can be used to draw normal text if it's not bound to anything (just use the

Prefix/Postfix). o Added AllowNegativeCoordinates option to allow the use of negative coordinates. o Snapping now works on all monitors (thanks to Owain Cleaver for the patch). o Fixed the MBM5plugin to work with the newer version of Motherboard Monitor. o Added CPU and MHZ to the MBM5plugin.

30 JUN 2002 (Version 0.8 - Beta)

o Rainmeter is not anymore dependant on lsapi.dll. It only uses lsapi.dll's functions if ran as Litestep plugin.

o The position is not updated to the ini-file if the file has changed. o Added possibility to choose the measured network interface. o Negative coords were saved as very high positive values. Now they should be saved as zero. o Added a autoscaling line meter that can display multiple histograms. o Added RainmeterCurrentConfig and RainmeterCurrentConfigIni step.rc commands that can used

to set a specific config. o Added MBM5MaxValue for the MBM5 plug-in.

Page 118: rainmeter manual

o Fixed a bug that didn't reset the AlwaysOnTop state of the window after refresh. o AlwaysOnTop has now three possible values: -1 puts the window always on bottom, 0 is normal

window positioning and 1 puts it always on top. o Changed the compilation settings and the DLL is a quite a bit smaller now. o Plugins can display string values now too. o Created a SysInfo plugin that displays all kinds of data (IP number, OS version, etc.). o The about dialog is now modeless. o Fixed a memory leak in perfmon.dll o Created a AdvancedCPU plugin that allows include/exclude processes in % Processor Time. o Added SnapEdges option that snaps the window the the screen edges when moved. o Added NumOfDecimals option for the string meter. o Added !RainmeterToggle bang.

5 MAY 2002 (Version 0.7 - Beta)

o Fixed a bug with histogram meter's bitmap blitting. o IfAboveAction and IfBelowAction didn't work. Fixed. o Added BitmapZeroFrame option to BITMAP meter. o Added build-in commands for playing sounds in actions. o Added NetTotal measure. o Added TrafficAction and TrafficValue to execute actions after certain amount of net traffic. o Added Hidden option to meters and Disabled option to measures o New plugin: MBM5plugin, which measures MBM5 data (temperature, fans and volts). o Added Image meter, which just shows one image. o Fixed a bug in Perfmon.dll that prevented measuring counters that do not have instance names. o Added !RainmeterHideMeter, !RainmeterShowMeter and !RainmeterToggleMeter to change

visiblity of individual meters. o Added !RainmeterDisableMeasure, !RainmeterEnableMeasure and !RainmeterToggleMeasure to

change status of individual measures. o The registry measure is now able to access also other keys than just the ones under

HKEY_CURRENT_USER. o The ini-files inside subfolders do not have to be named as Rainmeter.ini (anything that ends with

.ini works). o The same subfolder can contain several configuration ini-files. o The !RainmeterRefresh can now get the config name and the inifile as arguments. o Added !RainmeterChangeConfig bang. o Negative coordinates are saved as zero to prevent the window to be placed off screen. o Added UpdateDivider for measures. o The Rainmeter.exe can be used to send !bangs to the Rainmeter (but only Rainmeter bangs!). o Fixed vertical bar meter (should grow, not slide). o Fixed a bug: histogram values were drawn one pixel too short. o The left and right mouse actions can be defined also per meter.

15 JANUARY 2002 (Version 0.6 - Beta)

Page 119: rainmeter manual

o Fixed a bug that made the CPU-meter to go 100% after refreshing on Win9x. o It is not necessary to name the config file as "Rainmeter.ini", anything that ends with ".ini" will

do. Note that this only applies if the name of the config file is defined explicitely. o If the previously used config cannot be found anymore, the first one is used instead.

26 DECEMBER 2001 (Version 0.5 - Beta)

o IMPORTANT! The configuration file format has been changed and the old ini-files do not work anymore! Also some of the config keywords have been changed.

o Structural changes to the code (now it is easier to maintain). o Added GatherStatistics, which is currently only supported by the NetIn/Out-measures. o Added Plugin measure for external counters. Check the source code for example plugin. o Added Registry measure, which can get data from a given registry key. o Added button up actions (RightMouseUpAction and LeftMouseUpAction) and renamed the

down actions as RightMouseDownAction and LeftMouseDownAction o Added support for actions that are executed when a measure goes above/below certain value. o Removed the PerfMon measure because of incompatibilities with NT4. The PerfMon measure is

now implemented as Rainmeter plugin. o Added Time-measure. o Colors can now be defined also as hex values in RGB-format (e.g. FontColor=FFCCDD). o The position of the window can be stored into the ini-file automatically. o Added support for multiple configurations. The configs can be changed from context menu.

1 SEPTEMBER 2001 (Version 0.4 - Beta)

o If the maximum value for the meters (e.g. NetInSpeed) is not given it is determined automatically from the input.

o All measures can be displayed as percentual strings. o Added uptime-measure. Usable in a string-meter only! o Added two new meters: Bar and Bitmap. o Added !RainmeterRefresh bang. o Added left and right mouse button actions. o Now it is possible to define the location (and the name) of Rainmeter.ini-file in the step.rc with

RainmeterIniFile. o Added context menu, which can be used to refresh the window and quit the program if ran as

standalone. o Added possibility to use images as the backgrounds for the histogram graphs. o Small adjustments so that Rainmeter can run in a lsbox as *WharfModule. Dunno if it also works

in a real wharf.

19 AUGUST 2001 (Version 0.3 - Beta)

o Added support for NT performance data. o Added support for measuring free disk space. o Added possibility to display the measure values as plain strings. o Added automatic scaling for the string values.

Page 120: rainmeter manual

o Added possibility to invert the values (e.g. measure allocated disk space instead of free space). o Improved mouse over hiding. o Now it is possible to start Rainmeter hidden. o Added support for Litestep's Revision ID.

19 JULY 2001 (Version 0.2 - Beta)

o Rewrote (almost) everything. o The CPU & memory are now measured a bit different way.

22 FEBRUARY 2001 (Version 0.1 - Beta)

o Initial beta release