Manual

Documentation for the latest release version of Rainmeter. Use links in the sidebar to navigate.

Installation
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 XP you will need at least Windows XP 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 compatible 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.

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 entire \Rainmeter folder and subfolders. 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.

Silent Installation (advanced)
Rainmeter can be installed silently (i.e. without user interaction) starting from version 2.1 beta. This is useful, for example, when deploying Rainmeter during the initial Windows setup. View switches and return values.

Default File Locations
Program files: Windows XP: C:\Program Files\Rainmeter Windows Vista and later: C:\Program Files\Rainmeter Skins: Windows XP: C:\Documents and Settings\YourName\My Documents\Rainmeter\Skins Windows Vista and later: C:\Users\YourName\My Documents\Rainmeter\Skins Rainmeter.ini and themes: Windows XP: C:\Documents and Settings\YourName\Application Data\Rainmeter Windows 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.

Settings
There 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\Rainmeter Windows Vista and later: C:\Users\YourName\Appdata\Roaming\Rainmeter The file can be edited by using "Edit Settings" from the Rainmeter context menu or Manager. The Rainmeter.ini file has several sections: [Rainmeter], [TrayMeasure], and individual sections for each config which has been loaded. The Rainmeter section contains general settings that can be used to change how Rainmeter behaves. The settings are used as default values for all new configs that are opened. Once a config is opened it will write the settings under its own section in the Rainmeter.ini file. Important: Some of the settings in the Rainmeter.ini file cannot be changed while Rainmeter is running becase a refresh will write the old values back to the ini file. If you cannot change something, try changing the value after completely closing Rainmeter.

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

Options
 DesktopWorkArea Sets a new work area for the desktop. The workarea defines the area maximized windows cover. Use four comma separated values to set the location of the top-left and bottom-right corners of the area (e.g. DesktopWorkArea=0,0,1500,1200 ). 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 (hold the CTRL key to force default behaviour). ConfigEditor Defines the application that is used to edit the Rainmeter's configuration files when "Edit Skin" is chosen from the context menu. The default is Notepad. Relative paths can be used here, which may be useful for portable installs. SkinPath Is set by Rainmeter automatically (or can be manually changed) to indicate the location of the Config/Skin folders for Rainmeter. The default is: Windows XP: C:\Documents and Settings\YOURNAME\My Documents\Rainmeter\Skins Windows Vista & Win7: C:\Users\YOURNAME\My Documents\Rainmeter\Skins Logging If set to 1, Rainmeter will log errors and other information in a log file stored in %APPDATA%\Rainmeter\Rainmeter.log. You can start, stop, view and delete this log by using the Rainmeter system tray context menu. Debug If set to 1, logging will be more verbose. This setting should be used only when debugging as it negatively impacts performance. Default is 0. DisableVersionCheck By default, Rainmeter will check to see if there is a newer RELEASE version of the application available. If so, it will prompt you with a link to the site where the new version can be obtained. If you wish to disable this version checking, set DisableVersionCheck=1 . Note that only release (not beta) versions of Rainmeter are checked for.

 

 

Settings-TrayMeasure
One special section is [TrayMeasure], which can be used to define a measure for the tray icon. You can use any measure for this as long as it returns some meaningful values (i.e. numbers between some limits). The following must be put under the [TrayMeasure] section:

TrayColor2 Defines the foreground color when TrayMeter=HISTOGRAM . The bitmap can have as many frames as you like but each frame must be 16x16 in size. tray-2.. If the %-sign is added.ico.ico and so on as long as it can find them.ico. AnchorX and AnchorY all to 50% the config will be truly centered in the primary monitor regardless of screen resolution or aspect ratio. the position of the window is stored in the Rainmeter. 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). It's possible to also use icon files as the tray bitmap.) Note: To use the default Rainmeter icon as the tray icon. remove the entire [TrayMeasure] section.ico. TrayColor1 Defines the background color when TrayMeter=HISTOGRAM .g. The format specification is like printf (e.ico would read the icons files tray-1. E. WindowY. AnchorX and AnchorY allow that anchor position to be changed. This can be either HISTOGRAM or BITMAP. 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. AnchorX. WindowY These define the X and Y positions of the config on the screen in pixels. The normal parameters for that measure should follow. by setting WindowX. If set to -1 the window stays behind the other windows. then the position is relative to the right or bottom edge of the window.. the window positioning is normal.ico will load tray-01. Most of these settings can also be set via the skin right-click context menu or through the Manage dialog.g. The screen selection will apply to both WindowX and WindowY if the value is set on only one of them. [illustro\Clock]. If 0. If a letter R or B is added to AnchorX or AnchorY.ini file so that it will be remembered when Rainmeter is executed the next time. As an example. The path is relative to the Skins folder.g. tray-3. SavePosition If set to 1. AlwaysOnTop If set to 1. A value -2 pins the window to the desktop and    . TrayBitmap Defines the name of the bitmap used when BITMAP is chosen for TrayMeter. Options  WindowX. the measurement will be in percentage. You can use %i in the filename to define an increasing number from 1. TrayBitmap=tray-%i. 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. Settings-ConfigName The following should be put under the the sections for their respective configs. the window is always on top of other windows. TrayBitmap=tray-%02i. e. tray-02. TrayMeter The manner in which the measure is depicted. By default the position is relative to the primary screen. AnchorY By default WindowX and WindowY control the position of the upper left corner of the config window. .Options      Measure The type measure to be shown as the tray icon.ico.

Draggable If set to 1. with the config with LoadOrder=-1 appearing beneath the one with LoadOrder=2 which is in turn beneath the config containing LoadOrder=5 . ctrl or alt is held while clicking. to screen edges and other skins when moved. If 0.e. for example: Three configs having LoadOrder=1 . The window will reappear when the mouse pointer is moved off the position where the window was. To get rid of the fading set the value to 0. You can use !Show bang to make it visible.2 keeps the window on top of other topmost windows. "Topmost". Note: The value of LoadOrder has no bearing on what the position of the config is. If shift. A value of -2 (On Desktop) will work with XP/Vista/Windows 7 with the Aero Interface on or off.           Settings-BuiltInVariables . i. but two configs in "Topmost" will layer themselves according to their LoadOrder value.exe as the Window shell. ClickThrough If set to 1 the mouse clicks go through the window.. ctrl or alt is held while moving the mouse. Configs loaded first are below those loaded last. the window will snap.ini by selecting "Edit Settings. configs set to "Topmost" will always appear above configs set to "Normal". the window will be stationary. the Rainmeter skins will stay visible. The first skin [section] in Rainmeter. Configs will load starting with the one with the lowest value for LoadOrder. LoadOrder This determines the order in which the configs are loaded. SnapEdges If set to 1. or "stick". KeepOnScreen Set to 1 to keep the windows always on the monitor area. StartHidden If set to 1.ini in ascending order. the window can be dragged around with the mouse. etc. ctrl. Only works if native transparency is enabled. with LoadOrder only affecting how skins in the same position interact with each other. For Windows XP.255) for the window. the config is hidden when started. HideOnMouseOver If set to 1 the config will disappear if the mouse pointer is moved over it. the skin will respond to clicks as normal. "Normal. If shift.ini is on the bottom relative to ones that come after. In Vista and Windows 7 if a skin is set to On Desktop and Windows "Show Desktop" is used (WIN+D). NativeTransparency must be enabled." from the tray context menu. the window will not disappear (or reappear). ending with the highest. LoadOrder must be set manually in Rainmeter. If two configs have the same value for LoadOrder. they are then loaded in alphabetical order. LoadOrder=2 and LoadOrder=5 would load the configs in that order. or alt is held while moving. NativeTransparency Set to 1 for native transparency support (only necessary for Windows XP). Values can be positive or negative. AlphaValue The transparency value (0 . 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. "On Desktop". FadeDuration This defines the amount of time it takes to fade the window. If shift. the window will not snap. Configs in these positions will continue to appear in the same manner. That is to say. The time is in milliseconds. Note that -2 (On Desktop) only works with Explorer..

