It is currently March 28th, 2024, 12:30 pm

Multiple lines as one variable?

General topics related to Rainmeter.
User avatar
jsmorley
Developer
Posts: 22628
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: Multiple lines as one variable?

Post by jsmorley »

.^$*+?()[{\|

. means "any character"
^ means "beginning of string"
$ means "end of string"
* means "zero or more of"
+ means "one or more of"
? means "the following is a directive, not a character"
( means "start a capture"
) means "end a capture"
[ means "start a character class"
{ means "start a numeric range definition"
\ means "escape"
| means "logical OR"

So to use any of these characters as a "literal character", you would have to "escape" them with the \ character in front of them. That includes \ itself...

It's a hair more complicated than that, as some of these characters, while always "reserved", may have different meanings in different contexts. For instance ^ can mean "start of string", but when used in a [character class] can mean "NOT".

https://docs.rainmeter.net/manual/skins/option-types/#RegExp
User avatar
kyriakos876
Posts: 919
Joined: January 30th, 2017, 2:01 am
Location: Greece

Re: Multiple lines as one variable?

Post by kyriakos876 »

This is great! I was searching for a vocabulary of the characters. Thanks a lot :)
10.12.2018

Code: Select all

<BMVariables>
[Variables]

;-=-=-=-=-=-=- GLOBAL VARIABLES -=-=-=-=-=-=-

Theme=Dark
ReverseTheme=Light
AccentColor=26,115,232
Yellow=251,188,5
Red=234,67,53
Green=52,168,83
Blue=#AccentColor#
;SecondaryTextColor=158,158,158
; BackgroundColor=#DarkBackgroundColor#
; PrimaryTextColor=#DarkPrimaryTextColor#
; ShadowColor=#DarkShadowColor#
; LightGrey=#DarkLightGrey#
; IconBackgroundColor=#DarkIconBa
HeaderHeight=49

;---------> Light Theme Color

BackgroundColorLight=250,250,250
SecondaryBackgroundColorLight=250,250,250
PrimaryTextColorLight=39,39,39
ShadowColorLight=255,255,255
LightGreyLight=189,189,189
IconBackgroundColorLight=0,0,0
SecondaryTextColorLight=111,111,111
IconAlphaLight=222
;---------> DarkTheme colors

; DarkBackgroundColor=39,39,39
BackgroundColorDark=33,33,33
SecondaryBackgroundColorDark=33,33,33
PrimaryTextColorDark=250,250,250
ShadowColorDark=0,0,0
LightGreyDark=117,117,117
IconBackgroundColorDark=158,158,158
SecondaryTextColorDark=158,158,158
IconAlphaDark=255
;---------> OtherVariables

WVar=(#SCREENAREAWIDTH#/1920)
HVar=(#SCREENAREAHEIGHT#/1080)
MaxWidth=240
MaxHeight=178
YSpacing=36
Play=[\xe037]
Pause=[\xe034]
Replay=[\xe042]
XFromTheWall=16
XPOS=12
Interface=Best

;-=-=-=-=-=-=- WEATHER SKIN VARIABLES -=-=-=-=-=-=-

LocationCode=GRXX5975
UnitOfMeasure=m
RegCurrent=(?siU)<cc>.*<tmp>(.*)</tmp>.*<t>(.*)</t>.*<icon>(.*)</icon>
RegTomorrow=(?siU)<day d="1".*t="(.*)".*dt="(.*)".*<hi>(.*)</hi>.*<low>(.*)</low>.*<icon>(.*)</icon>.*<t>(.*)</t>
UrlForcast=http://wxdata.weather.com/wxdata/weather/local/#Location#?cc=*&unit=#Unit#&dayf=3&locale
;http://wxdata.weather.com/wxdata/weather/local/#LocationCode#?cc=*&unit=m&dayf=3&locale


;-=-=-=-=-=-=- LAUNCHER VARIABLES -=-=-=-=-=-=-

ShortcutPadding=0,3,0,7

NameShortcut1=Chrome
NameShortcut2=Photoshop
NameShortcut3=Notepad++
NameShortcut4=μTorrent
NameShortcut5=YouTube

ActionShortcut1=["C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"]
ActionShortcut2=["C:\Program Files\Adobe\Adobe Photoshop CC 2017\Photoshop.exe"]
ActionShortcut3=["C:\Program Files\Notepad++\notepad++.exe"]
ActionShortcut4=["C:\Users\Kyria\AppData\Roaming\uTorrent\uTorrent.exe"]
ActionShortcut5=["https://www.youtube.com/"]
BackgroundColor=#DarkBackgroundColor#
PrimaryTextColor=#DarkPrimaryTextColor#
ShadowColor=#DarkShadowColor#
LightGrey=#DarkLightGrey#
IconBackgroundColor=#DarkIconBackgroundColor#




[MaterialIcons]
StringAlign=Center
FontColor=#AccentColor#
FontFace=Material Icons
FontSize=(15*#WVar#)
AntiAlias=1

[NormalMaterialIcons]
StringAlign=Left
FontColor=[#PrimaryTextColor[#Theme]],[#IconAlpha[#Theme]]
FontFace=Material Icons
FontSize=(18*#WVar#)
AntiAlias=1
UpdateDivider=-1
DynamicVariables=1

[Header]
StringAlign=Center
FontColor=#AccentColor#
FontFace=Roboto
FontSize=(18*#WVar#)
AntiAlias=1

[NormalLeft]
StringAlign=Left
FontColor=[#PrimaryTextColor[#Theme]]
FontFace=Roboto
FontSize=(13*#WVar#)
AntiAlias=1

[NormalRight]
StringAlign=Right
FontColor=[#PrimaryTextColor[#Theme]]
FontFace=Roboto
FontSize=(13*#WVar#)
AntiAlias=1

[NormalCenter]
StringAlign=Center
FontColor=[#PrimaryTextColor[#Theme]]
FontFace=Roboto
FontSize=(13*#WVar#)
AntiAlias=1

[Secondary]
StringAlign=Center
FontColor=[#SecondaryTextColor[#Theme]]
FontFace=Roboto Light
FontSize=(13*#WVar#)
AntiAlias=1
</BMVariables>
<BMDisks>
[Variables]
Underliner_Width_1=0
Underliner_Width_2=0
Underliner_Width_3=0
ClickAlpha=0
IconMouseAction=[shell:mycomputerfolder]
IconToolTip="View all Disks"
IconName=Disks_Icon
HeaderText="Disks"

;============= MEASURES =============

[MeasureTotalDisk1]
Measure=FreeDiskSpace
Drive=C:
Total=1
UpdateDivider=120

[MeasureUsedDisk1]
Measure=FreeDiskSpace
Drive=C:
InvertMeasure=1
UpdateDivider=120

[DiskAnimation1]
Measure=Plugin
Plugin=ActionTimer
ActionList1=UpdateOnce | Wait 16 | Repeat IconAnimationIn, 16, 16
UpdateOnce=[!Update]
IconAnimationIn=[!SetVariable Underliner_Width_1 (Clamp(#Underliner_Width_1#+25,0,(#MaxWidth#-[MeterDisk1_Name:X]*2)))][!UpdateMeter Underliner_1][!UpdateMeasure #CurrentSection#][!Redraw]
ActionList2=UpdateOnce | Wait 25 | Repeat IconAnimationOut, 16, 13
IconAnimationOut=[!SetVariable Underliner_Width_1 (Clamp(#Underliner_Width_1#-20,0,(#MaxWidth#-[MeterDisk1_Name:X]*2)))][!UpdateMeter Underliner_1][!UpdateMeasure #CurrentSection#][!Redraw]
ActionList3=UpdateOnce | Wait 25 | Repeat MouseUp, 16, 6
MouseUp=[!SetVariable Underliner_Width_1 (Clamp(#Underliner_Width_1#-20,130,(#MaxWidth#-[MeterDisk1_Name:X]*2)))][!UpdateMeter Underliner_1][!UpdateMeasure #CurrentSection#][!Redraw]
DynamicVariables=1

[MeasureTotalDisk2]
Measure=FreeDiskSpace
Drive=E:
Total=1
UpdateDivider=120

[MeasureUsedDisk2]
Measure=FreeDiskSpace
Drive=E:
InvertMeasure=1
UpdateDivider=120

[DiskAnimation2]
Measure=Plugin
Plugin=ActionTimer
ActionList1=UpdateOnce | Wait 16 | Repeat IconAnimationIn, 16, 16
UpdateOnce=[!Update]
IconAnimationIn=[!SetVariable Underliner_Width_2 (Clamp(#Underliner_Width_2#+25,0,(#MaxWidth#-[MeterDisk2_Name:X]*2)))][!UpdateMeter Underliner_2][!UpdateMeasure #CurrentSection#][!Redraw]
ActionList2=UpdateOnce | Wait 25 | Repeat IconAnimationOut, 16, 13
IconAnimationOut=[!SetVariable Underliner_Width_2 (Clamp(#Underliner_Width_2#-20,0,(#MaxWidth#-[MeterDisk2_Name:X]*2)))][!UpdateMeter Underliner_2][!UpdateMeasure #CurrentSection#][!Redraw]
ActionList3=UpdateOnce | Wait 25 | Repeat MouseUp, 16, 6
MouseUp=[!SetVariable Underliner_Width_2 (Clamp(#Underliner_Width_2#-20,130,(#MaxWidth#-[MeterDisk2_Name:X]*2)))][!UpdateMeter Underliner_2][!UpdateMeasure #CurrentSection#][!Redraw]
DynamicVariables=1

[MeasureTotalDisk3]
Measure=FreeDiskSpace
Drive=F:
Total=1
UpdateDivider=120

[MeasureUsedDisk3]
Measure=FreeDiskSpace
Drive=F:
InvertMeasure=1
UpdateDivider=120

[DiskAnimation3]
Measure=Plugin
Plugin=ActionTimer
ActionList1=UpdateOnce | Wait 16 | Repeat IconAnimationIn, 16, 16
UpdateOnce=[!Update]
IconAnimationIn=[!SetVariable Underliner_Width_3 (Clamp(#Underliner_Width_3#+25,0,(#MaxWidth#-[MeterDisk3_Name:X]*2)))][!UpdateMeter Underliner_3][!UpdateMeasure #CurrentSection#][!Redraw]
ActionList2=UpdateOnce | Wait 25 | Repeat IconAnimationOut, 16, 13
IconAnimationOut=[!SetVariable Underliner_Width_3 (Clamp(#Underliner_Width_3#-20,0,(#MaxWidth#-[MeterDisk3_Name:X]*2)))][!UpdateMeter Underliner_3][!UpdateMeasure #CurrentSection#][!Redraw]
ActionList3=UpdateOnce | Wait 25 | Repeat MouseUp, 16, 6
MouseUp=[!SetVariable Underliner_Width_3 (Clamp(#Underliner_Width_3#-20,130,(#MaxWidth#-[MeterDisk3_Name:X]*2)))][!UpdateMeter Underliner_3][!UpdateMeasure #CurrentSection#][!Redraw]
DynamicVariables=1

[Measure_Click_Animation]
Measure=Plugin
Plugin=ActionTimer
ActionList1=Repeat MouseOver, 20, 26
ActionList2=Repeat MouseLeave, 20, 26
ActionList3=Repeat MouseDown, 20, 26
ActionList4=Repeat MouseUp, 20, 26
MouseOver=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#+5,0,50))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
MouseLeave=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#-5,0,70))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
MouseDown=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#+3,50,70))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
MouseUp=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#-3,50,70))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
DynamicVariables=1

;============== METERS ==============

;-------------------------------------
;-------------------------------------

[MeterDisk1_Name]
Meter=String
MeterStyle=NormalLeft
X=#XFromTheWall#
Y=20r
Text="C:\"
DynamicVariables=1
UpdateDivider=-1

[MeterDisk1_Value]
Meter=String
MeasureName=MeasureUsedDisk1
MeasureName2=MeasureTotalDisk1
MeterStyle=NormalRight
X=(#MaxWidth#-#XFromTheWall#)
Y=r
Text="%1B/%2B"
NumOfDecimals=1
AutoScale=1
UpdateDivider=10

[Background_Disk_1]
Meter=Shape
X=0
Y=([MeterDisk1_Name:Y]-[MeterDisk1_Name:H]/2)
Shape=Rectangle 0,0,#MaxWidth#,([MeterDisk1_Name:H]*1.75) | Fill Color 0,0,0,0 | StrokeWidth 0
MouseOverAction=[!CommandMeasure DiskAnimation1 "Stop 2"][!CommandMeasure DiskAnimation1 "Execute 1"]
MouseLeaveAction=[!CommandMeasure DiskAnimation1 "Stop 1"][!CommandMeasure DiskAnimation1 "Execute 2"]
LeftMouseUpAction=["C:\"]
DynamicVariables=1
UpdateDivider=-1

[Underliner_1]
Meter=Shape
X=(#MaxWidth#/2-#Underliner_Width_1#/2)
Y=-5R
Shape=Rectangle 0,0,#Underliner_Width_1#,1 | Fill Color #AccentColor# | StrokeWidth 0
DynamicVariables=1
UpdateDivider=-1

;-------------------------------------
;-------------------------------------

[MeterDisk2_Name]
Meter=String
MeterStyle=NormalLeft
X=#XFromTheWall#
Y=([MeterDisk1_Name:Y]+#YSpacing#)
Text="E:\"
DynamicVariables=1
UpdateDivider=-1

[MeterDisk2_Value]
Meter=String
MeasureName=MeasureUsedDisk2
MeasureName2=MeasureTotalDisk2
MeterStyle=NormalRight
X=(#MaxWidth#-#XFromTheWall#)
Y=r
Text="%1B/%2B"
NumOfDecimals=1
AutoScale=1
UpdateDivider=10

[Background_Disk_2]
Meter=Shape
X=0
Y=([MeterDisk2_Name:Y]-[MeterDisk2_Name:H]/2)
Shape=Rectangle 0,0,#MaxWidth#,([MeterDisk2_Name:H]*1.75) | Fill Color 0,0,0,0 | StrokeWidth 0
MouseOverAction=[!CommandMeasure DiskAnimation2 "Stop 2"][!CommandMeasure DiskAnimation2 "Execute 1"]
MouseLeaveAction=[!CommandMeasure DiskAnimation2 "Stop 1"][!CommandMeasure DiskAnimation2 "Execute 2"]
LeftMouseUpAction=["E:\"]
DynamicVariables=1
UpdateDivider=-1

[Underliner_2]
Meter=Shape
X=(#MaxWidth#/2-#Underliner_Width_2#/2)
Y=-5R
Shape=Rectangle 0,0,#Underliner_Width_2#,1 | Fill Color #AccentColor# | StrokeWidth 0
DynamicVariables=1
UpdateDivider=-1

;-------------------------------------
;-------------------------------------

[MeterDisk3_Name]
Meter=String
MeterStyle=NormalLeft
X=#XFromTheWall#
Y=([MeterDisk2_Name:Y]+#YSpacing#)
Text="F:\"
DynamicVariables=1
UpdateDivider=-1

[MeterDisk3_Value]
Meter=String
MeasureName=MeasureUsedDisk3
MeasureName2=MeasureTotalDisk3
MeterStyle=NormalRight
X=(#MaxWidth#-#XFromTheWall#)
Y=r
Text="%1B/%2B"
NumOfDecimals=1
AutoScale=1
UpdateDivider=10

[Background_Disk_3]
Meter=Shape
X=0
Y=([MeterDisk3_Name:Y]-[MeterDisk3_Name:H]/2)
Shape=Rectangle 0,0,#MaxWidth#,([MeterDisk2_Name:H]*1.75) | Fill Color 0,0,0,0 | StrokeWidth 0
MouseOverAction=[!CommandMeasure DiskAnimation3 "Stop 2"][!CommandMeasure DiskAnimation3 "Execute 1"]
MouseLeaveAction=[!CommandMeasure DiskAnimation3 "Stop 1"][!CommandMeasure DiskAnimation3 "Execute 2"]
LeftMouseUpAction=["F:\"]
DynamicVariables=1
UpdateDivider=-1

[Underliner_3]
Meter=Shape
X=(#MaxWidth#/2-#Underliner_Width_3#/2)
Y=-5R
Shape=Rectangle 0,0,#Underliner_Width_3#,1 | Fill Color #AccentColor# | StrokeWidth 0
DynamicVariables=1
UpdateDivider=-1

[ItsaMeMario]
Meter=Image
Y=16R
</BMDisks>

<BMMediaControl>
[Variables]
ClickAlpha=0
AlphaMeterPlayPause=0
AlphaMeterNext=0
AlphaMeterPrevious=0

CurrentMousePosition=0
SeekAlpha=0

IconMouseAction=[]
IconToolTip="Does nothing ATM"
IconName=Now_Playing_Icon
HeaderText="Now playing"
;============= MEASURES =============

[MeasureTitle]
Measure=Plugin
Plugin=WebNowPlaying
PlayerType=Title
Substitute="":"Nothing is playing"
IfMatch="Nothing is playing"
IfMatchAction=[!DisableMouseAction Meter_Position_Bar_Controller "MouseOverAction|MouseLeaveAction"][!UpdateMeasure TitleText]
IfNotMatchAction=[!EnableMouseAction Meter_Position_Bar_Controller "MouseOverAction|MouseLeaveAction"][!UpdateMeasure TitleText]
OnChangeAction=[!UpdateMeter TitleText][!Redraw]
DynamicVariables=1

;------------- CONTROLS -------------
;------------- CONTROLS -------------

[MeasureSkipAd]
Measure=Plugin
Plugin=HotKey
HotKey=CTRL .
KeyDownAction=[!CommandMeasure MeasurePlayPause "SetPosition 100"]
UpdateDivider=-1

[MeasurePreviousViaKey]
Measure=Plugin
Plugin=HotKey
HotKey=CTRL ,
KeyDownAction=[!CommandMeasure MeasurePlayPause "Previous"]
UpdateDivider=-1

;[MeasurePlayPauseViaKey]
;Measure=Plugin
;Plugin=HotKey
;HotKey=CTRL SPACE
;KeyDownAction=[!CommandMeasure MeasurePlayPause "PlayPause"]

[MeasureNextViaKey]
Measure=Plugin
Plugin=HotKey
HotKey=CTRL SHIFT .
KeyDownAction=[!CommandMeasure MeasurePlayPause "Next"]
UpdateDivider=-1

;------------- /CONTROLS -------------
;------------- /CONTROLS -------------

[InstaPause]
Measure=Plugin
Plugin=ActionTimer
ActionList1=Execute | Repeat InstaUpdate, 20, 15
Execute=[!CommandMeasure MeasurePlayPause "PlayPause"][!Update]
InstaUpdate=[!Update]
DynamicVariables=1
UpdateDivider=-1

[MeasurePosition]
Measure=Plugin
Plugin=WebNowPlaying
PlayerType=Position
Substitute="":"N/A"
MaxValue=[MeasureDuration]

[MeasureDuration]
Measure=Plugin
Plugin=WebNowPlaying
PlayerType=Duration
UpdateDivider=5
Substitute="":"N/A"

[MeasureProgress]
Measure=Plugin
Plugin=WebNowPlaying
PlayerType=Progress
Substitute="":"N/A"

[MeasurePlayPause]
Measure=Plugin
Plugin=WebNowPlaying
PlayerType=State
Substitute="0":"Play","1":"Pause","2":"Play","3":"Replay"
DynamicVariables=1
OnChangeAction=[!UpdateMeter MeterPlayPause][!Redraw]

[MeasureHoverPlayPause]
Measure=Plugin
Plugin=ActionTimer
ActionList1=UpdateOnce | Wait 16 | Repeat IconAnimationIn, 16, 13
UpdateOnce=[!Update]
IconAnimationIn=[!SetVariable AlphaMeterPlayPause (Clamp(#AlphaMeterPlayPause#+30,0,254))][!UpdateMeter MeterHoverPlayPause][!UpdateMeasure #CurrentSection#][!Redraw]
ActionList2=UpdateOnce | Wait 25 | Repeat IconAnimationOut, 25, 13
IconAnimationOut=[!SetVariable AlphaMeterPlayPause (Clamp(#AlphaMeterPlayPause#-20,0,254))][!UpdateMeter MeterHoverPlayPause][!UpdateMeasure #CurrentSection#][!Redraw]
DynamicVariables=1
UpdateDivider=-1

[MeasureHoverNext]
Measure=Plugin
Plugin=ActionTimer
ActionList1=UpdateOnce | Wait 16 | Repeat IconAnimationIn, 16, 13
UpdateOnce=[!Update]
IconAnimationIn=[!SetVariable AlphaMeterNext (Clamp(#AlphaMeterNext#+30,0,254))][!UpdateMeter MeterHoverNext][!UpdateMeasure #CurrentSection#][!Redraw]
ActionList2=UpdateOnce | Wait 25 | Repeat IconAnimationOut, 25, 13
IconAnimationOut=[!SetVariable AlphaMeterNext (Clamp(#AlphaMeterNext#-20,0,254))][!UpdateMeter MeterHoverNext][!UpdateMeasure #CurrentSection#][!Redraw]
DynamicVariables=1
UpdateDivider=-1

[MeasureHoverPrevious]
Measure=Plugin
Plugin=ActionTimer
ActionList1=UpdateOnce | Wait 16 | Repeat IconAnimationIn, 16, 13
UpdateOnce=[!Update]
IconAnimationIn=[!SetVariable AlphaMeterPrevious (Clamp(#AlphaMeterPrevious#+30,0,254))][!UpdateMeter MeterHoverPrevious][!UpdateMeasure #CurrentSection#][!Redraw]
ActionList2=UpdateOnce | Wait 25 | Repeat IconAnimationOut, 25, 13
IconAnimationOut=[!SetVariable AlphaMeterPrevious (Clamp(#AlphaMeterPrevious#-20,0,254))][!UpdateMeter MeterHoverPrevious][!UpdateMeasure #CurrentSection#][!Redraw]
DynamicVariables=1
UpdateDivider=-1

[Measure_Click_Animation]
Measure=Plugin
Plugin=ActionTimer
ActionList1=Repeat MouseOver, 20, 26
ActionList2=Repeat MouseLeave, 20, 26
ActionList3=Repeat MouseDown, 20, 26
ActionList4=Repeat MouseUp, 20, 26
MouseOver=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#+5,0,50))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
MouseLeave=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#-5,0,70))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
MouseDown=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#+3,50,70))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
MouseUp=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#-3,50,70))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
DynamicVariables=1
UpdateDivider=-1

;============== METERS ==============

[TitleText]
Meter=String
MeasureName=MeasureTitle
MeterStyle=NormalCenter
X=(#MaxWidth#/2)
Y=(10*#WVar#)R
W=(#MaxWidth#-2*#XFromTheWall#)
H=(20*#HVar#)
ToolTipText="%1"
ClipString=1
DynamicVariables=1
AntiAlias=1
UpdateDivider=-1

[MeterHoverPlayPause]
Meter=Image
ImageName=#@#Images\ButtonShadow.png
X=([MeterPlayPause:X]-[#CurrentSection#:W]/2+[MeterPlayPause:W]/2)
Y=([MeterPlayPause:Y]-[#CurrentSection#:W]/2+[MeterPlayPause:W]/2+2)
;+2 cuz the shadow of the image isn't calculated as intended by Rainmeter.
ImageAlpha=(#AlphaMeterPlayPause#+1)
ImageTint=[#BackgroundColor[#Theme]]
DynamicVariables=1
UpdateDivider=-1

[MeterAreaPlayPause]
Meter=Shape
Shape=Ellipse 0,0,15,15 | Fill Color 0,0,0,0 | StrokeWidth 0 | Stroke Color #AccentColor#
X=([MeterPlayPause:X]+[#CurrentSection#:W]/2+3)
Y=([MeterPlayPause:Y]+[#CurrentSection#:H]/2+3)
LeftMouseUpAction=[!CommandMeasure InstaPause "Stop 1"][!CommandMeasure InstaPause "Execute 1"]
MouseOverAction=[!CommandMeasure MeasureHoverPlayPause "Stop 2"][!CommandMeasure MeasureHoverPlayPause "Execute 1"]
MouseLeaveAction=[!CommandMeasure MeasureHoverPlayPause "Stop 1"][!CommandMeasure MeasureHoverPlayPause "Execute 2"]
DynamicVariables=1
UpdateDivider=-1

[MeterHoverNext]
Meter=Image
ImageName=#@#Images\ButtonShadow.png
X=([MeterNext:X]-[#CurrentSection#:W]/2+[MeterNext:W]/2)
Y=([MeterNext:Y]-[#CurrentSection#:W]/2+[MeterNext:W]/2+2)
ImageAlpha=(#AlphaMeterNext#+1)
ImageTint=[#BackgroundColor[#Theme]]
DynamicVariables=1
UpdateDivider=-1

[MeterAreaNext]
Meter=Shape
Shape=Ellipse 0,0,15,15 | Fill Color 0,0,0,0 | StrokeWidth 0 | Stroke Color #AccentColor#
X=([MeterNext:X]+[#CurrentSection#:W]/2+3)
Y=([MeterNext:Y]+[#CurrentSection#:H]/2+3)
LeftMouseUpAction=[!CommandMeasure MeasurePlayPause "Next"]
MouseOverAction=[!CommandMeasure MeasureHoverNext "Stop 2"][!CommandMeasure MeasureHoverNext "Execute 1"]
MouseLeaveAction=[!CommandMeasure MeasureHoverNext "Stop 1"][!CommandMeasure MeasureHoverNext "Execute 2"]
DynamicVariables=1
UpdateDivider=-1

[MeterHoverPrevious]
Meter=Image
ImageName=#@#Images\ButtonShadow.png
X=([MeterPrevious:X]-[#CurrentSection#:W]/2+[MeterPrevious:W]/2)
Y=([MeterPrevious:Y]-[#CurrentSection#:W]/2+[MeterPrevious:W]/2+2)
ImageAlpha=(#AlphaMeterPrevious#+1)
ImageTint=[#BackgroundColor[#Theme]]
DynamicVariables=1
UpdateDivider=-1

[MeterAreaPrevious]
Meter=Shape
Shape=Ellipse 0,0,15,15 | Fill Color 0,0,0,0 | StrokeWidth 0 | Stroke Color #AccentColor#
X=([MeterPrevious:X]+[#CurrentSection#:W]/2+3)
Y=([MeterPrevious:Y]+[#CurrentSection#:H]/2+3)
LeftMouseUpAction=[!CommandMeasure MeasurePlayPause "Previous"]
MouseOverAction=[!CommandMeasure MeasureHoverPrevious "Stop 2"][!CommandMeasure MeasureHoverPrevious "Execute 1"]
MouseLeaveAction=[!CommandMeasure MeasureHoverPrevious "Stop 1"][!CommandMeasure MeasureHoverPrevious "Execute 2"]
DynamicVariables=1
UpdateDivider=-1

[MeterPlayPause]
Meter=String
MeterStyle=MaterialIcons
X=(#MaxWidth#/2)
Y=([TitleText:Y]+35)
Text=[#[&MeasurePlayPause]]
DynamicVariables=1
UpdateDivider=-1

[MeterNext]
Meter=String
MeterStyle=MaterialIcons
X=(17*#WVar#)R
Y=r
Text=[\xe044]
DynamicVariables=1
UpdateDivider=-1

[MeterPrevious]
Meter=String
MeterStyle=MaterialIcons
X=(-74*#WVar#)r
Y=r
Text=[\xe045]
DynamicVariables=1
UpdateDivider=-1

[Meter_Current_Position]
Meter=String
MeterStyle=NormalLeft
FontFace=Roboto Light
FontSize=10
MeasureName=MeasurePosition
X=#XFromTheWall#
Y=2r
W=92
DynamicVariables=1

[Meter_Overall_Duration]
Meter=String
MeterStyle=NormalRight
FontFace=Roboto Light
FontSize=10
MeasureName=MeasureDuration
X=(#MaxWidth#-#XFromTheWall#)
Y=r
W=92
DynamicVariables=1

[Meter_Position_Bar_Controller]
Meter=Shape
X=#XFromTheWall#
Y=13R
Shape=Rectangle 0,0,(#MaxWidth#-2*#XFromTheWall#),15 | StrokeWidth 0 | Fill Color 0,0,0,0
MouseOverAction=[!CommandMeasure FollowMouseAlpha "Stop 2"][!CommandMeasure FollowMouseAlpha "Execute 1"][!CommandMeasure MeasureMouse "Start"]
MouseLeaveAction=[!CommandMeasure FollowMouseAlpha "Stop 1"][!CommandMeasure FollowMouseAlpha "Execute 2"][!CommandMeasure MeasureMouse "Stop"]
LeftMouseDownAction=[!CommandMeasure MeasureMouse "Start"]
DynamicVariables=1
UpdateDivider=-1

[Meter_Position_Bar]
Meter=BAR
BarOrientation=Horizontal
MeasureName=MeasureProgress
X=#XFromTheWall#
Y=([Meter_Position_Bar_Controller:H]/2-[#CurrentSection#:H]/2)r
W=(#MaxWidth#-2*#XFromTheWall#)
H=3
BarColor=#Blue#
SolidColor=[#LightGrey[#Theme]]
DynamicVariables=1

[ItsaMeMario]
Meter=Image
Y=16R

[

;=================== SEEK ===================
;=================== SEEK ===================
;=================== SEEK ===================

[FollowMouseAlpha]
Measure=Plugin
Plugin=ActionTimer
ActionList1=Repeat FadeIn, 20, 9
FadeIn=[!SetVariable SeekAlpha "(Clamp(#SeekAlpha#+29,0,255))"][!UpdateMeasure #CurrentSection#][!UpdateMeasureGroup FollowHover][!UpdateMeterGroup FollowHover][!Redraw]
ActionList2=Repeat FadeOut, 20, 9
FadeOut=[!SetVariable SeekAlpha "(Clamp(#SeekAlpha#-29,0,255))"][!UpdateMeasure #CurrentSection#][!UpdateMeasureGroup FollowHover][!UpdateMeterGroup FollowHover][!Redraw]
DynamicVariables=1
UpdateDivider=-1

[MeasureMouse]
Group=FollowHover
Measure=Plugin
Plugin=Mouse
MouseMoveAction=[!SetVariable CurrentMousePosition "(Clamp($MouseX$,16,#MaxWidth#)-16)"][!UpdateMeasure ConvertToString][!UpdateMeasure MeasureFollowHoverBar][!UpdateMeterGroup FollowHover][!Redraw]
LeftMouseDragAction=[!CommandMeasure MeasureProgress "SetPosition [ConvertToString]"][!Update]
RelativeToSkin=1
RequireDragging=1
DynamicVariables=1
UpdateDivider=-1

[MeasureFollowHoverBar]
Group=FollowHover
Measure=Calc
Formula=#CurrentMousePosition#
MinValue=0
MaxValue=[Meter_Position_Bar_Controller:W]
DynamicVariables=1
UpdateDivider=-1

[ConvertToString]
Group=FollowHover
Measure=Calc
Formula=[MeasureFollowHoverBar:%,0]
RegExpSubstitute=1
Substitute="^(.)$":"0\1"
DynamicVariables=1
OnUpdateAction=[!UpdateMeasure CalculateHoverSeconds][!UpdateMeasure CalculateHoverMinutes][!UpdateMeasure CalculateHoverHours]
UpdateDivider=-1

[SetFollowHoverBarText]
Group=FollowHover
Measure=Calc
Formula=1
IfCondition=(([MeasureDuration:]*0.[ConvertToString]/3600)>1)
IfTrueAction=[!SetOption FollowHoverBarText Text "[*CalculateHoverHours*]:[*CalculateHoverMinutes*]:[*CalculateHoverSeconds*]"][!UpdateMeasureGroup FollowHover]
IfFalseAction=[!SetOption FollowHoverBarText Text "[*CalculateHoverMinutes*]:[*CalculateHoverSeconds*]"][!UpdateMeasureGroup FollowHover]
DynamicVariables=1
UpdateDivider=-1

[CalculateHoverSeconds]
Group=FollowHover
Measure=Calc
Formula=Trunc([MeasureDuration:]*0.[ConvertToString]%60)
RegExpSubstitute=1
Substitute="^(.)$":"0\1"
DynamicVariables=1
UpdateDivider=-1

[CalculateHoverMinutes]
Group=FollowHover
Measure=Calc
Formula=Trunc([MeasureDuration:]*0.[ConvertToString]/60%60)
RegExpSubstitute=1
Substitute="^(.)$":"0\1"
DynamicVariables=1
UpdateDivider=-1

[CalculateHoverHours]
Group=FollowHover
Measure=Calc
Formula=Trunc([MeasureDuration:]*0.[ConvertToString]/3600)
RegExpSubstitute=1
Substitute="^(.)$":"0\1"
DynamicVariables=1
UpdateDivider=-1

[FollowHoverBarTextBackground]
Group=FollowHover
Meter=Shape
Shape=Rectangle ([FollowHoverBarText:X]-2*3),([FollowHoverBarText:Y]+1),([FollowHoverBarText:W]+3*4),[FollowHoverBarText:H],1 | FillColor [#PrimaryTextColor[#Theme]],#SeekAlpha# | StrokeWidth 0
DynamicVariables=1
UpdateDivider=-1

[FollowHoverBarText]
Group=FollowHover
Meter=String
MeterStyle=Secondary
FontFace=Roboto-Regular
FontColor=[#BackgroundColor[#Theme]],#SeekAlpha#
FontSize=10
X=([MeasureFollowHoverBar]+[#CurrentSection#:W]/2)
Y=110
DynamicVariables=1
UpdateDivider=-1

</BMMediaControl>

<BMNetwork>
[Variables]
ClickAlpha=0
MyNameIs=Network
IconMouseAction=[ms-settings:network]
IconToolTip="Network & Internet settings"
IconName=WiFi_[Measure_Quality_Icon]_Icon
HeaderText="Network"

;============= MEASURES =============

;[FrostedGlass]
;Measure=Plugin
;Plugin=FrostedGlass
;Type=Acrylic
;Border=All

[MeasureNetwork]
Measure=Plugin
Plugin=SysInfo
SysInfoType=LAN_CONNECTIVITY
UpdateRate=5
IfCondition=MeasureNetWork = -1
IfTrueAction=[!UpdateMeter MeterTopLeftIcon][!Redraw][!HideMeterGroup Online ][!ShowMeterGroup Offline][!Update]
IfFalseAction=[!HideMeterGroup Offline ][!ShowMeterGroup Online][!Update]

[Measure_Connection_Type]
Measure=Plugin
Plugin=SysInfo
SysInfoType=ADAPTER_TYPE
SysInfoData=#Interface#
UpdateRate=5
IfMatch=Wireless
IfMatchAction=[!EnableMeasureGroup "WIFI"][!Delay 24][!SetOption MeterTopLeftIcon ImageName "#@#Images\WiFi_[Measure_Quality_Icon]_Icon.png"][!Update]
IfNotMatchAction=[!DisableMeasureGroup "WIFI"][!SetOption MeterTopLeftIcon ImageName "#@#Images\Ethernet_Icon.png"][!UpdateMeter MeterTopLeftIcon][!Redraw]
OnChangeAction=[!UpdateMeasure MeasureNetwork][!Delay 24][!SetOption MeterTopLeftIcon ImageName "#@#Images\WiFi_[Measure_Quality_Icon]_Icon.png"][!Update]
DynamicVariables=1

[MeasureSSID]
Group=WIFI
Measure=Plugin
Plugin=WifiStatus
WiFiInfoType=SSID
IfMatch=^-----$
IfMatch2="Redmi"
IfMatchAction2=[!Zpos 1][!ShowMeterGroup Data][!Update]
IfNotMatchAction2=[!Zpos 0][!HideMeterGroup Data][!Update]
Substitute="-1":"-----"

[MeasureQuality]
Group=WIFI
Measure=Plugin
Plugin=WifiStatus
WiFiInfoType=Quality
RegExpSubstitute=1

[Measure_Quality_Icon]
Group=WIFI
Measure=Calc
Formula=(MeasureQuality = 0 ? -1 :(MeasureQuality < 20 ? 1 : (MeasureQuality < 40 ? 2 : (MeasureQuality < 60 ? 3 : (MeasureQuality < 80 ? 4 : 5)))))
MinValue=-1
MaxValue=5
OnChangeAction=[!SetOption MeterTopLeftIcon ImageName "#@#Images\WiFi_[Measure_Quality_Icon]_Icon.png"][!UpdateMeter MeterTopLeftIcon][!Redraw]
DynamicVariables=1

[MeasureNetOut]
Measure=NetOut

[MeasureNetIn]
Measure=NetIn

;============== ANIMATIONS MEASURES ==============

[Measure_Click_Animation]
Measure=Plugin
Plugin=ActionTimer
ActionList1=Repeat MouseOver, 20, 26
ActionList2=Repeat MouseLeave, 20, 26
ActionList3=Repeat MouseDown, 20, 26
ActionList4=Repeat MouseUp, 20, 26
MouseOver=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#+5,0,50))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
MouseLeave=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#-5,0,70))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
MouseDown=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#+3,50,70))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
MouseUp=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#-3,50,70))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
DynamicVariables=1

;============== METERS ==============

[MeterUpload]
Group=Online
Meter=String
MeterStyle=NormalLeft
X=#XFromTheWall#
Y=20r
Text="Upload:"
UpdateDivider=-1

[MeterUpload_Value]
Group=Online
Meter=String
MeasureName=MeasureNetOut
MeterStyle=NormalRight
X=(#MaxWidth#-#XFromTheWall#)
Y=r
Text="%1B"
DynamicVariables=1
AutoScale=1

[MeterDownload]
Group=Online
Meter=String
MeterStyle=NormalLeft
X=#XFromTheWall#
Y=17R
Text="Download:"
UpdateDivider=-1

[MeterDownload_Value]
Group=Online
Meter=String
MeasureName=MeasureNetIn
MeterStyle=NormalRight
X=(#MaxWidth#-#XFromTheWall#)
Y=r
Text="%1B"
DynamicVariables=1
AutoScale=1

[ItsaMeMario]
Meter=Image
Y=16R

[MeterDisconnected]
Group=Offline
Meter=String
MeasureName=MeasureNetIn
MeterStyle=Header
FontColor=#Red#
X=(#MaxWidth#/2)
Y=80
Text="Disconnected"
DynamicVariables=1
UpdateDivider=-1

[DataUsage]
Group=Data
Meter=String
MeterStyle=Header
FontColor=#Red#
X=(#MaxWidth#/2)
Y=r
Text="Connected to Redmi"
DynamicVariables=1
Hidden=1
</BMNetwork>

<BMStatistics>
[Variables]
ClickAlpha=0
IconMouseAction=[taskmgr]
IconToolTip="Task Manager"
IconName=Statistics_Icon
HeaderText="Stats"

;============= MEASURES =============

;-=-=-=-=-=-=-=-=-=-=- > CPU < -=-=-=-=-=-=-=-=-=-=-

[MeasureCPU]
Measure=CPU
Processor=0
IfAboveValue=75
IfAboveAction=[!SetOption MeasureCPUBar BarColor #Red#][!Redraw]
IfBelowValue=75
IfBelowAction=[!SetOption MeasureCPUBar BarColor #Blue#][!Redraw]

[MeasureTopProcess]
Measure=Plugin
Plugin=UsageMonitor
Alias=CPU
Blacklist=_Total|Idle|dwm|wmpnetwk|csrss|svchost|lsass|System|system
Index=1

;-=-=-=-=-=-=-=-=-=-=- > CPU TEMP < -=-=-=-=-=-=-=-=-=-=-

[MeasureTempC1]
Measure=Plugin
Plugin=CoreTemp
CoreTempType=Temperature
CoreTempIndex=0

[MeasureTempC2]
Measure=Plugin
Plugin=CoreTemp
CoreTempType=Temperature
CoreTempIndex=1

[MeasureAverageTemp]
Measure=Calc
Formula=([MeasureTempC1]+[MeasureTempC2])/2
DynamicVariables=1
MinValue=23
MaxValue=63
IfAboveValue=50
IfAboveAction=[!SetOption MeasureTempBar BarColor #Red#][!Redraw]
IfBelowValue=50
IfBelowAction=[!SetOption MeasureTempBar BarColor #Blue#][!Redraw]

;-=-=-=-=-=-=-=-=-=-=- > RAM < -=-=-=-=-=-=-=-=-=-=-

[MeasureRAM]
Measure=PhysicalMemory
Total=1

[MeasurePhysMemUsed]
Measure=PhysicalMemory

[MeasureUsedPercent]
Measure=Calc
Formula=(MeasurePhysMemUsed / MeasureRAM) * 100
IfAboveValue=70
IfAboveAction=[!SetOption MeasureRAMBar BarColor #Red#][!Redraw]
IfBelowValue=70
IfBelowAction=[!SetOption MeasureRAMBar BarColor #Blue#][!Redraw]
MinValue=0
MaxValue=100

;-=-=-=-=-=-=-=-=-=-=- > GPU < -=-=-=-=-=-=-=-=-=-=-

[MeasureGPU]
Measure=Plugin
Plugin=UsageMonitor
Alias=GPU
IfAboveValue=60
IfAboveAction=[!SetOption MeasureGPUBar FontColor #Red#][!Redraw]
IfBelowValue=60
IfBelowAction=[!SetOption MeasureGPUBar FontColor #Blue#][!Redraw]

;-=-=-=-=-=-=-=-=-=-=- > ANIMATIONS < -=-=-=-=-=-=-=-=-=-=-

[Measure_Click_Animation]
Measure=Plugin
Plugin=ActionTimer
ActionList1=Repeat MouseOver, 20, 26
ActionList2=Repeat MouseLeave, 20, 26
ActionList3=Repeat MouseDown, 20, 26
ActionList4=Repeat MouseUp, 20, 26
MouseOver=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#+5,0,50))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
MouseLeave=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#-5,0,70))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
MouseDown=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#+3,50,70))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
MouseUp=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#-3,50,70))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
DynamicVariables=1

;============== METERS ==============

;-=-=-=-=-=-=-=-=-=-=- > CPU < -=-=-=-=-=-=-=-=-=-=-

[MeterCPU]
Meter=String
MeterStyle=NormalCenter
X=(#XFromTheWall#+[#CurrentSection#:W]/2)
Y=10R
Text="CPU"
DynamicVariables=1
UpdateDivider=-1

[MeterCPU_Value]
Meter=String
MeasureName=MeasureCPU
MeasureName2=MeasureTopProcess
MeterStyle=NormalCenter
X=r
Y=R
Text="%1%"
ToolTipText="%2 [MeasureTopProcess:1]%"
DynamicVariables=1

[MeasureCPUBar]
MeasureName=MeasureCPU
Meter=BAR
X=(-[MeterCPU:W]/2)r
Y=3R
W=[MeterCPU:W]
H=3
BarColor=#Blue#
SolidColor=[#LightGrey[#Theme]]
BarOrientation=Horizontal
DynamicVariables=1

;-=-=-=-=-=-=-=-=-=-=- > CPU TEMP < -=-=-=-=-=-=-=-=-=-=-

[MeterTemp]
Meter=String
MeterStyle=NormalCenter
X=(#MaxWidth#/3+[#CurrentSection#:W]/4)
Y=[MeterCPU:Y]
Text="Temp"
DynamicVariables=1
UpdateDivider=-1

[MeterTemp_Value]
Meter=String
MeasureName=MeasureAverageTemp
MeterStyle=NormalCenter
X=r
Y=R
Text="%1°C"

[MeasureTempBar]
MeasureName=MeasureAverageTemp
Meter=BAR
X=(-[MeterTemp:W]/2)r
Y=3R
W=[MeterTemp:W]
H=3
BarColor=#Blue#
SolidColor=[#LightGrey[#Theme]]
BarOrientation=Horizontal
DynamicVariables=1

;-=-=-=-=-=-=-=-=-=-=- > RAM < -=-=-=-=-=-=-=-=-=-=-

[MeterRAM]
Meter=String
MeterStyle=NormalCenter
X=(#MaxWidth#/2+[#CurrentSection#:W]/1.2)
Y=[MeterTemp:Y]
Text="RAM"
DynamicVariables=1
UpdateDivider=-1

[MeterRAM_Value]
Meter=String
MeasureName=MeasureUsedPercent
MeterStyle=NormalCenter
X=r
Y=R
Text="%1%"
DynamicVariables=1

[MeasureRAMBar]
MeasureName=MeasureUsedPercent
Meter=BAR
X=(-[MeterRAM:W]/2)r
Y=3R
W=[MeterRAM:W]
H=3
BarColor=#Blue#
SolidColor=[#LightGrey[#Theme]]
BarOrientation=Horizontal
DynamicVariables=1

;-=-=-=-=-=-=-=-=-=-=- > GPU < -=-=-=-=-=-=-=-=-=-=-

[MeterGPU]
Meter=String
MeterStyle=NormalCenter
X=(#MaxWidth#-#XFromTheWall#-[#CurrentSection#:W]/2)
Y=[MeterTemp:Y]
Text="GPU"
DynamicVariables=1
UpdateDivider=-1

[MeterGPU_Value]
Meter=String
MeasureName=MeasureGPU
MeterStyle=NormalCenter
X=r
Y=R
Text="[MeasureGPU:0]%"
DynamicVariables=1

[MeasureGPUBar]
MeasureName=MeasureGPU
Meter=BAR
X=(-[MeterRAM:W]/2)r
Y=3R
W=[MeterRAM:W]
H=3
BarColor=#Blue#
SolidColor=[#LightGrey[#Theme]]
BarOrientation=Horizontal
DynamicVariables=1

[ItsaMeMario]
Meter=Image
Y=16R
</BMStatistics>

<BMWeather>
[Variables]
UnitResult=m
ClickAlpha=0
IconsX=176
IconMouseAction=["https://weather.com"]
IconToolTip="weather.com"
IconName=\WeatherIconDisplay\%1
HeaderText="Weather"
;============= MEASURES =============

[Measure_Click_Animation]
Measure=Plugin
Plugin=ActionTimer
ActionList1=Repeat MouseOver, 20, 26
ActionList2=Repeat MouseLeave, 20, 26
ActionList3=Repeat MouseDown, 20, 26
ActionList4=Repeat MouseUp, 20, 26
MouseOver=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#+5,0,50))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
MouseLeave=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#-5,0,70))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
MouseDown=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#+3,50,70))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
MouseUp=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#-3,50,70))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
DynamicVariables=1

;------------------ WEATHER MEASURES ------------------

[MeasureInternet]
Measure=Plugin
Plugin=WifiStatus
WiFiInfoType=SSID
IfMatch=^-----$
IfMatchAction=[!ShowMeterGroup Offline][!Update]
IfNotMatchAction=[!HideMeterGroup Offline ][!Update]
Substitute="-1":"-----"

[WeatherParent]
Measure=Plugin
Plugin=WebParser
URL=http://wxdata.weather.com/wxdata/weather/local/#LocationCode#?cc=*&unit=#UnitOfMeasure#&dayf=6
RegExp=(?siU)^(.*)$
ForceReload=1
FinishAction=[!EnableMeasureGroup Weather][!UpdateMeasure CheckAlerts][!UpdateMeter *][!Redraw]

[LocationParent]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[WeatherParent]
RegExp=#Location#
Disabled=1

[CityNameChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[LocationParent]
StringIndex=2
Disabled=1

[UnitsParent]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[WeatherParent]
RegExp=#UnitsOfMeasure#
Disabled=1

[UnitsTempChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[UnitsParent]
StringIndex=3
IfMatch=C
IfMatchAction=[!SetVariable UnitResult f][!SetOption MeterCurrentUnits Text "°C"][!SetOption MeterNotCurrentUnits Text "°F"][!SetOption MeterNotCurrentUnits ToolTipText "This will also change the speed unit from km/h to mph."][!UpdateMeter MeterCurrentUnits][!UpdateMeter MeterNotCurrentUnits][!Redraw]
IfNotMatchAction=[!SetVariable UnitResult m][!SetOption MeterCurrentUnits Text "°F"][!SetOption MeterNotCurrentUnits Text "°C"][!SetOption MeterNotCurrentUnits ToolTipText "This will also change the speed unit from mph to km/h."][!UpdateMeter MeterChangeUnits][!UpdateMeter MeterNotCurrentUnits][!Redraw]
Disabled=1

[UnitsSpeedChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[UnitsParent]
StringIndex=5
Disabled=1

[CheckAlerts]
Measure=Script
ScriptFile=#CURRENTPATH#CheckAlerts.lua
Group=Weather
UpdateDivider=-1
Disabled=1

[CurrentConditionsParent]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[WeatherParent]
RegExp=#CurrentConditions#
Disabled=1

[ObservationTimeChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[CurrentConditionsParent]
StringIndex=1
Disabled=1

[CurrentTempChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[CurrentConditionsParent]
StringIndex=3
Disabled=1

[CurrentFeelsLikeChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[CurrentConditionsParent]
StringIndex=4
Disabled=1

[CurrentConditionsChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[CurrentConditionsParent]
StringIndex=5

[CurrentIconChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[CurrentConditionsParent]
StringIndex=6
Substitute="":"na"
Disabled=1

[CurrentElementsParent]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[WeatherParent]
RegExp=#CurrentElements#
Disabled=1

[CurrentHumidityChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[CurrentElementsParent]
StringIndex=1
Disabled=1

[CurrentWindParent]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[WeatherParent]
RegExp=#CurrentWind#
Disabled=1

[CurrentWindSpeedChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[CurrentWindParent]
StringIndex=1
Disabled=1
IfCondition=CurrentWindSpeedChild = 0
IfTrueAction=[!SetOption MeterCurrentWind Text "%1"]
IfFalseAction=[!SetOption MeterCurrentWind Text "%1 [*UnitsSpeedChild*]"]

[CurrentWindUnitChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[UnitsParent]
StringIndex=5
Disabled=1

[CurrentBarometricParent]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[WeatherParent]
RegExp=#CurrentBarometric#
Disabled=1

[CurrentPressureChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[CurrentBarometricParent]
StringIndex=1
Disabled=1

[CurrentChangeChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[CurrentBarometricParent]
StringIndex=2
Disabled=1
RegExpSubstitute=1
Substitute="(?siU)^(.*) .*$":"\1"

[TodayGeneralParent]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[WeatherParent]
RegExp=#TodayGeneral#
Disabled=1

[SunriseChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[TodayGeneralParent]
StringIndex=6
Disabled=1

[SunsetChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[TodayGeneralParent]
StringIndex=7
Disabled=1

[TodayDayConditionsParent]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[WeatherParent]
RegExp=#TodayDayConditions#
Disabled=1

[TodayNightConditionsParent]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[WeatherParent]
RegExp=#TodayNightConditions#
Disabled=1

[TodayDayIconChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[TodayDayConditionsParent]
StringIndex=1
Disabled=1
IfMatch=(?siU)^$
IfMatchAction=[!SetOption MeterTodayIcon MeasureName2 "TodayNightConditionChild"][!SetOption MeterTodayIcon MeasureName "TodayNightIconChild"][!SetOption MeterTodayPrecip MeasureName "TodayNightPrecipChild"][!SetOption MeterTodayName Text "Tonight"][!UpdateMeter *][!Redraw]
IfNotMatchAction=[!SetOption MeterTodayIcon MeasureName2 "TodayDayConditionChild"][!SetOption MeterTodayIcon MeasureName "TodayDayIconChild"][!SetOption MeterTodayPrecip MeasureName "TodayDayPrecipChild"][!SetOption MeterTodayName Text "Today"][!UpdateMeter *][!Redraw]

[TodayDayConditionChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[TodayDayConditionsParent]
StringIndex=2
Disabled=1

[TodayNightIconChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[TodayNightConditionsParent]
StringIndex=1
Disabled=1

[TodayNightConditionChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[TodayNightConditionsParent]
StringIndex=2
Disabled=1

[TodayLowChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[TodayGeneralParent]
StringIndex=5
Disabled=1

[TodayHighChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[TodayGeneralParent]
StringIndex=4
Disabled=1

[TodayDayElementsParent]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[WeatherParent]
RegExp=#TodayDayElements#
Disabled=1

[TodayNightElementsParent]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[WeatherParent]
RegExp=#TodayNightElements#
Disabled=1

[TodayDayPrecipChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[TodayDayElementsParent]
StringIndex=2
Disabled=1

[TodayNightPrecipChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[TodayNightElementsParent]
StringIndex=2
Disabled=1

[Day1ConditionsParent]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[WeatherParent]
RegExp=#Day1DayConditions#
Disabled=1

[Day1IconChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[Day1ConditionsParent]
StringIndex=1
Disabled=1

[Day1ConditionChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[Day1ConditionsParent]
StringIndex=2
Disabled=1

[Day1GeneralParent]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[WeatherParent]
RegExp=#Day1General#
Disabled=1

[Day1NameChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[Day1GeneralParent]
StringIndex=1
Disabled=1

[Day1LowChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[Day1GeneralParent]
StringIndex=4
Disabled=1

[Day1HighChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[Day1GeneralParent]
StringIndex=3
Disabled=1

[Day1ElementsParent]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[WeatherParent]
RegExp=#Day1DayElements#
Disabled=1

[Day1PrecipChild]
Measure=Plugin
Group=Weather
Plugin=WebParser
URL=[Day1ElementsParent]
StringIndex=2
Disabled=1

[MeasureChangeLocation]
Measure=Plugin
Plugin=InputText
X=#XFromTheWall#
Y=([EditLocation:Y]+3)
W=(#MaxWidth#-#XFromTheWall#*2-[EditLocation:W]-5)
H=20
DefaultValue="Type your location code"
SolidColor=[#BackgroundColor[#ReverseTheme]]
MeterStyle=NormalLeft
FontColor=[#PrimaryTextColor[#ReverseTheme]]
FontSize=(12*#WVar#)
FocusDismiss=1
UpdateDivider=-1
DynamicVariables=1
Command1=[!WriteKeyValue Variables LocationCode "$UserInput$" "#@#Variables.inc"][!Refresh]

;============== METERS ==============

;------------------ WEATHER METERS ------------------

[MeterCityName]
Meter=String
MeasureName=CityNameChild
MeterStyle=NormalLeft
X=#XFromTheWall#
Y=10R
W=(#MaxWidth#-#XFromTheWall#*2-[EditLocation:W])
H=20
ClipString=2
DynamicVariables=1
UpdateDivider=-1

[EditLocation]
Meter=String
MeterStyle=MaterialIcons
FontSize=20
FontColor=#AccentColor#,0
X=(#MaxWidth#-#XFromTheWall#-[#CurrentSection#:W]/2)
Y=-4r
Text=[\xe568]
MouseOverAction=[!SetOption #CurrentSection# ImageTint #PrimaryTextColor#,255][!UpdateMeter #CurrentSection#][!Redraw]
MouseLeaveAction=[!SetOption #CurrentSection# ImageTint #SecondaryTextColor#,255][!UpdateMeter #CurrentSection#][!Redraw]
LeftMouseUpAction=[!CommandMeasure "MeasureChangeLocation" "ExecuteBatch 1"]
ToolTipText="Edit location"
DynamicVariables=1
UpdateDivider=-1
MouseActionCursor=1

[MeterCurrentCondition]
Meter=String
MeasureName=CurrentConditionsChild
MeterStyle=Secondary
FontSize=10
StringAlign=Left
X=#XFromTheWall#
Y=1R
W=(#MaxWidth#-#XFromTheWall#*2)
H=20
ClipString=2
DynamicVariables=1
UpdateDivider=-1

[MeterCurrentIcon]
Meter=Image
MeasureName=CurrentIconChild
ImageName=#@#Images\Weather\%1.png
X=#XFromTheWall#
Y=2R
W=64
DynamicVariables=1

[MeterCurrentTemp]
Meter=String
MeasureName=CurrentTempChild
MeterStyle=NormalLeft
FontSize=(33*#WVar#)
X=10R
Y=7r
Text="%1"
DynamicVariables=1

[MeterCurrentUnits]
Meter=String
MeterStyle=NormalLeft
Text=""
x=5R
Y=6r
DynamicVariables=1
UpdateDivider=-1

[MeterNotCurrentUnits]
Meter=String
MeterStyle=Secondary
X=7r
Y=2R
Text=""
ToolTipText=""
LeftMouseUpAction=[!WriteKeyValue Variables UnitOfMeasure #UnitResult# "#@#Variables.inc"][!Refresh]
DynamicVariables=1
UpdateDivider=-1

[MeterFeelsPrefix]
Meter=String
MeterStyle=NormalLeft
FontSize=(10*#WVar#)
X=#XFromTheWall#
Y=188
Text="Feels Like"
DynamicVariables=1
UpdateDivider=-1

[MeterFeelsLike]
Meter=String
MeasureName=CurrentFeelsLikeChild
MeasureName2=UnitsTempChild
MeterStyle=NormalLeft
FontSize=(14*#WVar#)
X=#XFromTheWall#
Y=R
Text="%1°%2"
DynamicVariables=1

[Line3]
Meter=Image
SolidColor=#SecondaryTextColor#
X=80
Y=([MeterFeelsPrefix:Y]+3)
W=1
H=46
DynamicVariables=1

;======================================================
;======================================================

[MeterPercipitIcon]
Meter=Image
ImageName=#@#Images\Percipit_icon.png
X=#IconsX#
Y=121
ToolTipText="Precipitation"
DynamicVariables=1

[MeterTodayPrecip]
Meter=String
MeasureName=TodayDayPrecipChild
MeterStyle=Secondary
StringAlign=Left
FontSize=10
X=([TodayDayPrecipChild]=100 ? (#MaxWidth#-#Xpos#-[#CurrentSection#:W]) : (#MaxWidth#-#Xpos#-[#CurrentSection#:W]+2))
Y=2r
Text="%1%"
DynamicVariables=1

;======================================================
;======================================================

[MeterHumidityIcon]
Meter=Image
ImageName=#@#Images\Hygrometer_icon.png
X=#IconsX#
Y=10R
W=20
ToolTipText="Humidity"
DynamicVariables=1
UpdateDivider=-1

[MeterHumidity]
Meter=String
MeasureName=CurrentHumidityChild
MeterStyle=Secondary
StringAlign=Left
FontSize=10
X=10R
Y=2r
Text="%1%"
ToolTipText="Humidity"
DynamicVariables=1

[MeterTodayName]
Meter=String
MeterStyle=NormalCenter
FontSize=(10*#WVar#)
X=(#MaxWidth#/2)
Y=[MeterFeelsPrefix:Y]
Text="Today"
UpdateDivider=-1
DynamicVariables=1

[MeterTodayIcon]
Meter=Image
MeasureName=TodayDayIconChild
MeasureName2=TodayNightConditionChild
X=(#MaxWidth#/2-[#CurrentSection#:W]+5)
Y=5R
W=30
ImageName=#@#Images\Weather\%1.png
ToolTipText="%2"
DynamicVariables=1
UpdateDivider=-1

[MeterTodayLowHigh]
Meter=String
MeasureName=TodayHighChild
MeasureName2=TodayLowChild
MeterStyle=Secondary
StringAlign=Right
FontSize=(10*#WVar#)
X=25R
Y=-2r
W=35
H=34
Text="%1°#CRLF#%2°"
ToolTipText="High of %1° Low of %2°"
ClipString=2
UpdateDivider=-1
DynamicVariables=1

[Line4]
Meter=Image
SolidColor=#SecondaryTextColor#
X=160
Y=([MeterFeelsPrefix:Y]+3)
W=1
H=46
DynamicVariables=1

[MeterTomorrowName]
Meter=String
MeasureName=Day1NameChild
MeterStyle=NormalRight
FontSize=(10*#WVar#)
X=(#MaxWidth#-#XFromTheWall#)
Y=[MeterFeelsPrefix:Y]
UpdateDivider=-1
DynamicVariables=1

[MeterTomorrowIcon]
Meter=Image
MeasureName=Day1IconChild
MeasureName2=Day1ConditionChild
X=([Line4:X]+10)
Y=5R
W=30
ImageName=#@#Images\Weather\%1.png
ToolTipText="%2"
DynamicVariables=1
UpdateDivider=-1

[MeterTomorrowLowHigh]
Meter=String
MeasureName=Day1HighChild
MeasureName2=Day1LowChild
MeterStyle=Secondary
StringAlign=Right
FontSize=(10*#WVar#)
X=(#MaxWidth#-#XFromTheWall#)
Y=-2r
W=35
H=34
Text="%1°#CRLF#%2°"
ToolTipText="High of %1° Low of %2°"
ClipString=2
DynamicVariables=1
UpdateDivider=-1

[ItsaMeMario]
Meter=Image
Y=([Line4:Y]+[Line4:H]+16)
DynamicVariables=1
</BMWeather>
<BMCalendar>

[Rainmeter]
Group=BMMaterial
Update=1000
AccurateText=1
MouseScrollDownAction=[!Refresh]
MiddleMouseDownAction=[!WriteKeyValue Variables Theme #ReverseTheme# "#@#Variables.inc"][!Delay 16][!SetVariable Theme #ReverseTheme#][!Delay 16][!UpdateMeasure Measure_Theme][!Delay 16][!EnableMeasure Measure_Theme]
SkinWidth=#MaxWidth#

[Metadata]
Name=Calendar
Author=BananaMaster
Information=A simple calendar
Version=15.11.2018
License=Creative Commons Attribution - Non - Commercial - Share Alike 3.0

[Variables]
@Include=#@#Background.inc
@Include2=#@#Template.inc
@Include3=#@#LuaOutput.txt
@Include4=#@#Variables.inc
ClickAlpha=0
IconMouseAction=[https://calendar.google.com/calendar/r]
IconToolTip="Google calendar"
IconName=Calendar_Icon
HeaderText="Calendar"
MonthVariableCheck=November

[Measure_Theme]
Measure=String
String=#Theme#
IfMatch=Dark
IfMatchAction=[!WriteKeyValue Variables ReverseTheme "Light" "#@#Variables.inc"][!Delay 16][!WriteKeyValue Variables BackgroundColor "#DarkBackgroundColor#" "#@#Variables.inc"][!WriteKeyValue Variables PrimaryTextColor "#DarkPrimaryTextColor#" "#@#Variables.inc"][!WriteKeyValue Variables ShadowColor "#DarkShadowColor#" "#@#Variables.inc"][!WriteKeyValue Variables LightGrey "#DarkLightGrey#" "#@#Variables.inc"][!WriteKeyValue Variables IconBackgroundColor "#DarkIconBackgroundColor#" "#@#Variables.inc"][!Delay 16][!RefreshGroup BMMaterial]
IfNotMatchAction=[!WriteKeyValue Variables ReverseTheme "Dark" "#@#Variables.inc"][!Delay 16][!WriteKeyValue Variables BackgroundColor "#LightBackgroundColor#" "#@#Variables.inc"][!WriteKeyValue Variables PrimaryTextColor "#LightPrimaryTextColor#" "#@#Variables.inc"][!WriteKeyValue Variables ShadowColor "#LightShadowColor#" "#@#Variables.inc"][!WriteKeyValue Variables LightGrey "#LightLightGrey#" "#@#Variables.inc"][!WriteKeyValue Variables IconBackgroundColor "#LightIconBackgroundColor#" "#@#Variables.inc"][!Delay 16][!RefreshGroup BMMaterial]
DynamicVariables=1
; !! ---ATTENTION--- !!  ---> IF YOU SET "DISABLED=0" IT WILL CRASH THE SKIN !!
Disabled=1

[MeasureLua]
Measure=Script
ScriptFile=#@#DaysOfFebruary.lua
outputFilePath=#@#LuaOutput.txt
DynamicVariables=1

[MeasureDay]
Measure=Time
Format=%e
OnUpdateAction=[!SetVariable CurrentDay "[#CurrentSection#]"]

[MeasureMonth]
Measure=Time
Format=%B
OnUpdateAction=[!SetVariable CurrentMonth "[#CurrentSection#]"]
;[!EnableMeasure OnMonthChange]
; ;?????????????????????????????????????????????????????????????????????????????????????????????
; [OnMonthChange]
; Measure=String
; String=#MonthVariableCheck#
; IfMatch=^[MeasureMonth]$
; IfNotMatchAction=[!WriteKeyValue Variables MonthVariableCheck [MeasureMonth]][!CommandMeasure MeasureLua CreateDaysMeters()]
; DynamicVariables=1
; ;Disabled=1

[MeasureYear]
Measure=Time
Format=%G
OnUpdateAction=[!SetVariable CurrentYear "[#CurrentSection#]"]

;============== ANIMATIONS MEASURES ==============

[Measure_Click_Animation]
Measure=Plugin
Plugin=ActionTimer
ActionList1=Repeat MouseOver, 20, 26
ActionList2=Repeat MouseLeave, 20, 26
ActionList3=Repeat MouseDown, 20, 26
ActionList4=Repeat MouseUp, 20, 26
MouseOver=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#+5,0,50))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
MouseLeave=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#-5,0,70))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
MouseDown=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#+3,50,70))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
MouseUp=[!SetVariable ClickAlpha (Clamp(#ClickAlpha#-3,50,70))][!UpdateMeter IconBackground][!UpdateMeasure #CurrentSection#][!Redraw]
DynamicVariables=1

;============== METERS ==============

[ItsaMeMario]
Meter=Image
Y=16R
</BMCalendar>
Post Reply