Skins folder (e.ini): [Enigma\Sidebar\Systems] Active=0 WindowX=0 WindowY=0 . In this case.g.g.Name of current skin (e.Width of the current config in pixels  #CURRENTCONFIGHEIGHT# . it will return "Variables" wherever used.ini. simply add the Group statement to the section under Rainmeter.g.g.Plugins folder (e.Width of the height config in pixels  #CURRENTCONFIGX# .Height of the work area  #SCREENAREAWIDTH# . you may add Group under the [Rainmeter] section of the skin file. DynamicVariables=1 must be set on the measure or meter in which they are used (note that they cannot be used elsewhere like under the [Rainmeter] section):  #CURRENTCONFIGWIDTH# .Addons folder (e.ini. %APPDATA%). Settings-Groups Configs can be categorized into "groups" to allow quick control of multiple configs at once. which can be obtained by the set command in cmd. C:\Program Files\Rainmeter\ )  #SETTINGSPATH# . C: or \server\Users\ )  #PROGRAMPATH# . C:\Program Files\Rainmeter\Addons\ )  #CURRENTPATH# .ini. Alternatively.g.Folder of Rainmeter.Highest-level folder under \Skins of current skin (e. To use them. Note: Built-in Rainmeter variables that stand for a path already contain a trailing slash.Rainmeter program folder (e.Drive Rainmeter is installed to (e. illustro\ )  #CURRENTSECTION# . Example (Rainmeter.  #WORKAREAX# .g. Groups may also be specified under the [Rainmeter] section of Rainmeter. Clock. Note that if used in [Variables]. C:\Program Files\Rainmeter\Plugins\ )  #ADDONSPATH# . To add a Config to a group. use the name of the environment variable within two percent sign (e. illustro\Clock\ )  #ROOTCONFIGPATH# .Left screen position of the current config in pixels  #CURRENTCONFIGY# .Width of the display resolution  #SCREENAREAHEIGHT# .g.e. Note that environment variables may vary from system to system.Y-position of the work area  #WORKAREAWIDTH# .  #CRLF# . their value cannot be manually changed).g.g.X-position of the work area  #WORKAREAY# .Width of the work area  #WORKAREAHEIGHT# .Current [Section] name.Config name of current skin (e. C:\Users\YourName\My Documents\Rainmeter\Skins\ )  #PLUGINSPATH# .ini (e. all of which must be separated by a vertical bar (i.Top screen position of the current config in pixels You may also use Windows environment variables.Line break  #PROGRAMDRIVE# . that group will be considered the default for all configs that have no groups defined. C:\PathToSkinsFolder\illustro\Clock\ )  #CURRENTFILE# .g. These variables may be used anywhere.e.exe (command prompt).Height of the display resolution The variables below are dynamic in nature.The following are pre-existing variables that are set and controlled by Rainmeter (i. Any number of groups may be added to a section.g.ini )  #CURRENTCONFIG# .Path of current skin (e. including within Rainmeter. As a result. %APPDATA%\Rainmeter\ )  #SKINSPATH# . "|").

If checked. which can then be controlled through several bangs. This setting can be manually made in either the [Rainmeter] (all configs) or individual config sections of Rainmeter.  "Auto-select based on window position". Built-in variables for multiple monitors Variables for the virtual screen:  #VSCREENAREAX# is the X-position of the left-side of the virtual screen. If a monitor is selected directly using "Display Monitor" in the Rainmeter / skin context menu.ini. ..  @0. . AutoSelectScreen If set to 1.. the WindowX and WindowY "@n" settings are made automatically based on the position of the meter's window. this menu is unchecked. this setting is reset to 0. Example (skin): [Rainmeter] Update=1000 Author=Me Group=Enigma | Systems The skin is added to the "Enigma" and "Systems" groups. If a monitor is selected directly using "Display Monitor" in the Rainmeter / skin context menu. the WindowX and WindowY "@n" settings are made automatically based on the position of the meter's window. Settings-Monitors There is a "Display Monitor" submenu in [Skins Menu]-[Position] of the Rainmeter tray icon. @1.  "Use default: Primary monitor" Removes the @-directive from WindowX/Y. More info at MSDN.AlphaValue=255 FadeDuration=250 ClickThrough=0 SavePosition=1 SnapEdges=1 KeepOnScreen=1 Group=Enigma | Systems The Enigma\Sidebar\Systems config be added to the "Enigma" and "Systems" groups. @2. which can then be controlled through several bangs. These menus set the position of the skin to the desired monitor in a multiple monitor configuration. Adds the specified monitor number to WindowX/Y. @0 means "The Virtual Screen".

Variables for the PRIMARY monitor:  #PWORKAREAX# is the X-position of the left-side of the work area. it is the convention that is observed by the vast majority of skin authors. A subfolder may contain several . Skins All skins are placed in the skin folder. it is important to understand that Rainmeter reads and executes measures and meters in the order they are in the skin .  #VSCREENAREAHEIGHT# is the height of the virtual screen. (maybe.  #WORKAREAY@n# is the Y-position of the top-side of the work area. Variables for the PRESENT monitor: Note that these variables automatically change by the WindowX and WindowY "@n" settings.  #SCREENAREAX@n# is the X-position of the left-side of the monitor screen. Note: While you can put sections in any order you wish.  #PWORKAREAWIDTH# is the width of the work area.ini file with several sections that define the skin layout and values.  #WORKAREAWIDTH# is the width of the work area.  #PWORKAREAY# is the Y-position of the top-side of the work area. to supply localized skins or different variations of some skin. details about the are placed in the [Metadata] section.  #PSCREENAREAHEIGHT# is the height of the display resolution. The actual skin file is a normal . This allows you.  #SCREENAREAY# is the Y-position of the top-side of the monitor screen. for example. If "@n" is not set. (maybe. .  #SCREENAREAHEIGHT# is the height of the display resolution. Then follow the measures (which collect data) and meters (which display data).  #SCREENAREAWIDTH# is the width of the display resolution. Variables for the SPECIFIED monitor (@1.  #WORKAREAHEIGHT@n# is the height of the work area. these variables return the value of the primary monitor.ini file. always 0)  #PSCREENAREAY# is the Y-position of the top-side of the monitor screen.  #SCREENAREAY@n# is the Y-position of the top-side of the monitor screen.  #WORKAREAHEIGHT# is the height of the work area.  #SCREENAREAWIDTH@n# is the width of the display resolution. The skin's ini file is divided into several parts.):  #WORKAREAX@n# is the X-position of the left-side of the work area..  #SCREENAREAHEIGHT@n# is the height of the display resolution. always 0)  #PSCREENAREAWIDTH# is the width of the display resolution.ini file per folder can be active.  #SCREENAREAX# is the X-position of the left-side of the monitor screen.  #WORKAREAY# is the Y-position of the top-side of the work area. #VSCREENAREAY# is the Y-position of the top-side of the virtual screen. and the variables in the [Variables] section.  #PSCREENAREAX# is the X-position of the left-side of the monitor screen. Each skin must be in its own subfolder.  #WORKAREAWIDTH@n# is the width of the work area.  #WORKAREAX# is the X-position of the left-side of the work area. This is important in particular for positioning of meters relative to each other. but only one .. @2.  #PWORKAREAHEIGHT# is the height of the work area.  #VSCREENAREAWIDTH# is the width of the virtual screen. All the general settings are put under the [Rainmeter] section.ini files. While it is not necessary to place the sections in this order. .

Tiled background image ImageCrop Crops the image. the image will be greyscaled. the image can be made semi-transparent (0 means invisible.Bottom left o 5 . Note: If you combine Greyscale and ImageTint you "recolor" the image to the defined color.10 SolidColor If the background mode is set to 2.Center (both W and H) Greyscale If set to 1. W. Origin . SolidColor2 If the background mode is set to 2. Negative numbers rotate counter-clockwise. The parameters are ImageCrop=X.Scaled background image o 4 . The colors are given in the same manner as SolidColor: RGB(A).          . Default value is white (255. creating a "tint".10. BackgroundMargins Defines the margins for the background image that are not scaled when the BackgroundMode is set to 3.Image as defined by Background o 1 .Top left o 2 . if you use ImageTint alone. Changes to the image are applied in the following order: ImageCrop -> GreyScale -> ImageTint -> ImageFlip -> ImageRotate. H.Transparent (default if no Background image defined) o 2 .Skins-Rainmeter The [Rainmeter] section of a skin defines skin-wide options.Solid color o 3 . If this is omitted a copy of the desktop is taken and used as the background for the meters.g. Origin is optional and can be set to one of the following: o 1 . ImageTint The color to tint an image. Background Options  Background Name of the background image.10.Bottom right o 4 .Top right o 3 . 255 mean fully opaque). 255.flips both horizontally and vertically ImageRotate Rotates an image by the defined number of degrees. Valid values are: o NONE o HORIZONTAL o VERTICAL o BOTH . ImageFlip Flips the image. BackgroundMargins=10. BackgroundMode Defines the background mode: o 0 . this defines a second color for the background to create a gradient. If the alpha value is specified. this defines the color of the background. 255. Y. 255) which in effect means "no change". you "add" the defined color to the image. E.

x2. E. Author The name and email of the author of the skin. The default value is 100. AppVersion is a single number that can be calculated like this: Major * 1000000 + Minor1 * 1000 + Minor2. The value should be given in milliseconds. If the first parameter is set to 0. The window is scaled automatically if necessary. A setting of -1 will "disable" ongoing updating for the skin. .0 would be 2000000 and Rainmeter 2. DragMargins=0. this defines the angle for the color gradient.Raised o 2 . LocalFont.e. BlurRegion2. A more detailed description with examples is available at Aero Blur.y2 . It's also possible to use negative numbers in which case the margin is calculated from the opposite side. The default value is 1000 (i.100.No bevel o 1 . enables Aero blur on supported systems. and the version of Rainmeter being used by the end user is not equal to or greater than the version number in AppVersion... The angle is defined in degrees. TransitionUpdate The update time for the meter transitions. BevelType If the background mode is set to 2. If BlurRegion is not specified.y1.y1.r . Other Options  Update The time between updates for the measures and meters. DynamicWindowSize If set to 1 the size of the window is calculated during every update. the skin may fail to operate correctly. . so it will only update once. When a transition is active (i.If you specify an AppVersion in your skin. the end user will be prompted to upgrade.   GradientAngle If the background mode is set to 2.x2. The value should be given in milliseconds. BlurRegion is defined as follows: o 1.e. BlurRegion.y1) are the coordinates for the top-left corner while (x2.g.x1. y2) are the coordinates for the bottom-right corner. DragMargins Defines the area from where the window can be dragged. once per second).g.y1. This includes when the config is opened the first time.x1. It is not necessary to define this if you don't want to. on load or refresh. this draws a beveled edge around the solid background. LocalFont2. AppVersion The minimum version of Rainmeter that is needed by this skin. E.Sunken Blur If set to 1.y2. o 0 .x2.1 would be 2001000. You need to define 4 values separated with comma.. that specific BlurRegionN is ignored.Rectangular region with rounded corners of radius r o 3.0        OnRefreshAction Executes a command or !bang that is executed when the config is refreshed.Rectangular region o 2. a meter which supports transitions is changing its value) the redraw rate of the window will be set to this value.0. The values define the margin of non-draggable area.. 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.Elliptic region within the boundaries of the rectangle (x1. the value for Rainmeter 2. the blur is applied to the entire background of the skin. .x1.y2 .

Skins-Metadata This section contains information about the skin itself. Use pipe separators (" | ") to indicate line breaks.g. To define a variable. Options     Name The name of the skin. including parent suite and variant subname. These can be used. mods and derivative works. e. Version The version number of the skin or parent suite. To use a variable in a meter or measure. Metadata is also displayed in the Manage dialog. to gather user defined values to the top of the config-file so that they can be easily changed. e. License Permissions and conditions for ports. you can simply include the name and version of the license. just surround the keyword with # characters. or other documentation elements. Creative Commons or GNU. It is important for all metadata to be written in the [Metadata] section using a specific set of keys. you must set a value for it in the [Variables] section of a skin or @Include file. you should provide appropriate values for all of these keys. and how it is meant to be used and configured.g. If you use a standard license. setup and usage instructions..Allows the use of fonts without installing into WINDOWS\Fonts. credits. metadata is useful as a consistent and reliable place to learn about a skin. Variables are defined as follows under the [Variables] section: VariableName=Value . Information A description of the skin. Skins-Variables The variables are keywords that are replaced in other settings. if applicable.ttf [SomeMeter] Meter=STRING FontFace=TheSansBold-Caps Be aware that the filename of a font is almost never the same as the fontface name used in the FontFace= statement. Alone. It is the skin author's repsonsibility to ensure the correct FontFace name is used. Example: [Rainmeter] LocalFont=#CURRENTPATH#\TheSaBdCp. as needed. As a skin developer. Details on using fonts with Rainmeter can be found at A Note on Fonts.

this will send the keyword itself. and the receiving meter will update accordingly.The variable can then be referred 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 [SomeMeter] FontSize=#Size# [SomeMeter2] FontSize=#Size# You can also tell Rainmeter to use the literal text of the keyword by adding asterisks inside the tag.g. Note: There are several pre-defined variables you can use anywhere in Rainmeter. . as follows: #*VariableName*# This can be used e.Rectangular region 2 . Users on Windows XP or those with Aero or transparency in Aero turned off will see no effect from this functionality. BlurRegion.Rectangular region with rounded corners. TOPx. BlurRegion2. TOPy. These options must be in the [Rainmeter] section of the skin. can be set to: o o o o 0 . in a bang to set the text of a String meter.Region is disabled 1 .Elliptical region . BOTTOMx.. If no BlurRegions are specified. the entire config background region is blurred. This effect uses the built-in Windows Aero effects. Instead of only using the value of the variable at the time of the bang. Options   Blur Set to 1 to enable blur (default 0). An additional parameter for the radius of the corners has to be specified 3 . including changing colors to match your personalization settings for the Windows theme color. Skins-AeroBlur Allows users on Windows Vista or Windows 7 to enable "Aero" blur effects on skins. Defines the area and shape of the region of the skin to be blurred. The Windows desktop background behind a skin with some level of transparency set will be "blurred". The setting is in the format BlurRegion=TYPE.. the type of the blur region. BOTTOMy (.RADIUS) The first parameter.

0.#MyVar2#. Dynamic variables can be used in any meter or measure.Top left vertical point in the skin o BOTTOMx .30) Bangs  !ShowBlur / !HideBlur / !ToggleBlur These effect ALL BlurRegions at once. a measure's name can be used as a variable by enclosing it in square brackets (e. [MyMeasure] ).g. The "region" argument is identical to BlurRegion settings. It is used to turn on and off the blur effect in general. such as WebParser or QuotePlugin. Example: [Rainmeter] Update=1000 [Variables] Width=100 [MeasureCalc] Measure=Calc Formula=Counter%100 [Square1] Meter=Image SolidColor=255. For example: BlurRegion=1.  !AddBlur "region" / !RemoveBlur "region" These are used to add or remove blur regions.Bottom right horizontal point in the skin o BOTTOMy . in order: o TOPx .#MyVar1#. if dynamic variables is enabled.The following parameters define the size and shape of the region to be blurred.0 .(10 + 10). although dynamic variables and measures aren't supported in the [Rainmeter] section. Example Skin Skins-DynamicVariables By setting DynamicVariables=1 in a measure or meter.Radius of the corners of rounded rectangles (for use with type 2 only) Formulas and variables can be used.(#SCREENAREAHEIGHT# . Note: There is also currently no support for dynamic variables in plugins. They are. the measure or meter will respond to variable changes by the !SetVariable bang. but not in the [Rainmeter] section.Bottom right vertical point in the skin o RADIUS . Additionally.Top left horizontal point in the skin o TOPy .

ini file.inc: [Variables] . Skins-Include Loads an external file in the . then it should not use the .ini file will overwrite the values from previous sections and vice versa. Doing so may cause issues with Rainmeter's context menu. or even shared measures. as well as some third-party applications. Note: You may use a variable as the name of an @include file. A common alternative is the .e.ini extension. The loaded file is treated as if the contents were included in the actual skin .e.. 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. Most often it is used in the [Variables] section of a skin. Remember that since the included file is being treated as part of the .255 W=[MeasureCalc] H=50 Y=R DynamicVariables=1 In this example.W=#Width# H=50 MouseOverAction=!SetVariable Width 200 DynamicVariables=1 [Square2] Meter=Image SolidColor=0. When the mouse is place over the box.. each @include statement should be numbered as follows: @include1=. it cannot be the first thing in the file). suite or Rainmeter-wide variables. @include2=. The path used is relative to the current .ini file. @include3=.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 . If the included file is not itself a fully working skin. Example: IncludeFile. Square1 would show a red 100x50 pixel box.ini formatting (i.ini file.0. If there are multiple included files within the same section of the . to allow sharing of common variables between skins. it grows to 200x50 as the variable is changed. config.. The @include statement must be used under some section (i.. it must also have the proper .ini format so an author can have skin. but not a dynamic variable.ini file.. [section] parameter=value )..

can be hidden as follows: !HideMeterGroup CPU Measures Measures are sections that determine what information Rainmeter should retrieve.e. To add a measure or meter to a group. all of which must be separated by a vertical bar (i. The meters use these section names to bind to the measures and display the results.255.ini file. . MeterCPUText belongs to the "Strings" group and MeterCPUBar in turn belongs to the "Bars" group. | ).255 Skin. for example.. Example: In this example. In addition. Within a .ini: [Variables] Font=Arial @Include=IncludeFile. [MeterCPUText] Meter=String MeasureName=MeasureCPU Group=CPU | Strings [MeterCPUBar] Meter=Bar MeasureName=MeasureCPU Group=CPU | Bars Meters in the CPU group.255. Any number of groups may be added to a section.inc [SomeMeter] FontFace=#Font# FontColor=#Color# Skins-MeterMeasureGroups Measures and meters can be categorized into groups to allow easier control over a set of meters and measures with the Groupbangs!HideMeterGroup).Color=255. both of the meters belong to the "CPU" group. names for measures must be unique and they must not have spaces. simply add the Group= option.

when used in a Calc formula or with IfActions). the measured value is inverted. Measures-GeneralSettings These general settings apply to all measure types.g. o PhysicalMemory . HISTOGRAM). so it will only be executed once on load or refresh.0. o SwapMemory .Calculates formulas. o NetTotal .Measures overall memory utilization.Measures outgoing network traffic. if the Update=1000 and UpdateDivider=30 . o Plugin . o FreeDiskSpace . o Time . HISTOGRAM). Note: This option is used solely to scale the of result of some meters (e. The actual value of the measure will remain unchanged.Measures registry values. o Registry . o Uptime . the measure is never updated. A disabled measure always returns zero as its value in numerical contexts (e. etc) so that they can display the measured value as relative to the minimum and maximum values. Note: This option is used solely to scale the of result of some meters (e. A setting of -1 will disable ongoing updates for the measure. o NetOut . HISTOGRAM. when used in String meters).Measures virtual memory allocation.Measures incoming network traffic. UpdateDivider This value modifies the update rate of the measure.Measures total network traffic.Measures how long computer has been on.g. The actual value of the measure will remain unchanged. Disabled If set to 1.g. For example. The default is 0. the measure is updated every 30 seconds.Measures free diskspace. The default is 1. This works only in a STRING meter.Measures time and date.Measure is defined by an external plugin. The default value is 1.0. The global Update value (set in the [Rainmeter] section) is multiplied by this number to determine the update rate for the measure. The valid values are: o CPU . InvertMeasure If set to 1. For example. MaxValue The maximum value the measure can have. but may still return a textual value (e.Measures allocated physical memory. o Memory . Not all measures are able to calculate the minimum and maximum value automatically so you need to do that manually with MinValue and MaxValue. o Calc .g. o NetIn . you can measure the allocated disk space instead of free space.      .Measures total load from CPU or individual cores.Note: Some meters require a range of values (BAR. MinValue The minimum value the measure can have. Options  Measure This defines what is measured.

as you can't use single quotes on both sides of the "find:replace" pairs. Substitute="None":'"' will replace the word None with a quote. so it needs to go below the defined value before the action is executed again. Substitute="cat":"dog" would change all "cat" to "dogs" in the measured value. It is also possible to use ###BOT_TEXT### to embed the whole matched section of the string. Example: Substitute='"':"None" will replace a quote with the word None. How an action is formatted varies somewhat depending on which !Bang is being used.3}$":". So Substitute='"':"" would remove all quotes from the text.. You may substitute quote characters in Substitute= statements. when AverageSize=10 ..{10. or the Substitute will fail. or what an external application expects. which will fail."  AverageSize Defines the window size of average measuring.g.3}). Options  IfAboveAction A bang or command that is executed when the measure goes above the value defined in IfAboveValue. You must use quotes around the values! E.(\d{1.. Measures-IfActions Measure IfActions are commands you add to a measure to have Rainmeter take some action when a defined "above/equal/below" threshold value is returned by the measure.3}). then the first two characters with "This".(\d{1. or even execute some external command. Examples: Replace a 2 digit number with "It Works".***" Truncate string by length and append ". the returned value is the average of last ten values. it is possible to use Regular Expressions within the substitute string. Substitute A list of comma separated value pairs that can be used to change certain values to another. resulting in "This Works": "\d\d":"It Works".":"This"  Mask a IP address: "^(\d{1. then these can be referenced by number in the replaced string using . several !Bangs at once.. The rules can be found at the Bangs page. However.": "^(. You must capture any parts of the string you want using parentheses. An easier to read example is Substitute='red':'blue' ... The action is executed only at the moment when the measure exceeds the value.3}). Substitute='"':'None' will fail. etc.. The section of the original string which is matched by the expression is replaced by the contents of the second part of the substitute pair. .}).\d{1. You can have Rainmeter run a built-in !Bang. For example. Note: Single and double quotes MUST be "mismatched" on the "find:replace" pairs when using single quotes as a delimiter. This is done by using single quotes to surround the first part of the "find":"replace" pair. RegExpSubstitute If set to 1.+$":"."^. This second part can have parts of the original string embedded within it.

which is incremented on every update.  Operators           + (addition) . IfAboveValue The value used by IfAboveAction. You can use the names of other measures as variables. so it needs to go above or below the defined value before the action is executed again. The action is executed only once when the measure is equal to the value. Options  Formula This defines the formula to be calculated. The action is executed only at the moment when the measure falls below the value.  IfEqualValue The value used by IfEqualAction. When UpdateRandom=0 a random number is set on refresh.(substraction) * (multiplication) / (division) ** (power) % (remainder or modulus) & (bitwise and) | (bitwise or) ^ (bitwise xor) ~ (bitwise not) Logical Operators   <> (not equal) = (equal to) . Example Skin Measures-Calc The Calc measure is used to calculate formulas. There is also a special variable called Counter. UpdateRandom When UpdateRandom=1 a new random number is set on each update cycle. The variables are updated only after all other measures are updated. so it needs to go above the defined value before the action is executed again. so the values are always one update cycle behind.  IfEqualAction A bang or command that is executed when the measure is equal with the value defined in IfEqualValue.  IfBelowAction A bang or command that is executed when the measure goes below the value defined in IfBelowValue.  IfBelowValue The value used by IfBelowAction. The value is rounded to full integer.

SIN(x).Absolute value of x.Pi (~3. This is equivalent to the following if-then-else statement: if (condition) then expr. TRUNC(x) .Returns ex. Precision is optional.234) = 0. Other Bases .234) = 1).g. the expression to the left of the colon (:) is evaluated.) E . if true. or decimal.14159265. TAN(x) .Standard trigonometric functions ABS(x) . LOG(x) . FRAC(x) .. If it is true. ASIN(x).Ceiling of x.Base 10 logarithm of x.> This will evaluate condition as being either true or false. part (e.Square root of x. -1 if x is negative. SQRT(x) .Integer par (e.71828182. the expression to the right is evaluated.Floor of x.Euler's constant (~2. FRAC(1. if false end if Random Function The word RANDOM returns a random number between the values of "LowBound" and "HighBound" defined in the measure. if false.> : <expr. SGN(x) . or to a specified number of decimal places.. TRUNC(1. If it is false.precision]) . ACOS(x). Constants   PI .. CEIL(x) . FLOOR(x) .234).Natural logarithm of x. LN(x) . ROUND(x[. if true else expr.Fractional.g..    > (greater than) < (less than) && (logical and) || (logical or) Functions             ATAN(x).) Conditional Operator <condition> ? <expr.Rounds x to an integer. EXP(x) .Return 1 if x is positive. COS(x).

The Calc measure allows numbers to be represented numbering systems other than decimal..returns 54 in decimal)  0o . Label If set to 1 this returns the label of the drive.. removable drives are measured. which are case (lower) sensitive:  0b .returns 83 in decimal)  0x . the average of all cores will be returned.) of the processor core to be measured.returns 241 in decimal) Example skin Measures-CPU Returns the percentage used of the entire CPU or individual cores. . Options     Drive This is the drive for which the disk space is measured. If set to 0. The following are accepted prefixes. 2. removable drives are ignored. If set to 0 (default). Example Skin Measures-FreeDiskSpace FreeDiskSpace returns usage statistics for the selected drive. prefix the number with a zero then the letter representing the system you wish to use. Options  Processor Can be set to the number (1.Binary number (base 2) (ex: 0b110110 . To use another base. Note: FreeDiskSpace does not support CD or DVD drives other than Type and Label.Octal number (base 8) (ex: 0o123 . Be sure to set IgnoreRemovable=0 if you want to measure a USB drive.Hexadecimal number (base 16) (ex: 0xF1 . (eg: "C:") Total If set to 1 this returns the total size of the drive. Type If set to 1 this returns the type of the drive.  . String >> numeric return: o Error >> 0 o Removed >> 1 o Removable >> 3 o Fixed >> 4 o Network >> 5 o CDRom >> 6 o Ram >> 7 IgnoreRemovable If set to 1 (default).

TrafficAction Action to be executed when a certain amount of data has been downloaded.  NetInSpeed The maximum speed of your network connection input. etc. TrafficValue The value used by TrafficAction.Example Skin Measures-Memory Measures the amount of virtual memory free in bytes. Example Skin Measures-NetInOut Measures various types of network traffic. the maximum value is determined from the input. If this value is omitted or set to zero.e. NetIn Measures incoming network traffic. TrafficAction Action to be executed when a certain amount of data has been uploaded. the maximum value is determined from the input. Virtual memory is equal to Pagefile + RAM + RAM. If this value is omitted or set to zero. The value is given in bits per second. Interface The index of the measured NIC. If this is set to 0 (default) all interfaces are added together. adds the measured values together). This can be used to measure the total amount of transferred data during certain period of time. Value 1 means the first NIC. Watch out for peaks. Cumulative If set to 1. . the measure gathers cumulative value (i. The value is given in bits per second. 2 the second.     NetOut Measures outgoing network traffic. Options  Total If set to 1 this returns the total memory.    NetOutSpeed The maximum speed of your network connection output. TrafficValue The value for the TrafficAction.

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 may also use a 3rd-party plugin developed for Rainmeter but not included with the installation. Example Skin Measures-Plugin A plugin in Rainmeter is a dynamic link library (. If this is set to 0 (default) all interfaces are added together.  NetTotalSpeed The maximum speed of your total network connection. Each plugin in turn has its own settings that must be placed in this section. Simply place the new plugin . the maximum value is determined from the input. The value is given in bits per second. etc. 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. See Plugins to learn more on the plugins included with Rainmeter and what settings are required for each. This can be used to measure the total amount of transferred data during certain timeperiod.  TrafficValue The value for the TrafficAction. Value 1 means the first NIC. Value 1 means the first NIC.  Cumulative If set to 1. If this value is omitted or set to zero.dll) program specifically written to provide additional functionality not built into Rainmeter.dll file into the Plugins folder under the location of your Rainmeter. 2 the second.exe and the new plugin can be used like any of the default ones. 2 the second. Example Skin Measures-PhysicalMemory Measures the amount of physical RAM memory free in bytes. adds the measured values together). If this is set to 0 (default) all interfaces are added together.  Interface The index of the measured NIC.  Interface The index of the measured NIC.  TrafficAction Action to be executed when a certain amount of data has been uploaded and downloaded.e. Cumulative If set to 1. NetTotal Measures total network traffic. Options  Total If set to 1 this returns the total physical memory. the measure gathers cumulative value (i. A plugin is used in Rainmeter with the specific measure type Measure=Plugin. etc.

etc. Bar. where Rainmeter. If it is REG_DWORD it is a number.. Options  Plugin The path and name of the plugin relative to the program folder.exe is (e. Only string and long values are supported..you are using. You may not use a 32bit plugin with 64bit Rainmeter or a 64bit plugin with 32bit Rainmeter. Even if the value is entirely numeric. you will notice the second column in the right pane is called "Type". There are several different types. If the value is of type REG_SZ it means it is a string. Numeric string values from the registry can be used as a number if you convert them with a Measure=Calc. Plugin=Plugins\WebParser. it will still be read as a string.g. RegValue The name of the registry key's value. [MeasureRegistry] Measure=Registry .and the two supported by Rainmeter .dll ).are REG_SZ and REG_DWORD. meters like Line. 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.exe to the location you are trying to read. [MeasureStringToNum] Measure=Calc . Options  RegHKey The name of the HKEY. but the two most common . Histogram.   Registry data types If you open Regedit. Example Skin Measures-Registry Provides a way to read data from the Windows Registry. Possible values are: o HKEY_CURRENT_CONFIG o HKEY_CURRENT_USER o HKEY_LOCAL_MACHINE o HKEY_CLASSES_ROOT o HKEY_PERFORMANCE_DATA o HKEY_DYN_DATA RegKey The name of the registry key. will not recognize the value.

A Lua script can do programming that would be difficult or impossible in native Rainmeter code. send bangs. The argument must be valid Lua code and will be executed in the context of ScriptFile. Options  Total If set to 1 this returns the total swap memory. This guide should be carefully read before creating a skin using the Script measure.Formula=[MeasureRegistry] MinValue=0 MaxValue=100 DynamicVariables=1 Example Skin Measures-Script The Script measure allows the execution of Lua (a scripting lanague) code. Options  ScriptFile Name of valid Lua script file. Example Skin Measures-Time Measures the current time/date. . Measures-SwapMemory Measures the amount of virtual (swap) memory free in bytes. and can return values or change settings in the Rainmeter skin. A full explanation of how to use this measure type with the Lua scripting language can be found at Lua Scripting. The Lua script can be used to retrieve the values of measures. and more. Bangs The Script measure can be controlled with the !CommandMeasure bang.

TimeZone=+2.Year with century.59) %p .Either the time-zone name or time zone abbreviation.Date and time representation appropriate for locale %d .Hour in 12-hour format (01 .12) %j . Format codes Full details on Time/Date formatting codes can be found at msdn. You can also use "locale-time" and "locale-date" to use the format that is used currently in Windows.Hour in 24-hour format (00 . as decimal number %z.59) %U .53) %x . indicator for 12-hour clock %S .Date representation for current locale %X .0 ). . with Sunday as first day of week (00 . as decimal number (00 . The default is Format="%4!i!d %3!i!:%2!02i!" .Second as decimal number (00 .Abbreviated weekday name %A . Options  Format Format to display the output. %a .g. If this is not given the local time is used.Current locale's A.Time representation for current locale %y .g. Sunday is 0) %W .microsoft. depending on registry settings %% . %Z . the daylight saving time is applied to the time (it depends on your local time).Options    Format The format how the time is written (e. with Monday as first day of week (00 .366) %m .Minute as decimal number (00 .Year without century.Day of month as decimal number (01 .Abbreviated month name %B .M.99) %Y .6.A "#" character used before a code (%#d) will removing leading zeros from the result.Weekday as decimal number (0 .Percent sign # ./P.Full month name %c .12) %M .Month as decimal number (01 .Day of year as decimal number (001 .31) %H . Example Skin Measures-UpTime Returns the amount of time since the last restart of the computer. This is only used if the TimeZone has been set.53) %w . DaylightSavingTime If set to 1.23) %I . You can use also fractional values.Week of year as decimal number. Format="%H:%M:%S" ).Week of year as decimal number.com. TimeZone The timezone value (e.M.Full weekday name %b .

Each meter needs to have a unique name. Meters by default are evaluated and displayed in the order they are in the skin . If you drag the entire skin to another location.o %4 . The valid values are: o BAR o BITMAP o BUTTON o HISTOGRAM o IMAGE o LINE o ROTATOR o ROUNDLINE o STRING MeterStyle The name of a [Section] containing settings for meter attributes you wishto share with multiple meters. The manual pages for each describe them in detail. See MeterStyles for details. the meter will remain positioned 0 pixels from the left edge of the skin. Example Skin Meters Meters are the sections that tell Rainmeter how to display information.Putting this after the format code shows the numbers with no leading zeros o !02i! .Minutes o %1 . Example Skin Meters-GeneralSettings The following are setting which apply to all meter types. with settings specific to each type. set AddDaysToHours to 0 (default 1).ini file.Putting this after the format code shows the numbers with leading zeros  AddDaysToHours If %4 (days) is not included in the Format statement. 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. There are many different types of supported meter types in Rainmeter. It does not matter what the name is as long as there are no spaces and it is not used elsewhere within the same. So a meter with a setting of X=0 will be positioned 0 pixels from the left edge of the skin it is in.Days o %3 . which should be put inside [Square Brackets].ini file. irregardless of where the skin is on the screen. %3 (hours) will be incremented by days * 24.Hours o %2 . Options  Meter Indicates the type of the meter.Seconds o !i! .  . To disable this.

X The X-position of the meter inside the window.        Meters-ColorCodes Rainmeter uses colors in the settings of many different meters. H The height of the meter.     MeasureName The name of the measure that this meter displays the returned value for.0. The default value is 1. The coordinates can be made relative to the previous meter by adding 'r' to the end of the number (e. W The width of the meter.0. It can be written either as 3 or 4 comma-separated values from 0 to 255 (e. The value is given in RGB(A) format: Red. o 0 . In that case the value must be surrounded with parenthesis (e.No bevel (Default) o 1 . Green. Hidden If set to 1.g. The coordinates can be made relative to the previous meter by adding 'r' to the end of the number (e. Y. UpdateDivider This value modifies the update rate of the meter. If it is not set. the meter is updated every 30 seconds. the meter is hidden.g. For example. The global Update value (set in the [Rainmeter] section) is multiplied by this number to determine the update rate for the meter.  FontColor .g. It is not necessary to define this if the width can be calculated from an image or if you are using a STRING meter.g. You can also use capital R which makes the position relative to the bottom edge of the previous meter. X=5r).Raised o 2 . BevelType This draws a beveled edge around the solid background. W and H. The angle is defined in degrees. SolidColor=255. GradientAngle The angle of the meter's background color gradient. Blue and an optional Alpha value. This setting is not required if the meter is not going to use values from a measure. the background is completely transparent. SolidColor2 An optional second color for the meter's background to create a gradient. 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. or in hexadecimal format (e. You can also use capital R which makes the position relative to the right edge of the previous meter.g. This can also be left undefined under the same conditions as W. Note: You can use math formulas with X. the meter is drawn as antialiased. SolidColor The color of the meter's background. if the Update is set to 1000 and the UpdateDivider is 30. Y=(300/3) ). SolidColor=FF000080 ). Y=-10r).128 ). such as a String or Image meter not needing information returned by a measure. This follows the same format as SolidColor. Y The Y-position of the meter inside the window.Sunken AntiAlias If set to 1.

GGG.0.255 or 808080FF Half-transparent green is 0.0.128 or 00FF0080 Meters-MeterStyle MeterStyles allow CSS-like common "styles" for meters. green. Examples Solid opaque red is 255. If you want a meter to be invisible but still seen by Rainmeter. The BBB component controls the intensity of blue ranging from 0 to 255 (full saturation).        FontEffectColor SolidColor PrimaryColor SecondaryColor BothColor BarColor LineColor HorizontalLineColor Color codes in Rainmeter are based on RGBA. but will not be seen by Rainmeter at all for the purpose of mouse actions. This allows you to centralize common parameters for meter into a single section. with 00 being transparent and FF being fully opaque. and alpha. with FF being full saturation..AAA The RRR component controls the intensity of red ranging from 0 to 255 (full saturation). or fully opaque. You may leave off the alpha value. The values can be entered either using a set of four numbers ranging from 0 to 255 in either decimal or hexadecimal form. The GG component controls the intensity of green in hex.  Decimal format: SolidColor=RRR.128.255.0. ). The AAA component controls the transparency ranging from 0 (transparent) to 255 (full saturation).e. The GGG component controls the intensity of green ranging from 0 to 255 (full saturation). Multiple styles can be used by separating them with a pipe (i. The AA component controls the transparency in hex.0. and Rainmeter will default to 255 / FF. which stands for red. . The BB component controls the intensity of blue in hex. with FF being full saturation.128. use an alpha of 1. A style is just another section (it can even be a meter). blue. then the element using he color will not only be invisible.. with FF being full saturation. Note: If you use an alpha of 0.  Hexadecimal format: SolidColor=RRGGBBAA The RR component controls the intensity of red in hex. Style1 | Style2 | .BBB.255 or FF0000FF Solid opaque blue is 0.255 or 0000FFFF Solid opaque grey is 128. Using the MeterStyle option will essentially cause the specific meter to inherit all applicable properties from the given style. A online color picking tool which will provide the RGB and HEX codes for a color can be found at Rainmeter Color Picker.255.

This generally means you have used an attribute like StringStyle=Bold on a font that doesn't support it. try removing them to see if that is the issue. but almost none of these are free. but not ALL fonts can be modified at run time in Rainmeter with StringStyle.otf (OpenType) font.  You must use the "Family Name" of the font. that second one may not be used as a MeterStyle for a third. that you can convert this file using FontConverter. This can involve a bit of trial and error. It gives an error. There are a couple of ways Rainmeter will react if it hates your font for some reason.   Installing fonts Install the font by right clicking it and selecting "Install Font". it is possible. There isFontForge.otf file.otf fonts can successfully be converted and used.ttf file and at the very top in the Windows font viewer see the "Font Name:" at the top left. like "Can't create font" and the meter fails entirely. StringEffect. Fonts can either be installed directly into Windows (allowing the font to be available to all installed programs) or you can use the LocalFont option (under the [Rainmeter] section) to restrict the font to Rainmeter only (and not require a separate install). Once you have converted the file. Note: Rainmeter must be restarted after installing fonts in order for Rainmeter to detect the change. Use the font with the Family Name in a Meter=STRING meter. It may give no error. Even better results can be had with a font conversion tool like FontCreator. 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.otf font. but not certain. but in this example FontFace=MyFont is the mostly likely correct entry. and not a . I have found that about 70-80% of . Example Skin Meters-ANoteOnFonts Fonts are used in String meters through the FontFace option. Using fonts  The font must be a . If you have downloaded a . this also has a "gotcha". try using it. This will be what happens if you use a . This can be found by double clicking the font . If you have problems with a font using these settings. but display the default Arial instead of your font. Most.Note: You may not "daisy chain" MeterStyles. Many fonts have subfamily names that are appended on the "Family Name" in Windows font viewer. In other words although a meter may be used as a MeterStyle for another meter.com online. or there is just a problem with the font itself that causes Rainmeter to fail in loading / using it. but this must be run in a unix environment and while it can be done with the CygWin unix-in-windows utility. etc. this is NOT for the faint of heart or new Windows user. Now. This will install the font in Windows\Fonts and it will be available in Rainmter and all other Windows applications.ttf (TrueType) font. or if you use the wrong "Family Name" for the font. .

ToolTipIcon (optional) This specifies an Icon to be placed in the tooltip.[MeterName] Meter=String FontFace=MyInstalledFont Using LocalFont Place the actual . as appropriate for various meter types: o Line.. Note: You may use more than one LocalFont in [Rainmeter] by simply adding a number: LocalFont2. 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. This can only be one line. . Options  ToolTipText (required) The text you wish displayed. Use the LocalFont="Path\FileName.. %2.ico file or one of these preset icons: o INFO o WARNING o ERROR   . [Rainmeter] LocalFont="#CURRENTPATH#SomeFont. %2 etc. This setting must be defined to use a ToolTip. . %2 o Others: %1 ToolTipTitle (optional) This sets a bold title for the tooltip.ttf [MeterName] Meter=String FontFace=MyLocalFont Example Skin Meters-ToolTips This creates a ToolTip which appears when you hover the mouse over the meter. This can include dynamic variables and measures as long as DynamicVariables=1 is set. If you wish to spread the text across multiple lines. This can be the full path to a . o Histogram: %1.ttf font file in a folder. Values of MeasureName can also be used in the %1. Then use the Family Name in FontFace=xxx as normal. String: %1.. LocalFont3.ttf" option in the [Rainmeter] section of your skin. %3. add the built-in variable #CRLF# at the point you want a line break.. so #CRLF# will not work here.

Translate vertically Combining these can have drastic effects on the meter it is applied to. ToolTipWidth (optional) This allows you to specify the maximum width of a tooltip.0.c. this is 0. the values have the following effects:  a . Note: As a ToolTipTitle cannot be wrapped.0.0. a regular tooltip. do not set this width less than the length of the title. ToolTipType (optional) This defines the style of the tooltip. or there could be unexpected results. the ToolTip is not displayed. ToolTipHidden can also be used in the [Rainmeter] section to hide all tooltips in the skin.f correspond to the following matrix: |a c e| |b d f| In short. ToolTipHidden (optional) If set to 1.1. TransformationMatrix=1.b.Scale vertically  d .1.Skew along the x-axis  e .d. move) horizontally  f . read this forum thread.Translate (i.0. the text will automatically wrap.e.  Meters-TransformationMaxtrix This defines a 3x2 matrix which can be used to transform the meter. When the width is reached.  o QUESTION o SHIELD (Windows Vista and newer) To use an icon in your tooltip you must also define ToolTipTitle. For more comprehensivev information on TransformationMatrix.0 ).Skew along the y-axis  c . 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.e. There must be exactly 6 values separated by semicolons (e. Otherwise the icon will not be displayed.0. The default is 1000 pixels.g. by default. The values a.0 Flip Y along line y=50: |1 0 0 | |1 0 0 | |0 -1 2*y| = |0 -1 100| . If set to 1 the tooltipwill appear as a balloon.Scale horizontally  b .40.

0.0.5 0 0.-1.5 0 25| 1 0 | | = |0 TransformationMatrix=0. 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. ImageTint The color to tint an image. Origin . Changes to the bitmap are applied in the following order: ImageCrop -> GreyScale -> ImageTint -> ImageFlip -> ImageRotate.100 Scale X by 0. Origin is optional and can be set to one of the following: o 1 . BarBorder If an image is used.0. H. The amount the bar is filled corresponds to the relative value of the measure.1. this determines the number of pixels on either side of the image that are always drawn (i. This can be used instead of the BarColor. ImageCrop Crops the image. 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.e.Bottom right o 4 . The colors are given in the same manner as SolidColor: RGB(A).0 to 1.25.Center (both W and H) Greyscale If set to 1.Bottom left o 5 . 255 mean fully   .5. Options     BarColor The color of the bar.0. left and right margins for horizontal bars). The parameters are ImageCrop=X. The colors are given in the same manner as with SolidColor: RGB(A). This might change in the future though.Top left o 2 . Bar graphs require that the measure being used is from 0.TransformationMatrix=1. Meter-Bar Bar meters display the value of a measure in a single vertical or horizontal bar.0 or has both MaxValue and MinValue set. the image can be made semi-transparent (0 means invisible.Top right o 3 . top and bottom margins for vertical bars.5 (at x=50): |0. Y.5*x| |0 1 0 |0.0. If the alpha value is specified.0 Note: All transformations are relative to the top left corner of the window and not to the meter itself. W. BarImage The image that is used behind the bar. the image will be greyscaled.

0 ColorMatrix2=0. 0. The default matrix is as follows:        ColorMatrix1=1. each numbered. where 0. this value will override the Alpha parameter in the ImageTint setting. Default value is white (255. 1 will add 50% to the red value). Note: If you combine Greyscale and ImageTint you "recolor" the image to the defined color. where 0 is completely invisible and 255 is completely opaque. 0.  ImageAlpha Change the opacity of the image.  BarOrientation The orientation of the bar. HORIZONTAL. 0. Alpha and a placeholder. 0. Green. ImageRotate Rotates an image by the defined number of degrees. 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). if the image a strip of 5 images. 1 The values on the main diagonal are. 255. If set. Changes to the bitmap are applied in the following order: GreyScale -> ImageTint -> ImageFlip.0 is normal. 0. 0. Each frame is shown as the relative value of the measure attached to it reaches the relative position of the pieces. 0. 0. Valid values are HORIZONTAL or VERTICAL. from 20 to 39% the second frame is show. Blue.0 is none and 1. 1. 0 ColorMatrix4=0. It is divided into five separate parameters. or are used to show stylized numbers. 0. when the measure is between 0% and 19% the first frame is shown. ImageFlip Values are NONE. and so on. (ex: ColorMatrix5=0. from top-left to bottom-right: Red.5. 0. one for each row. 0. More information on ColorMatrix is available at ColorMatrix Unleashed. Negative numbers rotate counter-clockwise. 0 ColorMatrix5=0. Values range from 0 to 255. you "add" the defined color to the image. creating a "tint". Bitmaps are often used with counters to display animations. 0. 1. 255) which in effect means "no change". 0. 255. 0. 1. Options . 0.opaque). Example Skin Meter-Bitmap The Bitmap meter takes an image and divides it into equally-sized frames. For example. if you use ImageTint alone. 0 ColorMatrix3=0. VERTICAL or BOTH. ColorMatrixN The ColorMatrix parameter represents a 5x5 matrix used to manipulate the color values of the image. The values represent the percentage of of the particular value present in the image. with the entries in the final row (ColorMatrix5) determining offset values that are added directly to the color.  Flip Set to 1 to flip the direction of the bar.

Note: If you combine Greyscale and ImageTint you "recolor" the image to the defined color. 255. then BitmapFrames should be set to 50 and BitmapTransitionFrames to 4. if the bitmap has 10 values and each transition consists of 4 additional frames. Works only when BitmapExtend is set to 1. HORIZONTAL. 0. VERTICAL or BOTH. you "add" the defined color to the image. 0. BitmapDigits Number of digits that are drawn. 255 mean fully opaque). So. 255. 0.0 to 1. Default value is white (255. ColorMatrixN The ColorMatrix parameter represents a 5x5 matrix used to manipulate the color values of the image. ImageFlip Values are NONE. ImageTint The color to tint an image. The colors are given in the same manner as SolidColor: RGB(A). the size of one frame is calculated automatically so you need to crop the image so that there is no extra space around the frames. Also. Note that BitmapFrames will always define the total number of frames in the bitmap. 0. one for each row. This can also be a negative number. BitmapSeparation Separation between digits when BitmapDigits is higher than one. 255) which in effect means "no change". The same number of transition frames must be used after each regular frame. then bitmap meters require that the measure being used is from 0. gif. If the alpha value is specified. BitmapAlign Defines the alignment of the bitmap value. BitmapExtend If set to 1 the bitmap is extended so display the whole value. 0. The total duration of the transition animation is therefore TransitionUpdate * BitmapTransitionFrames. each numbered. The image can be any supported format: bmp. 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. BitmapFrames The number of frames in the image. The TransitionUpdate setting in the [Rainmeter] section determines the rate at which the frames are displayed during the transition. The orientation is determined automatically form the height or the width of the bitmap (whichever is larger).0 or has both MaxValue and MinValue set. CENTER and RIGHT. 0 ColorMatrix3=0. 0. 0. It is divided into five separate parameters.         BitmapImage This is the name of the image that holds the image frames. for example. 0 . The first frame is used if the value doesn't have as many digits as this defines. the image can be made semi-transparent (0 means invisible. The default matrix is as follows:      ColorMatrix1=1. 1. 0 ColorMatrix2=0. Otherwise the frames are linearly determined by the measured value. The transition frames are frames which are displayed when the meter's value changes. the first frame is used only when the measured value is zero. 1. including the transition frames. if you use ImageTint alone. BitmapTransitionFrames The number of transition frames per value. creating a "tint". If BitmapExtend is not 1. Valid values are LEFT. BitmapZeroFrame If set to 1. jpg or png. The images can be laid horizontally or vertically in the bitmap. Works only when BitmapExtend is set to 1.

each numbered. A button can display a normal. 0. you "add" the defined color to the image. Note: If you combine Greyscale and ImageTint you "recolor" the image to the defined color. Blue. (ex: ColorMatrix5=0. the image can be made semi-transparent (0 means invisible. this value will override the Alpha parameter in the ImageTint setting. 0. Its entire purpose is to make the creation of buttons easier. ImageTint The color to tint an image. Green. ColorMatrixN The ColorMatrix parameter represents a 5x5 matrix used to manipulate the color values of the image. Changes to the button image are applied in the following order: GreyScale -> ImageTint -> ImageFlip. the image will be greyscaled. The second frame is shown when the button is clicked. ColorMatrix4=0. Example Skin Meter-Button The button meter cannot be bound to any measure. where 0 is completely invisible and 255 is completely opaque. creating a "tint". The values represent the percentage of of the particular value present in the image. The default matrix is as follows:      . Values range from 0 to 255. 0. If the alpha value is specified. It is divided into five separate parameters. with the entries in the final row (ColorMatrix5) determining offset values that are added directly to the color. ButtonCommand The command or !bang that is executed when the button is pressed. 0. If set. if you use ImageTint alone.0 is none and 1. The third frame is shown while the mouse is hovering over the button. clicked and hover state of an image and perform an action automatically.5. 255. More information on creating the bitmap images for buttons here. More information on ColorMatrix is available at ColorMatrix Unleashed. 0 ColorMatrix5=0. 0. 1 The values on the main diagonal are. 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). The first frame corresponds to he button's normal image. 0. 255. Default value is white (255. one for each row. Options  ButtonImage The name of the button image. from top-left to bottom-right: Red. 0. The colors are given in the same manner as SolidColor: RGB(A). 255) which in effect means "no change".0 is normal. ImageFlip Values are NONE.  ImageAlpha Change the opacity of the image. 1 will add 50% to the red value). Greyscale If set to 1. 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). 1. where 0. 255 mean fully opaque). 0. VERTICAL or BOTH. Alpha and a placeholder. HORIZONTAL.

0 to 1. 0. PrimaryColor Color for the primary histogram. 0 ColorMatrix3=0.0 is normal. It is not necessary to define this if the other meter is not needed. (ex: ColorMatrix5=0. with the entries in the final row (ColorMatrix5) determining offset values that are added directly to the color. Alpha and a placeholder. Changes to the images are applied in the following order: ImageCrop -> GreyScale -> ImageTint -> ImageFlip -> ImageRotate. SecondaryImage Name of the image that is used behind the secondary histogram. They require that the measure being used ranges from 0. 0. 0. This defines the measure for the secondary histogram that is drawn on the same meter. 0. Green. 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).0 or has both MaxValue and MinValue set. The values represent the percentage of of the particular value present in the image. 0 ColorMatrix5=0. 0. If set.once per update . BothImage Name of the image that is used when the primary and secondary histograms are on top of eachother. 0. 0. 0. 0. 0. So. 0. 0 ColorMatrix2=0.    ColorMatrix1=1. You can use either colors or images but not both at the same time.   . 1.0 is none and 1. this value will override the Alpha parameter in the ImageTint setting. Example Skin Meter-Histogram Histograms display values using vertical bars . from top-left to bottom-right: Red. 0. SecondaryColor Color for the secondary histogram. 1 The values on the main diagonal are. where 0. if you define PrimaryImage you must also define SecondaryImage and BothImage if you have a secondary measure in the same histogram. PrimaryImage Name of the image that is used behind the secondary histogram. 0. 0.5. More information on ColorMatrix is available at ColorMatrix Unleashed. 1 will add 50% to the red value). Options      SecondaryMeasureName or MeasureName2 The name of the secondary measure. Blue. The colors are given in the same manner as with SolidColor. BothColor Color that is used when the primary and secondary histograms are on top of each other. Values range from 0 to 255.  ImageAlpha Change the opacity of the image. where 0 is completely invisible and 255 is completely opaque.on a graph. 1. 0 ColorMatrix4=0. Not SecondaryColor or BothColor. 0. 1.

with the entries in the final row (PrimaryColorMatrix5) determining offset values that are added directly to the color. each numbered. 255. 0. Origin is optional and can be set to one of the following: o 1 . 0. More information on ColorMatrix is available at ColorMatrix Unleashed. the image will be greyscaled. (ex: PrimaryColorMatrix5=0. Alpha and a placeholder. The parameters are PrimaryImageCrop=X. SecondaryImageTint.Center (both W and H) PrimaryGreyscale. HORIZONTAL. 0. 255.Top right o 3 . the histogram is automatically scaled to show all the values.  Autoscale If set to 1. SecondaryImageCrop. BothImageAlpha Change the opacity of the image.Top left o 2 .Bottom right o 4 .   PrimaryImageCrop. 0. 1. It is divided into five separate parameters. BothImageTint The color to tint an image. SecondaryImageAlpha. 0. 0. 0. The colors are given in the same manner as SolidColor: RGB(A). The default matrix is as follows:        PrimaryColorMatrix1=1. 0. W. from top-left to bottom-right: Red. the image can be made semi-transparent (0 means invisible. PrimaryImageRotate. 255) which in effect means "no change". The values represent the percentage of of the particular value present in the image. one for each row. BothGreyscale If set to 1. Values range from 0 to 255. Note: If you combine Greyscale and ImageTint you "recolor" the image to the defined color.  Flip If set to 1 the meter is flipped upside-down. 1. If the alpha value is specified. 1 will add 50% to the red value). 0 PrimaryColorMatrix3=0.5. Green. Default value is white (255. If set. PrimaryImageTint. if you use ImageTint alone. you "add" the defined color to the image. VERTICAL or BOTH. 1 The values on the main diagonal are. 0 PrimaryColorMatrix5=0. Blue. Y.Bottom left o 5 . 0 PrimaryColorMatrix4=0. SecondaryImageFlip. Negative numbers rotate counter-clockwise. 0. 0. SecondaryColorMatrixN. 0. SecondaryImageRotate. 1. BothImageRotate Rotates an image by the defined number of degrees. where 0. 0. SecondaryGreyscale. PrimaryImageFlip. where 0 is completely invisible and 255 is completely opaque. Origin . PrimaryColorMatrixN. 0 PrimaryColorMatrix2=0. BothImageFlip Values are NONE. this value will override the Alpha parameter in the ImageTint setting.  PrimaryImageAlpha. H. creating a "tint". 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). BothImageCrop Crops the image. 255 mean fully opaque).0 is normal. Example Skin . BothColorMatrixN The ColorMatrix parameter represents a 5x5 matrix used to manipulate the color values of the image. 0. 0.0 is none and 1. 0.

the image has antialias interpolation routines applied to it when displayed. Changes to the image are done by applied in the following order: ImageCrop -> GreyScale -> ImageTint -> ImageFlip -> ImageRotate. ImageName can also be the result of values returned by one or more measures:    Meter=IMAGE MeasureName=SomeMeasure MeasureName2=SomeMeasure2 ImageName=%1-%2.png extension is used as the image. setting that to the user defined value. and the image scaling is done on each update of the measure used. and it will scale the image to the exact specified size. 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. with the other undefined "aspect" being automatically scaled to preserve the aspect ratio. o You can specify W or H alone with PreserveAspectRatio=1 . 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. Set to 0 by default. You can specify both W and H with PreserveAspectRatio=0 . the aspect ratio of the image is preserved when the image is scaled. Origin . and the image will be scaled by using the larger of the width or height dimensions in the original image. o You can specify both W and H with PreserveAspectRatio=1 .Top left o  .Meter-Image The Image meter is used to show images. o Image meters can use [MeasureName] as the value of either W or H or both. It does not necessarily need to be tied to a measure and is often used just to display a specific image for aesthetic purposes. Aspect ratio is not preserved. it will try to display the image whose filename corresponds to the value of the measure.png    If ImageName is not specified. Path Location of the the image relative to the skin's folder. W. Origin is optional and can be set to one of the following: o 1 . and the image will be scaled to the given value. Y. and setting the other "aspect" to what is needed to preserve the aspect ratio. Options  ImageName Name of the image to be displayed. o In all cases the image is "centered" in the meter defined by W and H. PreserveAspectRatio If set to 1. 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. However. AntiAlias If set to 1. ImageCrop Crops the image. the value of MeasureName appended with the . The parameters are ImageCrop=X. when used with a measure.

0.5. the image can be made semi-transparent (0 means invisible. 1. o 2 .0 is none and 1. 10. 0. ImageFlip Values are NONE. the image will be greyscaled. 0. Alpha and a placeholder. Values range from 0 to 255. 0 ColorMatrix3=0. 0. 1 will add 50% to the red value). Negative numbers rotate counter-clockwise. from top-left to bottom-right: Red. The values represent the percentage of of the particular value present in the image. top. (ex: ColorMatrix5=0.Top right o 3 . this value will override the Alpha parameter in the ImageTint setting. 0 ColorMatrix2=0. 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). 0. It is divided into five separate parameters. 50. 255. ColorMatrixN The ColorMatrix parameter represents a 5x5 matrix used to manipulate the color values of the image. 0. 0. bottom (Example: ScaleMargins=10. The default matrix is as follows:         ColorMatrix1=1. 1. 255 mean fully opaque). Blue. 0. If the alpha value is specified. Tile Tiles (repeats) an image within the bounds set by W and H on the image meter. if you use ImageTint alone.0 is normal. ImageTint The color to tint an image.Center (both W and H) ScaleMargins Allows a definition of margins on an image. 255. 0.Bottom left o 5 . The colors are given in the same manner as SolidColor: RGB(A). Note: If you combine Greyscale and ImageTint you "recolor" the image to the defined color. 1. 0. 0. 0. Greyscale If set to 1. creating a "tint". right. each numbered. 50 )   Note: ScaleMargins is only allowed if Tile and PreserveAspectRatio are not used. 0 ColorMatrix5=0. where the image will not be scaled by the meter's W and H settings. Example Skin . 1 The values on the main diagonal are. 0. Default value is white (255. ScaleMargins=left. If set. one for each row. HORIZONTAL. Green.Bottom right o 4 . 0. ImageRotate Rotates an image by the defined number of degrees. with the entries in the final row (ColorMatrix5) determining offset values that are added directly to the color. 0. 0 ColorMatrix4=0. where 0 is completely invisible and 255 is completely opaque.  ImageAlpha Change the opacity of the image. VERTICAL or BOTH. you "add" the defined color to the image. 255) which in effect means "no change". More information on ColorMatrix is available at ColorMatrix Unleashed. where 0.

with numbers added for subsequent lines). Origin . the meter's scale is taken from the largest max value of the all of the measures used.Top right . Options  LineCount Number of lines in the meter. Note that the number for the first line is never given (i.Meter-Line The line meter shows the values of a measure as a graph with a line connecting each data point.0 to 1.0 to 1. Line meters require that the measure being used is from 0.. Any number of lines can be shown depicting as many measures with a single meter.  HorizontalLines If set to 1 horizontal lines are drawn behind the histogram lines. MeasureName.. There can be any number of lines in the same meter.. Origin is optional and can be set to one of the following: o 1 . The name of the measure for the line N. all overlapping. Rotator meters require that the measure being used is from 0.  Scale.. Options   ImageName Name of the image to be rotated. If set to 0. The measured value is multiplied by this value. MeasureName2. The scale of the line N. Scale2. The color of the line N. LineColor and Scale are all used for the first line.  Flip If set to 1 the meter is flipped upside down.  LineWidth The width of the line in pixels. LineColor2. . .. The parameters are ImageCrop=X. . Y.  MeasureName.  HorizontalLineColor The color of the horizontal lines. H..Top left o 2 .  LineColor.  AutoScale If set to 1. the lines are automatically scaled so that the largest value is visible in the meter. Example Skin Meter-Rotator The rotator meter displays an image that rotates around a point where the angle of rotation is determined by the measure it is attached to. W. The colors are given in the same manner as with SolidColor: RGB(A). ImageCrop Crops the image.e. The colors are given in the same manner as with SolidColor: RGB(A).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.0 or has both MaxValue and MinValue set.

If set. 0.Bottom right o 4 . This can be used to draw analog clock. 0. 1. 0. 1. Blue. The default matrix is as follows:        ColorMatrix1=1. Example Skin .  StartAngle The start angle for the line.5. ImageFlip Values are NONE. creating a "tint". where 0 is completely invisible and 255 is completely opaque. 255. This is in radians and the zero angle at the right.0 is normal. VERTICAL or BOTH. 0 ColorMatrix5=0. 0. 0. 0.Center (both W and H) Greyscale If set to 1. 255 mean fully opaque). 0.0 is none and 1. 0. More information on ColorMatrix is available at ColorMatrix Unleashed. It is divided into five separate parameters. 0. Use negative value for counter-clockwise rotation.  ValueRemainder Use remainder instead of the actual measured value. 255) which in effect means "no change". 1.  o 3 . the image can be made semi-transparent (0 means invisible. 0. you "add" the defined color to the image. (ex: ColorMatrix5=0. ImageTint The color to tint an image. the image will be greyscaled.  ImageAlpha Change the opacity of the image. 1 will add 50% to the red value). one for each row. The colors are given in the same manner as SolidColor: RGB(A).  OffsetY Y-offset of the center of rotation.  RotationAngle The size of the rotation angle for the line. with the entries in the final row (ColorMatrix5) determining offset values that are added directly to the color. 0. Green.Bottom left o 5 . 0 ColorMatrix3=0. If the alpha value is specified. 0. each numbered.  OffsetX X-offset of the center of rotation. if you use ImageTint alone. 1 The values on the main diagonal are. 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). Negative numbers rotate counter-clockwise. this value will override the Alpha parameter in the ImageTint setting. where 0. Default value is white (255. 0 ColorMatrix4=0. The defualt rotation direction is clockwise. 0. Alpha and a placeholder. ImageRotate Rotates an image by the defined number of degrees. from top-left to bottom-right: Red. Note: If you combine Greyscale and ImageTint you "recolor" the image to the defined color. The values represent the percentage of of the particular value present in the image. 255. ColorMatrixN The ColorMatrix parameter represents a 5x5 matrix used to manipulate the color values of the image. Values range from 0 to 255. HORIZONTAL. 0 ColorMatrix2=0. 0. 0.

Use a negative value for counter-clockwise rotation.  ControlAngle. The default rotation direction is clockwise. 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=. .. no Text= statement is needed. Options  MeasureName. This can be used to draw an analog clock. If the width and height are not defined. . RotationAngle Unless ControlAngle is set to 0. The colors are given in the same manner as with SolidColor: RGB(A). the minimum position is pointing to the right.Meter-Roundline The roundline meter displays a single line that rotates around a point.. Roundline meters require that the measure being used is from 0. the measure controls the LineStart from LineStart to LineStart + StartShift. The length is always measured from the center of rotation (no matter what the LineStart value is). You can mix the results of measures and static text by using Text= combined with %1. to indicate the value of the measures used by the meter. This is in radians and the zero angle is at the right. If you are only displaying the result of a single measure.  ValueRemainder Use remainder instead of the actual measured value.  StartAngle The starting angle for the line. By default. The name of a measure to bind with the meter. the line then moves clockwise until it is pointing to the right again.  ControlStart. The angle of the line is determined by the measure. MeasureName2. LengthShift If ControlLength is set to 1.  LineColor The color of the line.0 to 1. Example Skin Meter-String String meters display the value of measures as text. The size of the rotation angle for the line.  Solid Set to 1 and the meter will draw a pie-chart instead. the measure controls the RotationAngle from 0 to RotationAngle. If width and height are specified.0 or has both MaxValue and MinValue set. the measure value controls the LineLength from LineLength to LineLength + LengthShift. it is in the middle of the bounding box. Options  LineWidth The width of the line in pixels  LineLength This defines the length of the line.  ControlLength. the center point is the at the X and Y position of the meter. StartShift If ControlStart is set to 1. %2 etc.  LineStart This defines the distance from the center at which the line starts.

Valid values are: o 0 . Example Skin Plugins .Scale by 1000 o 2k .  Angle This defines the angle of the text. for different measures.  Postfix String that is displayed after the value.Scale by 1024 o 1k . %2...  ClipString If set to 1 the width of the meter clips the string.  FontFace Name of the font. Note that this is not the name of the font's file. The value is given in radians. CENTER and RIGHT. The colors are given in the same manner as with SolidColor: RGB(A).  StringAlign The alignment of the string.  StringCase Sets the "case" of the string.) is added to the end of the string. The valid values are: NORMAL. SHADOW and BORDER. Note that the size and position of the text is still calculated as if the text were horizontal.  NumOfDecimals The number of decimals used in the displayed value. 1000. ITALIC and BOLDITALIC. M or k unit character. The valid values are: NONE.  FontEffectColor The color of the StringEffect.  Text The text that is displayed. An ellipsis (. PROPER. UPPER.Disabled (default) o 1 .  FontSize Size of the font. etc. The colors are given in the same manner as with SolidColor: RGB(A).Scale by 1000 (with kilo as lowest unit)  Percentual If set to 1.0) the resulting measured value is displayed as floating point value with one decimal.  Scale Scaling factor for the measured value. FontColor The color of the text. If the scale value has a decimal point (e.  Prefix String that is displayed before the value.  StringStyle Style of the string.  AutoScale Allows automatic scaling of values and appends the value with the appropriate T.  StringEffect Effect of the string. This setting overrides Scale. Width and height must be specified. the value is displayed as a percentage.Scale by 1024 (with kilo as lowest unit) o 2 . Use %1. If the height is large enough to allow for another row of text. but the font itself. instead of using the ellipsis. The measured value is divided with the scale value. Details on using fonts with Rainmeter can be found at A Note on Fonts. it will wrap the text into two or more lines. G. The valid values are: LEFT.g. The Valid values are NONE. so in order to get 1000 times smaller values just set the scale to 1000. LOWER. BOLD.

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. CPUExclude List of process names that are excluded from the cpu measuring. A plugin is used in Rainmeter with the specific measure type Measure=Plugin. Plugin-AdvancedCPU Plugin=AdvancedCPU This is similar to using PerfMon to measure the CPU usage except that you can filter out processes or only include some of them.exe and the new plugin can be used like any of the default ones. The include list must be empty to exclude something. Each plugin in turn has its own settings that must be placed in this section. The names are separated with semicolon (". On the METER displaying the results: Scale=100000 : Single Core Scale=200000 : Dual Core Scale=400000 : Quad Core Example Skin Plugin-CoreTemp Plugin=CoreTemp This plugin can retrieve the values measured by CoreTemp. Value 1 returns the CPU time for that process. You may not use a 32bit plugin with 64bit Rainmeter or a 64bit plugin with 32bit Rainmeter. Click on any of the plugins listed on the right to learn more about the plugins included with Rainmeter and what settings are required for each."-char). there are source code templates available for both C++ and C# coders. You may also use a 3rd-party plugin developed for Rainmeter but not included with the installation. Simply place the new plugin . Options    CPUInclude List of process names that are included in the cpu measuring.A plugin in Rainmeter is a dynamic link library (. Note that this returns CPU time and not the percentage. TopProcess Value 2 returns the name of the process that took the most CPU time since the last update."-char). Further information can be found at Developers.dll) program specifically written to provide additional functionality not built into Rainmeter. If you measure the value once per second you can scale the value with (100000 x the number of your CPU cores) to get the percentage but you should note that if the values cannot be measured exactly once per second (like it usually cannot because the timer in Windows is not accurate) you might get values larger than 100%. CoreTemp must be running in the background in order for the plugin to work.dll file into the Plugins folder under the location of your Rainmeter. A list of supported CPU's is available here. The names are separated with semicolon (". If you are interested in creating a 3rd party plugin for Rainmeter. The include list overrides the excludes. .

o MaxTemperature . conditional .Returns the maximum temperature value between all cores. The plugin uses Perl Compatible Regular Expressions. Example Skin Plugin-InputText Plugin=InputText InputText inserts user-supplied text into a one or more bangs. Example Skin Plugin-FolderInfo Plugin=FolderInfo FolderInfo. Valid values are: o Temperature .  CoreTempIndex This defines the index (or core) for the returned value.Size of found folders in bytes  RegExpFilter The regular expression used for including/excluding counted files. Disabled by default. o BusSpeed .Returns the CPU model name.  IncludeHiddenFiles If set to 1.Number of found folders o FolderSize . o CpuName .Returns the bus multiplier. and Load. so check the Perl docs for syntax and more info. hidden files are included in the count.Maximum allowed temperature rated by the manufacturer.dll can be used to count files in a folder.Options  CoreTempType Defines the return value. Options  Folder Path to the folder to watch.Number of found files o FolderCount .Returns the bus frequency. o BusMultiplier . and more. The indexing starts from 0 so if you want to return the second temperature value use CoreTempIndex=1 . o CpuSpeed .  InfoType Defines the return value: o FileCount .  IncludeSystemFiles If set to 1. The plugin works by defining a series of commands.  IncludeSubFolders If set to 1. o Vid . Disabled by default. which can be triggered by any "action" string (this includes mouse actions. o TjMax . Disabled by default. sub-folders are included in the count.Returns the current temperature value. their size.Returns the core load as percentage.Returns the core frequency. system files are included in the count. o Load . Must be used when returning Temperature.Returns the voltage value. TjMax.

This is advised for skins using languages which are read in the opposite direction. In addition. all input will be displayed as asterisks. and will default to opaque if omitted. ITALIC. StringStyle Additional text effect applied to text. SolidColor.actions in a Calc measure. the alpha value is optional. Password If Password=1. Usage: CommandN=[Command Before Input]$UserInput$[CommandAfterInput] [MeasureKey]="[Value]"          DefaultValue Text that will appear in the input box when it is created. the alpha value is optional.G. This string can be repeated. such as Arabic. FontSize. FontFace. As with all colors in Rainmeter. X The horizontal position of the input box. When all input has been submitted. Y. Command2.G. a free-floating text input box is created to gather user input at the specified points in the command series. the commands are carried out. 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. in pixels.B. in which case.A) or hexadecimal (RRGGBBAA) format.B. H The height of the input box.. BOLD. If aligned right.A) or hexadecimal (RRGGBBAA) format. The value must be placed in quotation marks if it contains spaces. FontColor. the cursor will move from left to right as text is typed. BOLDITALIC. Y The vertical position of the input box. As with all colors in Rainmeter. FocusDismiss (0/1) If set to "0". W The width of the input box. W. FontSize The size of text written in the input box. FontColor The color of text written in the input box in either normal (R. CENTER or RIGHT. relative to the top edge of the skin.. including the same measure). . Left is the default value. relative to the left edge of the skin. and other commands in an InputText measure. StringStyle and StringAlign. FontFace The font of text written in the input box. Note: LocalFont cannot be used to format an InputText box. Options  Command1. Note: X cannot be relative to the previous meter (as in "#r" and "#R"). SolidColor The background color of the input box in either normal (R. Password. The string $UserInput$ will be replaced by whatever the user types into it. Note: X cannot be relative to the previous meter (as in "#r" and "#R"). Valid values are NORMAL. The !Bang-command(s) to be performed when the plugin is triggered. X. When triggered. in pixels. multiple input boxes will be created in sequence. H. (default) the mouse is disabled on any other window element until ENTER or ESC is     . StringAlign Input text can be aligned LEFT. and will default to opaque if omitted.

reposition to the beginning of the current track or go to the previous track if already at start of current track o FastForward .toggle the playing/paused state of the current track o PreviousTrack . If set to "1". Press Escape to dismiss the input box without executing the script. clicking anywhere other than on the input field will "dismiss" the input without taking action. the quotes will be stripped from the command.   Although the bang !Refresh would normally only refresh the current skin. Options   DefaultArtwork Sets the default path (relative path to the skin's folder) for artwork returned by Command=GetCurrentTrackArtwork . no Rainmeter skin will respond to mouse actions. Bangs LeftMouseUpAction=!CommandMeasure "MeasureInputTextPlugin" "ExecuteBatch ALL X=100" IfAboveAction=!CommandMeasure "MeasureInputTextPlugin" "ExecuteBatch 3" Command4=!CommandMeasure "MeasureInputTextPlugin" "ExecuteBatch 2-4 Password=1" Notes:   Press Enter to submit user input. which means that the bang will perform a global refresh instead.pause playback o Play .disable fast forward/rewind and resume playback if playing . While an InputText box is open.skip forward in a playing track o NextTrack . Command Can be any of the following: Control Bangs: (no return value) o Backtrack . To only refresh the skin. Note: New skins should use the NowPlaying plugin as it supports multiple media players (including iTunes).play the currently targeted track o PlayPause .advance to the next track in the current playlist o Pause . user-input text may not include quotation marks.pressed.return to the previous track in the current playlist o Resume . Due to a limitation in Rainmeter. Try to avoid using this plugin for setting variables or other data that require quotation marks. Example Skin Plugin-iTunes Plugin=iTunesPlugin This plugin can be used to remote control iTunes and get information from it. use !Refresh #CURRENTCONFIG#. InputText bangs are passed through Rainmeter itself. If it does.

 Send the bang to any iTunes measure with the command as an argument.rating (0 ~ 100) o GetCurrentTrackSampleRate .go to the iTunes Store home page Power .album o GetCurrentTrackArtist . !CommandMeasure "AnyiTunesMeasure" "NextTrack" The example skin below demonstrates both methods.return player position in seconds o GetPlayerPositionPercent .return artwork file path.stop playback GotoMusicStoreHomePage .file size o GetCurrentTrackTime .EQ preset name o GetCurrentTrackGenre . You can either one of the following methods. use in comibnation with DefaultArtwork.name o GetCurrentTrackRating . To control. execute !CommandMeasure "MeasureName" "" Note that an empty string "" is required when there are no parameters on !CommandMeasure.genre(category) o GetCurrentTrackKindAsString .track index o GetCurrentTrackYear . o o o o o o o o o o o Bangs iTunes can be controlled through !CommandMeasure statements.the length of the track o GetCurrentTrackTrackCount .turn the volume down 5% ToggleiTunes .show/hide iTunes window ToggleVisuals .sample rate o GetCurrentTrackSize .return player position between 0 ~ 100 String Values: o GetCurrentTrackAlbum .turn the volume up 5% SoundVolumeDown .bitrate o GetCurrentTrackBPM .artist o GetCurrentTrackBitrate .exit the iTunes application SoundVolumeUp .beats per minute o GetCurrentTrackComment .return sound volume between 0 ~ 100 o GetPlayerPosition .update the contents of the iPod UpdatePodcastFeeds .track count of the album o GetCurrentTrackTrackNumber .comment o GetCurrentTrackComposer .skip backwards in a playing track Stop . For example.update all podcast feeds (equivalent to the user pressing the Update button when Podcasts is selected in the Source list) Integer Values: o GetSoundVolume . Example Skin Plugin-NowPlaying .show/hide iTunes visuals UpdateIPod .year o GetCurrentTrackArtwork .open/close iTunes instance Quit .  Create a separate measure for each command that will be required.Rewind .composer o GetCurrentTrackEQ .file description o GetCurrentTrackName .

0 for inactive (player closed) and 1 for active (player open). All other meters and measures receive the actual value in seconds. 1 for playing. 1 if on.Percentage of track completed. o FILE .0 if repeat/loop track is off.Total length of track in seconds*. This should be left blank unless you want to override the default path or if you have a portable installation of the media player. o TITLE . the format of DURATION and POSITION is M:SS instead of MM:SS.Plugin=NowPlaying The NowPlaying plugin is used to control various media players and retrieve track metadata (including album art) from them. o POSITION . and 2 for paused. DisableLeadingZero When set to 1 (default 0). Valid values are: o ARTIST .0 for stopped. the displayed value will be in the formMM:SS. o PROGRESS . . PlayerPath The full path to the player executable (used by the OpenPlayer bang).From 0 to 100. Play . o DURATION .     Bangs The media player can be controlled with !CommandMeasure statements. *: When measures of type DURATION or POSITION are used in STRING meters. To understand the difference.Path to playing media file.Play current track. o VOLUME . o SHUFFLE .Current position in track in seconds*.Pause current track. o STATE . o REPEAT .Track title. For example: Main measure: PlayerName=Winamp Secondary measure(s): PlayerName=[MainMeasureName] PlayerType Defines the return value.Path to cover art. Options  PlayerName The name of the media player (for main measure) or the name of the main measure in square brackets (for secondary measures).0 if shuffle/random tracks is off.Artist name. This option must be set on the main measure. o RATING . o ALBUM . o COVER . IMPORTANT: This plugin uses the the concept of 'main' and 'secondary' measures. o STATUS . See the sample example skin below for usage. 1 if on.Album name.From 0 to 5. refer to the example skin at the end of this page. TrackChangeAction A command or a bang that will be executed when the track changes.  !CommandMeasure "MainMeasure" "action" Where action is one of the following: o o Pause .

     o PlayPause . the player will be brought to the top. !CommandMeasure "MainMeasure" "SetRating n" Where n is a value between 0 (no rating) and 5 (maximum rating).2 (or higher) is required. or -1 (toggle shuffle).  Media Player Classic: PlayerName=WLM Partially supported through the WLM interface. o Previous . If already open. Tested with MediaMonkey 3.  MediaMonkey: PlayerName=MediaMonkey Fully supported.  MusicBee: PlayerName=CAD Fully supported through the CAD interface.  J. !CommandMeasure "MainMeasure" "SetShuffle n" Where n is 1 (shuffle on).7. o Stop . o OpenPlayer .1. Note that the 'Send Now Playing information to MSN Messenger' option must be enabled in the player's settings (View -> Options -> Tweaks).  AIMP: PlayerName=AIMP Fully supported. 0 (shuffle off). The intcad plugin for Media Center must be installed.2. 0 (repeat off). Tested with AIMP 2.  J. The foo_rainmeter.  Spotify: PlayerName=Spotify Partially supported. or -1 (toggle repeat).dll plugin for foobar2000 must be installed. o TogglePlayer . o Next .fm Client: PlayerName=WLM Partially supported through the WLM interface. River Media Jukebox: PlayerName=CAD Fully supported through the CAD interface. The intcad plugin for Media Jukebox must be installed.2. . Note that using an unsupported type or bang is perfectly safe (it will simply result in in a empty value or no action. Only the types ARTIST/TRACK and the bangs Play.Opens/closes the player depending on current state.Change to previous track.  Last.  OpenPandora: PlayerName=WLM Partially supported through the WLM interface. Supported Players This list contains all supported media players in the latest beta version of Rainmeter. !CommandMeasure "MainMeasure" "SetPosition n" Where n is either an absolute value ( SetPosition 50 to jump to 50% of the track) or a relative value ( SetPosition +5 to jump 5% forward or SetPosition -10 to jump 10% backward). Tested with iTunes 10. and Previous are available. o ClosePlayer . !CommandMeasure "MainMeasure" "SetRepeat n" Where n is 1 (repeat on).  foobar2000: PlayerName=foobar2000 Fully supported with the exception of the SetRating and SetPosition bangs.Closes the player. Tested with foobar2000 1. !CommandMeasure "MainMeasure" "SetVolume n" Where n is either an absolute value ( SetVolume 50 to set volume to 50%) or a relative value ( SetVolume +20 to increase volume by 20% or SetVolume -40 to decrease volume by 40%).Play (if stopped/paused) or pause (if playing) current track. Note that MusicBee 1. Stop.Opens the player.  iTunes: PlayerName=iTunes Fully supported.61.5. respectively). PlayPause.Change to next track. River Media Center: PlayerName=CAD Fully supported through the CAD interface. Next.Stop current track.

except for the REPEAT/SHUFFLE types.msc" to run the tool and find the counters you wish to measure. ALBUM and the bangs Play.  WLM: PlayerName=WLM Several players use the MSN/Windows Live Messenger interface to convey limited track information. counters and instances need to be in English even in localized versions of Windows. the NowPlaying plugin may support other players through supported interfaces. Tested with Winamp 5. PlayPause. This interface is very limited (at best. Zune: PlayerName=WLM Partially supported through the WLM interface. Previous. Options . If you're nice enough. If none of these work. Winamp: PlayerName=Winamp Fully supported. Note that the CAD interface requires that Rainmeter (and the skin using the NowPlaying plugin) is started before the media player itself. WMP: PlayerName=WMP Fully supported. only the types TITLE. From the Start Menu. but is being freely distributed.  CAD: PlayerName=CAD Some players support the CD Art Display interface. Example Skin Plugin-PerfMon Plugin=PerfMon Use Window's Performance Monitor to find out the valid values for these settings. The libcad plugin for VLC must be installed. type "Perfmon.  Winamp: PlayerName=Winamp Several players emulate the Winamp interface. VLC: PlayerName=CAD Fully supported through the CAD interface. There are a great many counters which Windows tracks in Performance Monitor. You may want to give the following interfaces a try. Next.     TTPlayer: PlayerName=WLM Partially supported through the WLM interface. ARTIST. This is required for the first time only (subsequent loads should work regardless of order). Other Players In addition to the players listed above. Stop are supported). Note: The names of the objects. support for your player will be added shortly after your message :-) Donate This plugin was was developed as a personal project by our user poiru at some cost of time. If you find the plugin valuable. leave a suggestion in this thread.61. Pause. please express your gratitude by donating any amount by clicking on the following PayPal link.

The default is 30000. Options  DestAddress The DNS address or IP-number of the server. "Disk Read Bytes/sec". and Windows Media Player..e. Note: This is 1 by default. Zune.  TimeoutValue Defines the value that is returned when timeout happens.g. PerfMonInstance The name of the instance. Processor. foobar. PerfMonCounter The name of the performance counter. E. E.  Timeout Defines the amount of time in milliseconds that the plugin waits for a reply.    PerfMonObject The name of the performance object. This relative to the config's overall update rate. . Example Skin Plugin-PluginMediaKey Plugin=MediaKey The MediaKey plugin allows you to send various keystrokes found on multimedia keyboards.. If the counter doesn't have any instances you can leave this empty. It has been tested to work with Spotify. "_Total". Process.. Usage: [MeasureMediaKey] Measure=Plugin Plugin=MediaKey The plugin is controlled via !CommandMeasure statements sent to its measure.g. E.g. Example Skin Plugin-PingPlugin Plugin=PingPlugin This plugin can be used to send ping packets to a server and measure the network latency.  UpdateRate How often the ping packet will be send to the server. 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. E. PerfMonDifference If set to 1. Set to 0 to return current value. Memory.g. The default value is 30000 (i.. "% Processor Time". 30 seconds).: .

including the .Measures the current CPU in Hz.exe" process.Measures if the power is hooked to ac-line (returns 0 for battery and 1 for ac-line). o STATUS2 . ProcessName=Firefox. and 4 for high). It is used only when PowerState=LIFETIME . Example Skin . Note: This can not be used to detect if a Windows "service" executable is running.Same as STATUS except that the BatteryFlag in SYSTEM_POWER_STATUS is returned as is. Note that not all laptops support this (or all the values). 3 for low. Format This is the same as in a TIME measure.Measures the percentual lifetime. o MHZ .g. o PERCENT .  Plugin-Process Plugin=Process Detects if a defined Windows process or application is currently running.exe extension. e.  PowerState This defines what is measured. o STATUS .Measures the lifetime of the battery. 2 for critical.exe Returns values of -1 (not running) or 1 (running).!CommandMeasure "MeasureMediaKey" "NextTrack" Valid arguments are:        NextTrack PrevTrack Stop PlayPause VolumeMute VolumeDown VolumeUp Plugin-PowerPlugin Plugin=PowerPlugin This plugin can be used to measure battery status and the current MHz on laptops. The valid values are: o ACLINE . Options  ProcessName The name of the process / application.Measures the current CPU in MHz. 1 for charging. o LIFETIME . as those processes are run inside of the "svchost. o HZ .Measures the status of the battery (returns 0 for no battery.

Example Skin .  Separator A string that separates the text. newline). the plugin returns the file name of one of the files in it.g. If it's a folder.  !CommandMeasure "MeasureMyBin" "EmptyBin" Empties the contents of the recycle bin. use Drives=ALL .*.gif ).jpg.  FileFilter This can used to filter the files by their name.  Bangs The following bangs can also be sent to any RecyleManager measure:  !CommandMeasure "MeasureMyBin" "OpenBin" Opens the recycle bin.  !CommandMeasure "MeasureMyBin" "EmptyBinSilent" Empties the contents of the recycle bin without a confirmation messagebox. E. The default value is \n (i. o SIZE . For the sum all recycle bins. For specific drives use a pipe as a delimiter. The file can be encoded in the ANSI or Unicode formats. The valid values are: o COUNT . Example Skin Plugin-RecycleManager Plugin=RecycleManager This plugin can be used to check the size and count of the files in the recycle bin.g.The number of items in the recycle bin. the plugin reads a random part of text from it. Options  RecycleType This defines what is measured.e. It's possible to define several file filters by separating them with a semicolon (e.Plugin-Quote Plugin=QuotePlugin This plugin has two different uses: it can display a random string from a text file or it can select a random file from a folder which can be displayed with the IMAGE meter (if it's an image that is). Drives Defines the drives to watch for trash.The total size of the items in the recycle bin. If it's a file.  Subfolders If set to 1. FileFilter=*. subfolders are also taken into account. Options  PathName Path to a folder or a file. Drives=A:|C:|D: will give the sum of these drives.

o FAN . SpeedFanScale This defines the temperature unit of measure when SpeedFanType is set to TEMPERATURE.Returns the temperature value. The indexing starts from 0 so if you want to return e.Returns the fan speed. SpeedFanNumber This defines the index for the returned value. ProcessName=Rainmeter. Otherwise the returned value will be incorrect.g. the second temperature value use SpeedFanNumber=1 . o C .Returns the temperature in Centigrade. Options  ResCountType Valid values are: o GDI .Measures the number of user objects. ProcessName The name of the process that is measured.exe would measure only Rainmeter's resources.Returns the temperature in Fahrenheit.g. o VOLTAGE . This has no effect if the ResCountType=WINDOW . o HANDLE .Returns the temperature in Kelvin.Measures the number of GDI objects. Leave this empty if you want to measure all resources in the system. Options  SpeedFanType Defines the return value.Measures the number of windows in the system. You need to have SpeedFan running for this plugin to work since it doesn't do any measuring itself. o WINDOW .Measures the number of open handles. The plugin was originally made by Daedalus.Plugin-ResMon Plugin=ResMon Requires Windows XP with Service Pack 1 or newer. Note: This requires SpeedFan to be set to return Centigrade. E. o K . Valid values are: o TEMPERATURE .   Plugin-SysInfo Plugin=SysInfo This plugin returns various information about your system. o USER . .Returns the voltage value. o F .  Plugin-Speedfan Plugin=SpeedFanPlugin This plugin can read the values measured by SpeedFan.

0-999 for installed. This is always a number. Use SysInfoData to specify a different monitor. if there are several) o SCREEN_HEIGHT (SysInfoData specifies which monitor. It is important to note that "1" is not always the primary display monitor. the appropriate value to pass can be found by opening the Windows Display Properties dialog. 1000-1999 for active) o GATEWAY_ADDRESS (SysInfoData specifies the adapter) o HOST_NAME o DOMAIN_NAME o DNS_SERVER Numeric values: o SCREEN_WIDTH (SysInfoData specifies which monitor. SysInfoData Additional data that some of the SysInfoType items require. Use SysInfoData to specify the monitor. These coordinates are relative to the primary monitor and can be negative. o VIRTUAL_SCREEN_WIDTH .X-Coordinate of the upper left corner of the virtual screen. o VIRTUAL_SCREEN_LEFT . o WORK_AREA_TOP .Height of the client area of the primary display monitor. Use SysInfoData to specify the monitor.The size of the client area of the primary display monitor in a string of the form "width x height" o RAS_STATUS o OS_VERSION o OS_BITS o ADAPTER_DESCRIPTION (SysInfoData specifies the adapter) o NET_MASK (SysInfoData specifies which net mask. For SysInfoTypes which use SysInfoData to specify a monitor.Height of the virtual screen which encompases all display monitors.Y-Coordinate of the upper left corner of the virtual screen. Use SysInfoData to specify the monitor.Y-Coordinate of the upper left corner of the client area. if there are several) o VIRTUAL_SCREEN_TOP . o WORK_AREA_LEFT .Width of the client area of the primary display monitor. o VIRTUAL_SCREEN_HEIGHT . if there are several.The number of display monitors currently active.Options  SysInfoType Type of the system information. if there are several. Use SysInfoData to specify a different monitor. if there are several) o IP_ADDRESS (SysInfoData specifies which ip address.The resolution of the primary display monitor in a string of the form "width x height" o WORK_AREA . These coordinates are relative to the primary monitor and can be negative.  Plugin-VirtualDesktops Plugin=VirtualDesktops . o WORK_AREA_HEIGHT . String values (can be used only with STRING meters): o COMPUTER_NAME o USER_NAME o SCREEN_SIZE .X-Coordinate of the upper left corner of the client area. These coordinates are relative to the primary monitor and can be negative. o NUM_MONITORS .Width of the virtual screen which encompases all display monitors. o WORK_AREA_WIDTH . if there are several. These coordinates are relative to the primary monitor and can be negative. Use SysInfoData to specify the monitor.

VDMeasureType Specifies what information to measure. VDDesktopCount Used with VDMeasureType=DesktopCount .Triggers a switch to another desktop when sent that desktop's number as a bang. o CurrentDesktop . The VirtualDesktops plugin gives access to information from different VDMs for Windows and can be used to trigger desktop switches. in a desktop grid layout. and 0 otherwise.Returns 1 if the VDM is currently running.Returns the total number of virtual desktops. 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. General Options   VDManager Must be set to the name of a supported VDM. The plugin currently supports "Dexpot" and "VirtuaWin". Can be set to either X or Y to return the number of columns or rows. respectively. o VDMActive . Example:                  [SwitchDesktop] Measure=Plugin Plugin=VirtualDesktops VDManager=Dexpot VDMeasureType=SwitchDesktop [DesktopCountX] Measure=Plugin Plugin=VirtualDesktops VDManager=VirtuaWin VDMeasureType=DesktopCount> VDDesktopCount=X  [CurrentDesktop] Measure=Plugin Plugin=VirtualDesktops VDManager=VirtuaWin VDMeasureType=CurrentDesktop .A virtual desktop manager (VDM) allows you to distribute programs across multiple desktops. o DesktopCount .Returns the number of the currently active desktop. o SwitchDesktop .

valid commands are exactly the Dexpot command line switches.Returns the path to the wallpaper of the currently active desktop. the missing value is scaled proportionally based on the other value. Used with VDMeasureType=VDMActive .Writes a screenshot (in BMP format) of the current desktop to the file specified by VDOutputFile after every desktop switch.bmp VDWidth=320  . the full desktop resolution is used. DesktopWallpaper . Make sure to use an appropriate UpdateDivider. Set VDDesktop to a desktop number to always return the wallpaper defined for that particular desktop. Used with VDMeasureType=VDMActive . for example). creates a new screenshot every time the measure is updated. Example: [Screenshot] Measure=Plugin Plugin=VirtualDesktops VDManager=Dexpot VDMeasureType=Screenshot VDDesktop=1 VDOutputFile=#CURRENTPATH#Desktop1. Command . A complete list can be found at Dexpot Command Line Switches. Screenshot . Other options specific to VDMeasureType=Screenshot :   VDDesktop Set to a desktop number to always save a screenshot of that particular desktop. When only one is given.Returns the name of the currently active desktop. When neither VDWidth nor VDHeight are present. At this time.Can be used to send commands to Dexpot through bangs.  VDOnChange A command or bang that is executed when the current desktop (used with VDMeasureType=CurrentDesktop ) or number of desktops (used with VDMeasureType=DesktopCount ) changes. VDWidth and VDHeight Used to define the size of the screenshot in pixels. Note that bangs do not default to the current skin (use !Refresh "#CURRENTCONFIG#" instead of just !Refresh . VDRefreshOnUpdate If set to 1 and VDDesktop denotes the currently active desktop.  VDOnDeactivate A command or bang that is executed when Dexpot quits. When both are given. Additional types for VDMeasureType :     DesktopName . Set VDDesktop to a desktop number to always return that particular desktop's name.Bangs: !CommandMeasure "SwitchDesktop" "2" Options for  VDManager=Dexpot VDOnActivate A command or bang that is executed when Dexpot starts. the screenshot is created with those exact dimensions.

More information and examples for WebParser can be found at WebParser Primer and RSS Skin Tutorial.ext . This setting is only valid on WebParser measures that connect to a URL. so check the Perl docs for syntax and more info.e. the Url points to a measure and not to a real URL).g. and actions will not be fired on "child" WebParser measures that use another measure as the URL (i. to get the current TV shows. FinishAction A bang or command that is executed when the page has been downloaded and the parsing is done. 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 :-).e. news and basically anything that is on the net. 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. which will add all matched strings to the log-file. The plugin can be used e. StringIndex2 The second string index is used when using a RegExp in a measure that uses data from another webparser measure (i. when displaying different StringIndex on the same page).g. RegExp The regular expression used in parsing. stock exchange values. In this case the     . The plugin uses Regular Expressions to parse the web page which allows it to extract information pretty much from any page.[DexpotCommand] Measure=Plugin Plugin=VirtualDesktops VDManager=Dexpot VDMeasureType=Command Bangs: !CommandMeasure "DexpotCommand" "-next" !CommandMeasure "DexpotCommand" "-prev" !CommandMeasure "DexpotCommand" "-V" !CommandMeasure "DexpotCommand" "-d" Plugin-WebParser Plugin=WebParser WebParser reads information from webpages. URL=[SomeMeasure]). You can get the correct index values by setting the Debug=1. The plugin uses Perl Compatible Regular Expressions. To do this just give the name of the measure in the Url. The Url can also be another WebParser-measure. in which case the already downloaded and parsed information can be reused (e. StringIndex Defines which string from the regexp this measure returns. weather conditions. Options  Url Url to the file to be downloaded and parsed.

to the actual character.Decodes only numeric character references o 3 ..Does nothing (default) o 1 . Value 2 dumps the downloaded webpage to C:\WebParserDump. so there is no lag between the measure obtaining information from the website and its display in your skin. or for use in another measure or skin. The default for UpdateDivider is 1. &amp. This can be useful since some web servers send different information depending which client requests it.e. and the default for UpdateRate is 600. o 0 .txt. DecodeCharacterReference Automatically decodes HTML Character References. So the formula would be Update X UpdateDivider X UpdateRate = "how often the measure connects to the site".. This is relative to the config's main Update rate AND any UpdateDivideron the measure. UpdateRate The rate how often the webpage is downloaded. You can use a combination of UpdateDivider and UpdateRate to both limit both how often you hit the website and how often Rainmeter updates the values returned by the measure and used by meters.Decodes both numeric character references and character entity references o 2 . Remember to remove this from your config once you have it working correctly.txt" . StringIndex defines the index of the result of the other RegExp and the StringIndex2 defines the index of this measure's RegExp (i. This is why a default of 600 is set for UpdateRate. If the RegExp is not defined in this measure the StringIndex2 has no effect. However. So if you set an Update of 1000. Saves to current skin folder Debug2File="Debug2File.Decodes only character entity references Debug Set this to 1 and the log file will contain some useful debug information (note that Rainmeter must also be in Debug mode for the Log window to display DEBUG messages). This will allow you to use WebParser to parse the local version for testing.txt" Debug=2 [WebParserMeasure2] .(1000 X 1 X 600 milliseconds) It is advisable to limit the rate so that you're not flooding the server with constant requests. &gt.. This will eliminate the need to use a Substitute= statement to translate character references like &quot. &lt. the default for WebParser is to connect every 10 minutes. Web server admins will not like it and you may well get banned from a server altogether if you try to poll the server too often. it defines the string that the measure returns). Usage:           [WebParserMeasure] Debug2File="C:\filename. In general practice it is often best to just set an UpdateRate and leave UpdateDivider off. You can override this and make it shorter. Debug2File If Debug is set to 2 then this parameter will allow you to set the path and filename of the file to use for the downloaded webpage. but it is advisable (and polite) to only hit websites as often as really needed.

rdf RegExp="(?siU)<title>(. Examples: Retrieve the title and first item from Slashdot's RSS feed. [MeasureRSSTitle] Measure=Plugin Plugin=WebParser UpdateRate=3600 Url=http://slashdot. If you define it as "DownloadFile=image. o Must be a directory which already exists.    ProxyServer=serverIP:port ProxyServer=servername:port  CodePage Defines the codepage of the downloaded web page. The measure can be bound to a IMAGE meter to download images from web and show them. the Url is downloaded to a temporary folder and the name to the file is returned as string value. Path alone will not work.org/slashdot. If the RegExp is defined the parsed string is interpreted as a link to the downloaded image.+)<title>(. DownloadFile folder will be created in the current skin folder then the downloaded file is saved as "image. ProxyServer Name of the proxy server.+)<item(. You can check other Windows code pages from here. the file is downloaded to DownloadFile folder in the skin folder as a filename set to this value. This can be overridden with ForceReload=1.+)</title>" StringIndex=1 FinishAction=!Redraw [MeasureRSS] Measure=Plugin . CodePage=65001 means UTF-8. Download If set to 1. the subfolder photo is created then a file is saved in this folder. For example CodePage=28605 interprets the page as Latin 9 (ISO-8859-15).jpg".jpg". As for specification of file path. it is not possible to specify by the absolute path and also specification to the outside ofDownloadFile folder is not possible.jpg" If you define as "DownloadFile=photo\image. Does not create the target directory. If the CodePage is set to 0 no conversion is done. 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. Notes: o o This file is not a temporary file so it is not deleted even if it close a skin. ForceReload WebParser reads the resource only if it has been modified. DownloadFile When Download is set to 1.Debug=2   Notes: o Must include at least a filename.+)</title>(. ErrorString String that is returned in case there is a parse error.

you may see a 'connecting.*)###BOT_TEXT###quot;></TD>" FinishAction=!Redraw StringIndex=1 Download=1 [MeterImage] Meter=IMAGE MeasureName=MeasureDL X=0 Y=0 W=400 H=300 Plugin-WiFiStatus Plugin=WiFiStatus The WiFiStatus plugin can be used to display various attributes of visible wireless networks in your area.html?selected=7 RegExp="(?siU)ennuste" SRC=###BOT_TEXT###quot;(.A percentage value of the maximum dBm signal strength for your current connection o ENCRYPTION . WPA_GROUP. Possible values are: NONE... Windows XP SP2 users need to install the KB918977 hotfix.' next to the name.Plugin=WebParser Url=[MeasureRSSTitle] StringIndex=4 Substitute="&amp. [MeasureDL] Measure=Plugin Plugin=WebParser UpdateRate=1800 Url=http://www. WEP40. but only if your update speed is around 2 seconds o QUALITY . ??? (for unknown) . WEP.The cipher algorithm being used for your current connection.":"&" Download the current weather map from Finnish Meteorological Institute. AES. WEP104.. When trying to conenct. The valid values are: o SSID . TKIP.. Options  WiFiInfoType (required) This defines what is measured.fmi.fi/saa/sadejapi_5.' or 'authorizing.The broadcast name for your current connection.

weakest last). This value should be either 0. Shared.11a. and authentication algorithms next the the network name.  AUTH ..11b. WPA2_Enterprise.11g. DSSS. Possible values are 802. WPA_Enterprise. The list is automatically separated by line-breaks '\n'.SSID @band (Encryption:Authentication) WiFiListLimit (optional) Allows you to control how many networks will be displayed by the LIST measure. WPA_NONE. then 2 and so on. 802. o LIST . FHSSS.The authentication algorithm being used for your current connection. WPA_Personal.The supported bands for your connection (NOT your adapter). strongest first.11n. 802.Returns a list of all visible networks. 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). see above).. ??? o PHY .SSID (Encryption:Authentication) o 3 . 2 or 3. ??? Note: The PHY measure supported in Windows Vista and higher only. Any value greater than 0 is valid for this measure. 802. It will also display the band. This is how the list will show up based on these values: o o 0 . so each network appears on a separate line. 1. Possible values are: Open. then try other values starting from 1.  Note: The list is sorted in descending order based on the signal quality of each network (i. Plugin-Win7AudioPlugin Plugin=Win7AudioPlugin . WPA2_Personal. WiFiListStyle (optional) Allows you to control what information appears along with the names of all visible networks (returned when WiFiInfoType=LIST.e. IR-Band. cipher. If you do not get any response from the measure with this value at 0. Examples: [MeasureSSID] Measure=Plugin Plugin=WiFiStatus WiFiInfoType=SSID WiFiIntfID=0 [MeasureNetworks] Measure=Plugin Plugin=WiFiStatus WiFiInfoType=LIST WiFiIntfID=0 WiFiListStyle=3 A more detailed sample and support is available at the WiFiStatus support thread.SSID @band o 2 .SSID o 1 .

Controls sound device and volume for Windows Vista and newer. See the sample . The plugin can be used for example to control WinAmp or some similar media players. This disables mute. It's not necessary to set this if the WindowClass is set. Use negative numbers to lower volume. This plugin has been written by Reiswaffel. Example Skin Plugin-WindowMessage Plugin=WindowMessagePlugin This plugin can be used to send and receive information from other applications. Usage [MeasureWin7Audio] Measure=Plugin Plugin=Win7AudioPlugin Returns the name of the current sound device (when used in a STRING meter) and the percentage (0100) of current volume level (when used in a measure which requires a number). It's not necessary to set this if the WindowName is set. This disables mute. WindowClass The class of the window. Options    WindowName The name of the window. WindowMessage This is the message to be send to the window. This depends on your system setup and number of output devices. !CommandMeasure "MeasureWin7Audio" "SetVolume x" Set volume to x (between 0 and 100). !CommandMeasure "MeasureWin7Audio" "SetOutputIndex i" Set a specific device with index i.       !CommandMeasure "MeasureWin7Audio" "ToggleNext" Jump to the first if last device is active. You need to define 3 parameters to where the first . It can send window messages to other applications and show the result. Bangs The current device and volume is controlled with !CommandMeasure statements sent to the plugin. This is used to identify the window. !CommandMeasure "MeasureWin7Audio" "TogglePrevious" Jumps to the last if first device is active. This is used to identify the window. !CommandMeasure "MeasureWin7Audio" "ToggleMute" Toggle the mute state. Previous versions of Windows are not supported.ini below for examples. !CommandMeasure "MeasureWin7Audio" "ChangeVolume x" Change the volume by x percent.

one is the message and the next ones are wParam and lParam. The values are unsigned decimal integers. The measure returns the value returned by the SendMessage API function. If the WindowMessage is not given the measure returns the window's current title.

Bangs
Messages can also be sent on demand with the !CommandMeasure bang. The arguments are similar that of the WindowMessage option.
!CommandMeasure "MeasureName" "SendMessage Msg wParam lParam"

Examples: This returns the name of the song that is playing in WinAmp.
[MeasureWinamp] Measure=Plugin Plugin=WindowMessagePlugin WindowClass=Winamp v1.x Substitute="[Paused]":""," - Winamp":""

Check if Winamp is playing, or not. This returns 0 if it's not playing, 1 if it is playing and 3 if it's paused.
[MeasureWinampPlaying] Measure=Plugin Plugin=WindowMessagePlugin WindowClass=Winamp v1.x WindowMessage=1024 0 104

Show song progress. The [MeasureWinampDuration] will return the current song position as a value between 0 and 1. You can use for example the BAR-meter to display the value.
[MeasureWinampFull] Measure=Plugin Plugin=WindowMessagePlugin WindowClass=Winamp v1.x WindowMessage=1024 1 105

[MeasureWinampCurr] Measure=Plugin Plugin=WindowMessagePlugin WindowClass=Winamp v1.x WindowMessage=1024 0 105 [MeasureWinampDuration] Measure=Calc Formula=(MeasureWinampCurr<=0)?0:(MeasureWinampCurr/(MeasureWinampFull*1000+1))

MouseActions
Mouse actions are commands you add to a meter or the [Rainmeter] section to execute an action on a specific mouse event. 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. Also note that actions defined for the meter will override actions defined in the [Rainmeter] section.  LeftMouseDownAction A command or a bang that will be executed when the left mouse button is pressed down over the meter. Note that this disables dragging.  RightMouseDownAction A command or a bang that will be executed when the right mouse button is pressed down over the meter. Note that this disables the context menu.  MiddleMouseDownAction A command or a bang that will be executed when the middle mouse button is pressed down over the meter.  LeftMouseUpAction A command or a bang that will be executed when the left mouse button is released over the meter.  RightMouseUpAction A command or a bang that will be executed when the right mouse button is released over the meter. Note that this disables the context menu.  MiddleMouseUpAction A command or a bang that will be executed when the middle mouse button is released over the meter.  LeftMouseDoubleClickAction A command or a bang that will be executed when the left mouse button is double clicked on the meter. If this action is missing, LeftMouseDownAction will be executed.  RightMouseDoubleClickAction A command or a bang that will be executed when the right mouse button is double clicked on the meter. Note that this disables the context menu.  MiddleMouseDoubleClickAction A command or a bang that will be executed when the middle mouse button is double clicked on the meter.  MouseOverAction A command or a bang that will be executed when the mouse goes over the meter or entire skin.  MouseLeaveAction A command or a bang that will be executed when the mouse leaves the meter or entire skin.  MouseActionCursor When set to 1 (which is the default), a pointer cursor will be shown when hovering over a meter (or skin) with a mouse action. The default for a specific skin can be set to 0 by putting MouseActionCursor=0 in the [Rainmeter] section of the skin. This can then be overridden on a meter by meter basis with MouseActionCursor=1 . Note: If you have a meter or button with a mouse action, and there is a meter on top of it, you will need to set MouseActionCursor=0 on the foreground meter (even if it does not have a mouse action).

Bangs
Rainmeter 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=!Refresh

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

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

When using special characters (such as a double quote or unmatched square brackets) in a parameter of a bang, use """ (instead of ") to indicate the beginning and end of the parameter. For example, the following will set SomeVariable to A "B" C:
LeftMouseUpAction=!Execute [!SetVariable "SomeVariable" """A "B" C"""]

The following, on the other hand, will result in a error:
LeftMouseUpAction=!Execute [!SetVariable "SomeVariable" "A "B" C"]

Bangs names can be preceded by the "Rainmeter" keyword. For example, !RainmeterShowMeter and !ShowMeter are both treated equally in recent versions of Rainmeter (older versions require that "Rainmeter" is specified).

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 optional. 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.  !Execute Special !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"]) Actions for the Rainmeter application  !About (TabName) Opens the About dialog. TabName can be set to Log, Measures, Plugins, or Version. Defaults to Log.  !Manage (TabName) Opens the Manage dialog. TabName can be set to Skins, Themes, or Settings. Defaults to Skins.  !LsBoxHook [Config] Special bang for LiteStep lsBox. Note that you MUST give the name of the config as argument.  !ResetStats Resets the statistics.  !RefreshApp Does a full refresh of all skins and reloads the list of configs and Rainmeter.ini settings. This is the same as "Refresh All" from the system tray context menu. The main difference from !Refresh * is that the skins folder is rescanned.

 !HideGroup [Group] Hide the configs in the specified group.  PLAYLOOP [soundfile] Plays the given soundfile as loop. quotes must be used around the parameter if there are spaces: !SetVariable VarName "(#SCREENAREAWIDTH# .  !SetVariable [Variable] [Value] (Config) Sets a new value for a variable.  !DeactivateConfigGroup [Group] Deactivate the configs in the specified group.  !Move [X] [Y] (Config) Moves the Rainmeter-window to new location. a refresh of the skin (or Rainmeter) is required. enclosed in parentheses.) of a meter or measure. !Quit Quits Rainmeter.  !Toggle (Config) Toggles the Rainmeter-window between show and hide. do not include the path.10)" Note: !SetVariable can create a new variable in memory. If included.g. etc. "Section" is the section name such as [Rainmeter]. you can write to any skin . FontSize. Formula. Thus. FontSize.wav file.  !ShowGroup [Group] Show the configs in the specified group.ini. Formulas may be used.  !SetOptionGroup [Group] [Option] [Value] (Config) Sets an option (e. For a change to a file to take effect. Text. "Key" and "Value" are the Key=Value pairs such as FontSize=15.wav soundfile once.  PLAYSTOP Stops the currently playing sound.ini / . etc. even if it is not pre-defined in [Variables]. The meter or measure where the variable is used must have dynamic variables enabled (DynamicVariables=1). A more complete guide to using !SetOption is at !SetOption Guide.  .) of meters and measures in the specified group. As with all !Bangs. Actions for a skin or group of skins  !Show (Config) Displays the Rainmeter-window. Text.g. Actions for variables and settings in skins or groups of skins  !SetOption [Meter/Measure] [Option] [Value] (Config) Sets an option (e.  !DeactivateConfig [Config] Deactivates the configuration ini-file. Requires a full path to the . The ini-file is just the name of the file. Formula.  !ToggleGroup [Group] Toggle the configs in the specified group between show and hide.inc @Include file. !SetVariableGroup [Variable] [Value] [Group] Change the value of a variable in the configs of the specified group. "FileSpec" is optional.ini or other ini formatted file such as a .  !ActivateConfig [Config] [Ini-file] Activates a new configuration ini-file. Requires a full path to the .  !Hide (Config) Hides the Rainmeter-window.  PLAY [soundfile] Plays the given . it will make the change to the specified file as long as the file exists and is in the \Skins or %APPDATA%\Rainmeter paths.inc or Rainmeter.wav file.  !WriteKeyValue [Section] [Key] [Value] ("FileSpec") Allows for permanently writing / changing any Key=Value in any Rainmeter .

The Config and IniFile must exist in the already loaded list of configurations. or -1 (toggle). NewSetting can be 0 (off). !AddBlur [Region] (Config) Adds blur region to existing blur area. This also updates all the meters. !ClickThrough [NewSetting] (Config) Sets ClickThrough setting for current / named / all configs. !Refresh (Config) Reloads the configuration file. !Draggable [NewSetting] (Config) Sets Draggable setting for current / named / all configs. or -1 (toggle). NewSetting can be 0 (off). !SetTransparencyGroup [AlphaAmount] [Group] Change the transparency of the configs in the specified group. 1 (on). The speed of the fade is determined by the FadeDuration= setting for the skin in Rainmeter. 1 = OnTop. . or -1 (toggle). 0 = Normal. The arguments are optional. !ToggleBlur (Config) Toggles the visibility of the blur behind the skin. !ZPos [POS] (Config) Changes the z-position of the window. !ZPosGroup [POS] [Group] Change the z-position of the configs in the specified group. The speed of the fade is determined by the FadeDuration= setting for the skin in Rainmeter. !ClickThroughGroup [NewSetting] [Group] Sets ClickThrough setting for specified group. 1 (on). -2 = OnDesktop. 1 (on). !RefreshGroup [Group] Refresh the configs in the specified group. 1 (on). -1 = OnBottom. 1 (on). NewSetting can be 0 (off). !ToggleFadeGroup (Config) Shows or hides the current or specified (Config) group using a "fade" effect.ini. or -1 (toggle). !ShowFade (Config). !KeepOnScreen [NewSetting] (Config) Sets KeepOnScreen setting for current / named / all configs. !ShowFadeGroup (Config). NewSetting can be 0 (off). NewSetting can be 0 (off). If not given the current config is reloaded. !DraggableGroup [NewSetting] [Group] Sets Draggable setting for specified group. overriding what is in Update= in the [Rainmeter] Section. 1 (on). !Update (Config) Causes Rainmeter to immediately update the skin. !HideFadeGroup (Config). !Redraw (Config) Forces the redraw of the window. !HideFade (Config).ini. !HideBlur (Config) Hides the blur behind skin. !ShowBlur (Config) Shows the blur behind skin if it was hidden. !RemoveBlur [Region] (Config) Removes blur region from existing blur area.                       !ToggleConfig [Config] [Ini-file] Toggles the configuration ini-file between activated and deactivated. !RedrawGroup [Group] Redraw the configs in the specified group. !KeepOnScreenGroup [NewSetting] [Group] Sets KeepOnScreen setting for specified group. !SetTransparency [AlphaAmount] (Config) Sets the transparency of a skin from 0 (invisible) to 255 (opaque). Note that this does not override UpdateDivider/UpdateRate on individual measures. 2 = Topmost. or -1 (toggle). NewSetting can be 0 (off). !ToggleFade (Config) Shows or hides the current or specified (Config) skin using a "fade" effect. or -1 (toggle).

 !UpdateMeterGroup [Group] (Config) Immediately updates all of the meters in the specified group regardless of UpdateDivider.  !ShowMeterGroup [Group] (Config) Shows all of the meters in the specified group.  !DisableMeasureGroup [Group] (Config) Disables all of the measures in the specified group.  !MoveMeter [X] [Y] [Meter] (Config) Moves the given meter (not the window) to the specified position.  !HideMeterGroup [Group] (Config) Hides all of the meters in the specified group. and there are many good sites where you can learn Lua itself: .  !ShowMeter [Meter] (Config) Shows the given meter if it was hidden.  !ToggleMeasure [Measure] (Config) Toggles the status of the given measure (i. The arguments depend on the measure in question. nor anyone associated with Rainmeter. Actions for a measure or group of measures  !DisableMeasure [Measure] (Config) Disables the given measure. or -1 (toggle).  !UpdateMeasure [Measure] (Config) Immediately updates the given measure regardless of UpdateDivider.  !ToggleMeter [Meter] (Config) Toggles the visibility of the given meter. is responsible for teaching you the Lua scripting language. NewSetting = -1 (toggle) | 0 (off) | 1 (on)  !SnapEdgesGroup [NewSetting] [Group] Sets SnapEdges setting for specified group. Lua is a relatively simple language. enabled/disabled). However. Note that hiding meter does not stop the measurement.  !UpdateMeasureGroup [Group] (Config) Immediately updates all of the measures in the specified group regardless of UpdateDivider. 1 (on). you also need to disable the measure if you don't want to spend the extra CPU cycles for the measuring. Actions for a meter or group of meters  !HideMeter [Meter] (Config) Hides the given meter. NewSetting can be 0 (off).  !CommandMeasure ["Measure"] ["Arguments"] ("Config") Sends a command to the given measure. This guide is only meant to help with using the Lua with Rainmeter.  !ToggleMeterGroup [Group] (Config) Toggles the visibility of all of the meters in the specified group.  !EnableMeasureGroup [Group] (Config) Enables all of the measures in the specified group. LuaScripting Rainmeter.e.  !PluginBang "[MeasureName] (Arguments)" (Config) This bang has been deprecated in favor of !CommandMeasure and should not be used in any new skins. !SnapEdges [NewSetting] (Config) Sets SnapEdges setting for current / named / all configs.  !UpdateMeter [Meter] (Config) Immediately updates the given meter regardless of UpdateDivider.  !ToggleMeasureGroup [Group] (Config) Toggles the status of all of the measures in the specified group (i. disabled/enabled).e.  !EnableMeasure [Measure] (Config) Enables the given measure.

The script can then be used to read Rainmeter measures and meters from the calling skin. and you can have none. or as many as you like. In the Skin Lua is integrated with Rainmeter using the new Rainmeter Measure=Script measure type: [MeasureLuaScript] Measure=Script ScriptFile=MyScript. UpdateDivider= This optionally tells Rainmeter how often to execute the script. and take various actions that impact the Rainmeter skin:       Return a string or number value to the Lua measure. This is due both to the need to protect the Rainmeter core in memory.1/ http://lua-users.lua file you will be executing. or a measure or meter. Rainmeter has the Lua 5. Write values to the Rainmeter log file.org/manual/5. do any kind of processing outside of Rainmeter that you like. such as position. This can be any key name and any value. and to limitations of Lua external libraries in a 32bit / 64bit environment. It contains all the standard libraries and functions that come with Lua.lua. Change the value of any #Variable# set in the [Variables] section of the skin. size. as with any other Rainmeter measure.http://www.1 codebase embedded.lua MySetting="SomeSetting" UpdateDivider=30 ScriptFile= This is the required name of the . which can be used in Rainmeter just like the value returned by any measure. Control many aspects of the overall skin. enable/disable etc. passing settings from Rainmeter to the script. Send any !Bang command to the skin.lua) can be executed by Rainmeter. Directly set the value of a string meter. Improvements to this may come at a later date. MySetting= This is just a sample to show how you can pass information to the Lua script from Rainmeter when it is run. but currently cannot be extended by using external libraries like LuaCURL in your code or "including" external script files using "dofile". like Disabled=0/1 .org/wiki/LuaTutorial Or a really good book for sale: Programming Lua Second Edition Overview A Lua scripting language file (. Notes:  You can use any other standard Rainmeter settings that control measures.

a standard Lua way of reference a table index by value. nor any way to interact with any skin other than the one that ran the script. but as with plugins. . } You can then later use these settings in your script. You simply tell it the name of the key from the measure in the skin.  You can use #Variables# in any setting in a script measure.MyTextSetting for example. The format is: PROPERTIES = { MyTextSetting = "". lets assume that your Script measure is called MeasureScript. you cannot use dynamic variables. Remember that Lua is always "case sensitive". As of this writing. or even take actions on the skin that you only want to happen once.MyTextSetting MyNewTable = {} end function Update() The Update() function is where you will put the bulk of your code. Lua can interact with the current skin. meters and measures within the skin. It is executed on every update cycle of the measure and should return either a string or a number. initialize global variables. For instance: function Initialize() Measure1 = SKIN:GetMeasure("SomeMeasure") Meter1 = SKIN:GetMeter("SomeMeter") CurrentMeter1Height = Meter1:GetH() Meter1:Hide() MyNewVar = PROPERTIES. like MySetting="SomeSetting" in the example above) you wish to pass from Rainmeter to the Lua script. MyNumberSetting = 0. not Properties. This table is PROPERTIES. you will use later. In the Script There are three functions in a . There is currently no capability to interact with Rainmeter in general. except by using bangs. and initialize it with any value. tables etc. with PROPERTIES. For the purpose of this example. It can be used to have the script get the structures of measures and meters in the skin so you can interact with them later. function Initialize() This function is used to perform actions you wish to do "once" when the skin is loaded or refreshed.lua script file written for Rainmeter that control the overall interaction with Rainmeter: PROPERTIES This is actually a Lua "table". used to hold the settings (Key=Value. and variables. which will be used as the value of the SCRIPT measure.

when used in Calc measures) and a textual value of "99" (e. when used as the MeasureName in STRING meters)  return "99" .MeasureScript will have a numerical value of 99 (e.255 Script: PROPERTIES = { SettingInSkin = 0.255.g. } function Initialize() .255.lua" SettingInSkin=20 [MeterLua] Meter=String MeasureName=MeasureLuaScript FontSize=12 FontColor=255.g.MeasureScript will have a numerical value of 99 and a textual value of "99"  return "Ninety Nine" ..SomeNewVar) NewReturnValue = 99 return NewReturnValue end Simple Example: Skin: [Rainmeter] Update=1000 [MeasureLuaScript] Measure=Script ScriptFile="#CURRENTPATH#LuaSample.MeasureScript will have a textual value of "Ninety Nine" Example: function Update() SomeNewVar = "Hello World" SKIN:Bang(!SetVariable MyVar ". return 99 .

g. Retruns nil for an invalid variable. a boolean value (i. which can be used in any calc or meter. Functions There are several Rainmeter-specific functions exposed to Lua.e. 42). string GetVariable(string name) Retrieve variable name. Read more below. print() Allows you to output text to the Rainmeter log. true or false). void Bang(string bang) Runs given string. string MakePathAbsolute(string path) Converts relative path into an absolute path (relative to the skin folder). void FadeWindow(number from. Note that if the Lua interpreter raises an error in your Lua code in general. Functions may return a string (e. Read more below. measureType GetMeasure(string measure) Returns a handle to the measure. print("Script just ran!") Skin functions These functions can be used on used with the SKIN: prefix. number to) Fades the skin. meterType GetMeter(string meter) Returns a handle to the meter. a number (e. or nothing (marked by void). .CurrentNumber = tonumber(PROPERTIES. For example: meter = SKIN:GetMeter("ExampleMeter") SKIN:Bang("!Refresh")           void Bang(string bang) Runs given string. string GetSkinIniFile() Retruns full path to the current skin .g. it will automatically be written to the Rainmeter log and can be viewed using "About" from the Rainmeter context menu.SettingInSkin) end function Update() NewNumber = CurrentNumber + 50 return NewNumber end The measure [MeasureLuaScript] in the skin will have a string value of "70".ini file. void MoveWindow(number x. number y) Moves the skin to given coordinates. "example"). string GetSkinName() Returns current skin name.

SolidColor). number GetX(bool abs = false) Returns the meter X position. string GetOption(string option) Returns the value of the meter option (e. number GetH() Returns the meter height. For example: anyMeasure = SKIN:GetMeasure("ExampleMeasure") anyMeasure:Disable()      string GetValue() Returns the numerical value of the measure. . number Show() Show the meter. string GetOption(string option) Returns the value of the measure option (e. void SetY(number y) Set the meter Y position.g. void Enable() Updates string text. For example: anyMeter = SKIN:GetMeter("ExampleMeter") anyMeter:SetX(25)             void SetX(number y) Set the meter X position. string GetStringValue() Returns the string value of the measure. void Disable() Disable the measure. MaxValue).g. Measure functions These functions can be used on objects returned by the SKIN:GetMeasure() call. string GetName() Returns meter name. string ReplaceVariables(string text) Replaces #variables# in given string and returns the result. Meter functions These functions can be used on meter objects returned by the SKIN:GetMeter() call. number GetY(bool abs = false) Returns the meter Y position. void SetW(number w) Set the meter width. void SetH(number h) Set the meter height. void Hide() Hide the meter. number GetW() Returns the meter width.

rmskin template from here. number GetValueRange() Returns the value range. get the . To create a . number GetMinValue() Returns measure minimum value.someVar2=someVar*7.rmskin package. number GetRelativeValue() Returns the measure value from scaled from 0.0 to 1. It should contain five folders along with a file called Rainstaller.php?f=27&t=6658 http://rainmeter. . They are supported for now and may be removed in the future.Update()"] -> set variable someVar to 5.php?f=27&t=9388 RMSkinCreate The Rainmeter skin package (.Prefer SKIN:Bang('!SetOption "MeterName" "Text" "Value"') instead  function GetValue() and function GetStringValue() when used to return a value to the skin . It allows one-click installation of skins. and immediately execute the Update function. (in the context of the ScriptFile specified by ScriptMeasure) Example Skins There are some simple skins using the new Lua integration on the Rainmeter forums.net/forum/viewtopic.cfg. then extract and open the newly created Template folder. set a new variable with a formula. Tearing them apart can be the best way to learn how it all fits together: http://rainmeter.     string GetName() Returns measure name.LuaLog() .Return number or string in Update() instead Executing Lua code within Rainmeter The !CommandMeasure bang can be used to execute Lua code in Rainmeter. Deprecated Functions These are functions that should not be used.net/forum/viewtopic. fonts.rmskin) is an increasingly popular method of distributing various Rainmeter components.Use print() instead  meter:SetText() .cast . and more. number GetMaxValue() Returns measure maximum value.php?f=27&t=6533 http://rainmeter.php?f=99&t=9131 http://rainmeter.net/forum/viewtopic.  tolua. themes.net/forum/viewtopic.Simply use SKIN:GetMeter() by itself  TO. LeftMouseUpAction=!Execute [!CommandMeasure "ScriptMeasure" "someVar=5.0.

See below for additional details. then you can use LocalFont=#ROOTCONFIGPATH#Fonts\FontFile.TTF file(s) into some folder under the skin/suite you will be distributing. Include a font that will be installed into the Rainmeter "Fonts" folder. More on including plugins You are able to include both 64bit and 32bit in one single .dll More on including Fonts There are three ways to include font(s) in your distribution:  Recommended .dll -. Simply copy the .  Folders in Template\Addons will be copied into addon folder (usually Program Files\Rainmeter\Addons). Template\ .0.64bit\ --. simply copy the entire Documents\Rainmeter\Skins\MySkins folder from your Rainmeter installation into Template\Skins in the template folders. Set RainmeterFonts=1 in Rainstaller. Simply copy the . To add components to the package.myplugin. See below for additional details.0. Then.MyPlugin\ ---.ttf in Rainmeter skins.ttf in your skins to use the fonts you have distributed.MyPlugin\ ---.32bit\ --.Include a font in your skin folders. create the Template\Plugins2bit andTemplate\Plugins4bit folders and copy the plugin(s) into the appropriate folder. allowing use with LocalFont without any additional installation to the end user's Rainmeter or Windows configuration. Simply copy the . You might create a folder called Skins\MySkins\Fonts and put all the fonts you wish to include in there.cfg (see below for more on this file) and the font(s) will be installed to the user's Windows\Fonts folder automatically and will be available for use in Rainmeter skins.  Folders in Template\Themes will be copied into the theme folder (usually %APPDATA%\Rainmeter\Themes). For example.Adding your skins / themes / addons / plugins and fonts.740 into Rainstaller.myplugin. Include a font that will be permanently installed into the end user's Windows configuration. For example.  Folders in Template\Skins will be copied into the skin folder (usually Documents\Rainmeter\Skins). normally Program Files\Rainmeter\Fonts. you must specify at least MinRainmeterVer=2. simply copy it into the correct folder.rmskin. Set RainmeterFonts=0 in Rainstaller. and can be used with LocalFont=#PROGRAMPATH#Fonts\FontFile.   .cfg (see below for more on this file) and the font(s) will be installed in the Rainmeter Fonts folder.TTF file(s) into Template\Fonts. If you decide to take advantage of this.  Folders in Template\Plugins will be copied into plugins folder (usually Program Files\Rainmeter\Plugins).  Folders in Template\Fonts will be copied into fonts folder (usually Program Files\Rainmeter\Fonts). for use with LocalFont in Rainmeter skins. to include the "MySkins" suite of skins.TTF file(s) into Template\Fonts.cfg.Plugins\ -.

2 r393 or higher is installed.3.cfg Advanced Options These are advanced options and you will most likely not need these.0.inc in Gnometer) during a skin upgrade.ini|file3. Can be set to either 32bit or 64bit .g. Specifies if the package is compatible with only 32bit Rainmeter or 64bit Rainmeter. LaunchType and LaunchCommand These two values are used to either load config(s) or a specific theme after installation.3 r560 does not support Unicode files or multiple files. For example.ini The path is relative to the Rainmeter\Skins folder. Do not use the following.cfg file into the text editor.g.2.393 The revision numbers are available from from Google Code. Leave blank for both. to require that Rainmeter 1.ini|file2.3. LaunchCommand=file1. notepad) and drag & drop theTemplate\Rainstaller. unless you know what they are for.0. fonts. o To open an installed theme. Merge Use Merge in combination with at least MinRainmeterVer=1.0. To open multiple configs. use at least MinRainmeterVer=1. For Unicode and multiple file support. MinRainmeterVer Sets the minimum version of Rainmeter required to install.0. set something like: LaunchType=Load LaunchCommand=MySuite\Clock\Clock.e.3. or plugins. CompatibilityWithBit Use CompatibilityWithBit in combination with at least MinRainmeterVer=1. Author. separate each config with a vertical bar (i. UserVariables. KeepVar below Rainmeter 1. open any text editor (e.427 to ensure that the user has a sufficient version of Rainstaller installed.Changing settings After you have copied all the necessary files into the correct folders. Rainstaller.559 KeepVar can be used to keep variables in a common settings file (e. set the following (replacing NameOfTheme with the the theme name): LaunchType=Theme LaunchCommand=NameOfTheme o To open load specific config(s) after install. Rainstaller.inc in Engima or Variables. . and Version) and save the file.417 to ensure that the user has a sufficient version of Rainstaller installed.3.cfg Basic Options AdminRights Set AdminRights=1 if the package contains addons. specify MinRainmeterVer=1. be sure to glance through that list. A detailed explanation of the other values is available at the end of this page. Note that the target system must already have the skin in question installed for Merge to work (set to Merge=2 to ignore this). Fill in the obvious (Name. KeepVar Use KeepVar in combination with at least MinRainmeterVer=1. Set Merge=1 to merge skins in the package with the users skins.ini ).0.499 to ensure that the user has a sufficient version of Rainstaller installed. The path is relative to the Rainmeter\Skins folder.

txt and replace them with corrosponding values from "old" CommonVariables. You will be asked to name the newly created .ini|file2.zip file. To convert the created . to keep variables intact in Rainmeter\Skins\MySkin\CommonVariables.zip to .txt on upgrade.rmskin.txt If MySkin\CommonVariables.rmskin file.zip file. simply create a bitmap named Rainstaller. To do this.txt exists already exitsts in target system.rmskin is going to install a skin called "BestSkinEver".rmskin with others.rmskin file. RainmeterFonts Set RainmeterFonts=1 to copy fonts into the Rainmeter font folder (usually Program Files\Rainmeter\Fonts) for use with Rainmeter's LocalFont feature. Give it the name of your choice and press Enter.ini ). Leave blank to install normally to WINDOWS\Fonts.rmskin with others.rmskin file. To keep variables for multiple files.ini|file3.For example. Remember to delete the components from your own computer before installing to make sure the files were installed properly.rmskin and vice versa. you will need to make sure it works properly.bmp into the same folder as Rainstaller. you'll need to create a .rmskin file is simply a renamed .zip file first. grab and run ExttensionChanger from from here.txt. in order to create a . Then create the .rmskin file is opened. Rainstaller will display the custom header instead of the default. right-click on the Template folder and select Send to -> Compressed (zipped) folder. Testing and sharing Before sharing the newly created . If you don't know how to do this manually. separate each file with a vertical bar (i.rmskin file The .zip to .zip file into a . So. After you have ensured that everything works as intended. you are free to upload and share your . specify: KeepVar=MySkin\CommonVariables. For example. It will allow you change extensions from . KeepVar=file1.cfg.e. When the . delete "BestSkinEver" from Rainmeter\Skins. Creating the . if you know that the . . Rainstaller will read all values from "new" CommonVariables. Custom Header To use a custom header in Rainstaller. simply change the file extension from . The dimensions of the bitmap should be exactly 400x60 pixels.