Skip to content

Instantly share code, notes, and snippets.

@pegasusearl
Last active June 14, 2025 08:29
Show Gist options
  • Select an option

  • Save pegasusearl/df99fe8364a5e598f9e0bb8e1ee5f2ca to your computer and use it in GitHub Desktop.

Select an option

Save pegasusearl/df99fe8364a5e598f9e0bb8e1ee5f2ca to your computer and use it in GitHub Desktop.
I make SystemMonitor widget that I usually use in linux for windows using rainmeter, although thanks to HwInfo I can add even more. The strategy is to show Links widget, and then put this Rainmeter Skin on top of it.
# ============================== Installation ===============================
# https://gist.github.com/pegasusearl/df99fe8364a5e598f9e0bb8e1ee5f2ca
# This Rainmeter require plugins:
# 1. [IsFullscreen 3.0](https://forum.rainmeter.net/viewtopic.php?t=28305)
# 2. [HwInfo](https://docs.rainmeter.net/tips/hwinfo/)
# you also need to configure hwinfo according to tutorial.
# update every Measure that begins with sHwinfo accordingly.
# You have to manually set Cpu indicator. Make new bar according to the
# amount of CPU core you have.
# Replace YourTotalWidth with the total width of your thing.
# ===========================================================================
# NOTE:
# For Gpu Video Decode value, because it's usually very low, there is option to make the number inflated. (Encode is not)
# CPU and GPU Thermal Limit's bar is starting slow and get fast later. (x**2)/max**2
# Variable prefixes meaning:
# My = Variable you can edit as you desire
# Your = Variable you have to edit according to your rainmeter skin
# Their = Don't edit these.
# Section prefixes meaning:
# s = Measure
# t = Meter
# C (in front of s) = Calc of that measure
# Hwinfo (after s) = Measure uses Hwinfo
# TODO:
# make cpu core bar dynamic. use [Rainmeter] OnRefreshAction to disable or enable bar during refresh.
# TODO:
# We have so many indicator now, Create thing that toggle them, especially those from Hwinfo. Maybe the id can be set to -1 to disable it.
# TODO:
# for background, replace Bar with Image. https://forum.rainmeter.net/viewtopic.php?t=17834
[Variables]
YourTotalWidth=380
# This position is for my taskbar, which is on the top.
# If yours at the bottom, consider: "0" "100%" "0" "100%"
# TODO: However, putting it at the bottom,... still kinda not work. I'm not sure why
MyPosition="0" "0" "0" "0"
# This is comfortable position for Age of Empire II: Definitive Edition and Starcraft 2
MyFullscreenPosition="63%" "0" "50%" "0"
MyUpdate=500
MySectionSpacing=5R
MyMarginTop=4
MyMarginLeft=4
MyMarginRight=4
MyMarginBottom=4
MyHeight=20
MyWindowsTaskbarOpaque=16,16,16
MyBackgroundColorFullscreen=0,0,0,120
MyAccentColorOpaque=131,192,239
MyAccentThrottledOpaque=239,131,143
MyDarkAccentColorOpaque=200,60,77
MyCpuBarSpacing=2R
MyBarBackground=255,255,255,60
MyBarWidth=5
MyTextDuRwWidth=52
# HWinfo is polled every 2 seconds by default.
TheirHwinfoUpdateDivider=(2000/#MyUpdate#)
TheirPingUpdateRate=(1000/#MyUpdate#)
TheirRectangle=Rectangle 0,0,(#YourTotalWidth#+#MyMarginLeft#+#MyMarginRight#),(#MyHeight#+#MyMarginTop#+#MyMarginBottom#) | StrokeWidth 0
TheirClockWidth=30
TheirFullRectangle=Rectangle 0,0,(#YourTotalWidth#+#MyMarginLeft#+#MyMarginRight#+(#TheirClockWidth#+20)),(#MyHeight#+#MyMarginTop#+#MyMarginBottom#) | StrokeWidth 0
TheirTextColor=255,255,255
TheirAccentColor=#MyAccentColorOpaque#,255
TheirCpuBarColor=#TheirAccentColor#
TheirGpuBarColor=#TheirAccentColor#
TheirAccentThrottled=#MyAccentThrottledOpaque#,255
TheirDarkAccentColor=#MyDarkAccentColorOpaque#,255
TheirProcess1=X
TheirProcessUsage1=0
TheirProcess2=Y
TheirProcessUsage2=0
# WARN: HWinfo. Set RegValue according to index.
# It's in the HWiNFO Gadget tab
# Hwinfo entry: CPU (Tctl/Tdie)
[sHwinfoCpuTemp]
Measure=Registry
RegHKey=HKEY_CURRENT_USER
RegKey=SOFTWARE\HWiNFO64\VSB
RegValue=ValueRaw0
UpdateDivider=#TheirHwinfoUpdateDivider#
# HWinfo entry: CPU Package Power
[sHwinfoCpuPowerDraw]
Measure=Registry
RegHKey=HKEY_CURRENT_USER
RegKey=SOFTWARE\HWiNFO64\VSB
RegValue=ValueRaw1
UpdateDivider=#TheirHwinfoUpdateDivider#
# HWinfo entry: CPU/Thermal Limit
[sHwinfoCpuThermalLimit]
Measure=Registry
RegHKey=HKEY_CURRENT_USER
RegKey=SOFTWARE\HWiNFO64\VSB
RegValue=ValueRaw2
UpdateDivider=#TheirHwinfoUpdateDivider#
# Hwinfo entry: CPU/Power Reporting Deviation (Accuracy)
[sHwinfoCpuPowerDeviation]
Measure=Registry
RegHKey=HKEY_CURRENT_USER
RegKey=SOFTWARE\HWiNFO64\VSB
RegValue=ValueRaw3
UpdateDivider=#TheirHwinfoUpdateDivider#
# Hwinfo entry: CPU/Thermal Throttling (HTC)
[sHwinfoCpuThermalThrottling]
Measure=Registry
RegHKey=HKEY_CURRENT_USER
RegKey=SOFTWARE\HWiNFO64\VSB
RegValue=ValueRaw4
UpdateDivider=#TheirHwinfoUpdateDivider#
# Hwinfo entry: GPU Temperature
[sHwinfoGpuTemp]
Measure=Registry
RegHKey=HKEY_CURRENT_USER
RegKey=SOFTWARE\HWiNFO64\VSB
RegValue=ValueRaw5
UpdateDivider=#TheirHwinfoUpdateDivider#
# Hwinfo entry: GPU/Thermal Limit
[sHwinfoGpuThermalLimit]
Measure=Registry
RegHKey=HKEY_CURRENT_USER
RegKey=SOFTWARE\HWiNFO64\VSB
RegValue=ValueRaw6
UpdateDivider=#TheirHwinfoUpdateDivider#
# HWinfo entry: GPU Power Total
[sHwinfoGpuPowerDraw]
Measure=Registry
RegHKey=HKEY_CURRENT_USER
RegKey=SOFTWARE\HWiNFO64\VSB
RegValue=ValueRaw7
UpdateDivider=#TheirHwinfoUpdateDivider#
# Hwinfo entry: GPU Memory Usage
[sHwinfoGpuVramPercent]
Measure=Registry
RegHKey=HKEY_CURRENT_USER
RegKey=SOFTWARE\HWiNFO64\VSB
MaxValue=100
RegValue=ValueRaw8
UpdateDivider=#TheirHwinfoUpdateDivider#
# Hwinfo entry: GPU Video Decode 0 Usage
[sHwinfoGpuDecode]
Measure=Registry
RegHKey=HKEY_CURRENT_USER
RegKey=SOFTWARE\HWiNFO64\VSB
RegValue=ValueRaw9
UpdateDivider=#TheirHwinfoUpdateDivider#
# Hwinfo entry: GPU Video Encode 0 Usage
[sHwinfoGpuEncode]
Measure=Registry
RegHKey=HKEY_CURRENT_USER
RegKey=SOFTWARE\HWiNFO64\VSB
RegValue=ValueRaw10
UpdateDivider=#TheirHwinfoUpdateDivider#
# Hwinfo entry: GPU/Performance Limit/Thermal
[sHwinfoGpuThermalThrottle]
Measure=Registry
RegHKey=HKEY_CURRENT_USER
RegKey=SOFTWARE\HWiNFO64\VSB
RegValue=ValueRaw11
UpdateDivider=#TheirHwinfoUpdateDivider#
# Hwinfo entry: GPU Memory Allocated
[sHwinfoGpuVramAllocated]
Measure=Registry
RegHKey=HKEY_CURRENT_USER
RegKey=SOFTWARE\HWiNFO64\VSB
RegValue=ValueRaw12
UpdateDivider=#TheirHwinfoUpdateDivider#
# Hwinfo entry: Framerate (Displayed)
[sHwinfoFrameRate]
Measure=Registry
RegHKey=HKEY_CURRENT_USER
RegKey=SOFTWARE\HWiNFO64\VSB
RegValue=ValueRaw13
UpdateDivider=#TheirHwinfoUpdateDivider#
[Rainmeter]
Update=#MyUpdate#
DefaultAlwaysOnTop=2
# Rectangle to cover taskbar text below the rainmeter skin. I want to make it disappear on fullscreen.
# These conditional config is made by Cariboudjan https://forum.rainmeter.net/viewtopic.php?p=187538#p187538
[MeasureIsFullScreen]
Measure=Plugin
Plugin=IsFullScreen
OnChangeAction=[!UpdateMeasure MeasureCheckProcess]
#
[MeasureCheckProcess]
Measure=String
String=[MeasureIsFullScreen:][MeasureIsFullScreen]
IfMatch=(?is)1Explorer.exe|0.*
IfMatchAction=[!SetOption "tRectangleBackground" "Shape" "#TheirRectangle# | Fill Color #MyWindowsTaskbarOpaque#"][!HideMeter tClock][!SetWindowPosition #MyPosition#]
IfNotMatchAction=[!SetOption "tRectangleBackground" "Shape" "#TheirFullRectangle# | Fill Color #MyBackgroundColorFullscreen#"][!ShowMeter tClock][!SetWindowPosition #MyFullscreenPosition#]
DynamicVariables=1
# Conditional end.....
[tRectangleBackground]
Meter=Shape
# RAM INDICATOR
[sRamUsed]
Measure=PhysicalMemory
[sRamFree]
Measure=PhysicalMemory
InvertMeasure=1
[tRamUsed]
Meter=Roundline
MeasureName=sRamUsed
X=#MyMarginLeft#
Y=#MyMarginTop#
W=#MyHeight#
H=#MyHeight#
StartAngle=4.712
RotationAngle=6.283
LineLength=(#MyHeight#/2)
LineColor=#TheirTextColor#
Solid=1
AntiAlias=1
[tRamFree]
Meter=Roundline
MeasureName=sRamFree
X=0r
Y=#MyMarginTop#
W=#MyHeight#
H=#MyHeight#
StartAngle=4.712
RotationAngle=-6.283
LineLength=(#MyHeight#/2)
LineColor=#MyBarBackground#
Solid=1
AntiAlias=1
# CPU INDICATOR
[sCpu1]
Measure=CPU
Processor=1
[sCpu2]
Measure=CPU
Processor=2
[sCpu3]
Measure=CPU
Processor=3
[sCpu4]
Measure=CPU
Processor=4
[sCpu5]
Measure=CPU
Processor=5
[sCpu6]
Measure=CPU
Processor=6
[CsCpuThrottle]
Measure=Calc
Formula=1
IfCondition=(sHwinfoCpuThermalThrottling = 0)
IfTrueAction=[!SetVariable "TheirCpuBarColor" #TheirAccentColor#]
IfFalseAction=[!SetVariable "TheirCpuBarColor" #TheirAccentThrottled#]
[tCpu1]
Meter=BAR
MeasureName=sCpu1
X=#MySectionSpacing#R
Y=#MyMarginTop#
W=#MyBarWidth#
H=#MyHeight#
DynamicVariables=1
BarColor=#TheirCpuBarColor#
SolidColor=#MyBarBackground#
BarOrientation=Vertical
[tCpu2]
Meter=BAR
MeasureName=sCpu2
X=#MyCpuBarSpacing#
Y=#MyMarginTop#
W=#MyBarWidth#
H=#MyHeight#
DynamicVariables=1
BarColor=#TheirCpuBarColor#
SolidColor=#MyBarBackground#
BarOrientation=Vertical
[tCpu3]
Meter=BAR
MeasureName=sCpu3
X=#MyCpuBarSpacing#
Y=#MyMarginTop#
W=#MyBarWidth#
H=#MyHeight#
DynamicVariables=1
BarColor=#TheirCpuBarColor#
SolidColor=#MyBarBackground#
BarOrientation=Vertical
[tCpu4]
Meter=BAR
MeasureName=sCpu4
X=#MyCpuBarSpacing#
Y=#MyMarginTop#
W=#MyBarWidth#
H=#MyHeight#
DynamicVariables=1
BarColor=#TheirCpuBarColor#
SolidColor=#MyBarBackground#
BarOrientation=Vertical
[tCpu5]
Meter=BAR
MeasureName=sCpu5
X=#MyCpuBarSpacing#
Y=#MyMarginTop#
W=#MyBarWidth#
H=#MyHeight#
DynamicVariables=1
BarColor=#TheirCpuBarColor#
SolidColor=#MyBarBackground#
BarOrientation=Vertical
[tCpu6]
Meter=BAR
MeasureName=sCpu6
X=#MyCpuBarSpacing#
Y=#MyMarginTop#
W=#MyBarWidth#
H=#MyHeight#
DynamicVariables=1
BarColor=#TheirCpuBarColor#
SolidColor=#MyBarBackground#
BarOrientation=Vertical
# CPU POWER
## temp
[CsCpuTempBar]
Measure=Calc
; Formula=((sHwinfoCpuThermalLimit-50)/50)
Formula=((sHwinfoCpuThermalLimit**2)/10000)
[tCpuTempBar]
Meter=BAR
MeasureName=CsCpuTempBar
X=#MySectionSpacing#R
Y=14
W=32
H=11
BarColor=#TheirDarkAccentColor#
SolidColor=#MyBarBackground#
BarOrientation=Horizontal
[tCpuTemp]
Meter=String
MeasureName=sHwinfoCpuTemp
X=0r
Y=15
W=32
FontColor=#TheirTextColor#
FontSize=7
Text="%1[\x00B0]C"
## power deviation
[sCpuAverage]
Measure=CPU
Processor=0
[CsCpuPowerDeviation]
Measure=Calc
Formula=sCpuAverage > 90 ? ((sHwinfoCpuPowerDeviation-100)/100) : 0
[CsCpuPowerDeviationInvert]
Measure=Calc
Formula=(-1*CsCpuPowerDeviation)
[tCpuPowerDeviationLower]
Meter=BAR
MeasureName=CsCpuPowerDeviationInvert
X=0r
Y=#MyMarginTop#
W=32
H=10
BarColor=#TheirDarkAccentColor#
SolidColor=0,0,0,0
BarOrientation=Horizontal
Flip=1
[tCpuPowerDeviationHigher]
Meter=BAR
MeasureName=CsCpuPowerDeviation
X=0r
Y=#MyMarginTop#
W=32
H=10
BarColor=#TheirDarkAccentColor#
SolidColor=0,0,0,0
BarOrientation=Horizontal
## power draw
[CsCpuPowerDraw]
Measure=Calc
Formula=sHwinfoCpuPowerDraw
[tCpuPowerDraw]
Meter=String
MeasureName=CsCpuPowerDraw
NumOfDecimals=1
X=0r
Y=#MyMarginTop#
W=32
FontColor=#TheirTextColor#
FontSize=7
Text="%1W"
# NETWORK INDICATOR
[sNetDown]
Measure=NetIn
UpdateDivider=2
[sNetUp]
Measure=NetOut
UpdateDivider=2
[tNetUp]
Meter=String
MeasureName=sNetUp
X=#MySectionSpacing#R
Y=#MyMarginTop#
W=#MyTextDuRwWidth#
FontColor=#TheirTextColor#
FontSize=7
NumOfDecimals=1
AutoScale=2k
Text="U %1B"
[tNetDown]
Meter=String
MeasureName=sNetDown
X=0r
Y=(#MyMarginTop#+9)
W=#MyTextDuRwWidth#
FontColor=#TheirTextColor#
FontSize=8
NumOfDecimals=1
AutoScale=2k
Text="D %1B"
# DISK USAGE
[sDiskReadAll]
Measure=Plugin
Plugin=UsageMonitor
Category=PhysicalDisk
Counter="Disk Read Bytes/sec"
[sDiskWriteAll]
Measure=Plugin
Plugin=UsageMonitor
Category=PhysicalDisk
Counter="Disk Write Bytes/sec"
[CsDiskReadAll]
Measure=Calc
Formula=sDiskReadAll
UpdateDivider=2
[CsDiskWriteAll]
Measure=Calc
Formula=sDiskWriteAll
UpdateDivider=2
[tDiskRead]
Meter=String
MeasureName=CsDiskReadAll
X=#MySectionSpacing#R
Y=#MyMarginTop#
W=#MyTextDuRwWidth#
FontColor=#TheirTextColor#
FontSize=7
NumOfDecimals=1
AutoScale=2k
Text="R %1B"
[tDiskWrite]
Meter=String
MeasureName=CsDiskWriteAll
X=0r
Y=(#MyMarginTop#+9)
W=#MyTextDuRwWidth#
FontColor=#TheirTextColor#
FontSize=8
NumOfDecimals=1
AutoScale=2k
Text="w %1B"
# GPU
[CsGpuThrottle]
Measure=Calc
Formula=1
IfCondition=(sHwinfoGpuThermalThrottle = 0)
IfTrueAction=[!SetVariable "TheirGpuBarColor" #TheirAccentColor#]
IfFalseAction=[!SetVariable "TheirGpuBarColor" #TheirAccentThrottled#]
[sGpuUsage]
Measure=Plugin
Plugin=UsageMonitor
Alias=GPU
[tGpuUsage]
Meter=BAR
MeasureName=sGpuUsage
X=#MySectionSpacing#R
Y=(#MyMarginTop# + #MyHeight# - 4)
W=24
H=4
BarColor=#TheirGpuBarColor#
DynamicVariables=1
SolidColor=#MyBarBackground#
BarOrientation=Horizontal
[LabelGpuUsage]
Meter=String
X=0r
Y=(#MyMarginTop#+2)
W=24
FontColor=#TheirTextColor#
FontSize=7
Text="GPU"
; TODO: Rainmeter doesn't like that Meter tHwencdecBg doesn't have a measure.
; This is a workaround.
[CsZero]
Measure=Calc
Formula=0
[tHwencdecBg]
Meter=BAR
MeasureName=CsZero
X=#MySectionSpacing#R
Y=(#MyMarginTop# + #MyHeight# - 5)
W=24
H=5
SolidColor=#MyBarBackground#
[CsHwinfoGpuDecode]
Measure=Calc
; Inflated version:
; Formula=(1-((100-sHwinfoGpuDecode)/100)**2)
; Flat/Linear version:
Formula=sHwinfoGpuDecode/100
[tHwdecUsage]
Meter=BAR
MeasureName=CsHwinfoGpuDecode
X=0r
Y=(#MyMarginTop# + #MyHeight# - 3)
W=24
H=3
BarColor=#TheirGpuBarColor#
DynamicVariables=1
SolidColor=0,0,0,0
BarOrientation=Horizontal
[CsHwinfoGpuEncode]
Measure=Calc
Formula=(sHwinfoGpuEncode/100)
[tHwencUsage]
Meter=BAR
MeasureName=CsHwinfoGpuEncode
X=0r
Y=(#MyMarginTop# + #MyHeight# - 5)
W=24
H=3
BarColor=#TheirGpuBarColor#
DynamicVariables=1
SolidColor=0,0,0,0
BarOrientation=Horizontal
[LabelHwdecUsage]
Meter=String
X=0r
Y=(#MyMarginTop#+2)
W=24
FontColor=#TheirTextColor#
FontSize=7
Text="ENC"
[CsHwinfoGpuVramAllocated]
Measure=Calc
Formula=sHwinfoGpuVramAllocated*1000000
[tGpuVram]
Meter=BAR
MeasureName=sHwinfoGpuVramPercent
X=#MySectionSpacing#R
Y=(#MyMarginTop# + #MyHeight# - 4)
W=40
H=4
BarColor=#TheirTextColor#
SolidColor=#MyBarBackground#
BarOrientation=Horizontal
[LabelGpuVram]
Meter=String
MeasureName=CsHwinfoGpuVramAllocated
X=(0+20)r
Y=(#MyMarginTop#+2)
W=20
FontColor=#TheirTextColor#
FontSize=7
Text="%1B"
StringAlign=Center
AutoScale=2k
# GPU POWER
[CsGpuPowerDraw]
Measure=Calc
Formula=sHwinfoGpuPowerDraw
[tGpuPowerDraw]
Meter=String
MeasureName=CsGpuPowerDraw
NumOfDecimals=1
X=#MySectionSpacing#R
Y=#MyMarginTop#
W=32
FontColor=#TheirTextColor#
FontSize=7
Text="%1W"
[CsGpuThermalLimit]
Measure=Calc
; Formula=((sHwinfoGpuTemp-40)/(sHwinfoGpuThermalLimit-40))
Formula=((sHwinfoGpuTemp**2)/(sHwinfoGpuThermalLimit**2))
[tGpuTempBar]
Meter=BAR
MeasureName=CsGpuThermalLimit
X=0r
Y=14
W=32
H=11
BarColor=#TheirDarkAccentColor#
DynamicVariables=1
SolidColor=#MyBarBackground#
BarOrientation=Horizontal
[tGpuTemp]
Meter=String
MeasureName=sHwinfoGpuTemp
X=0r
Y=15
W=32
FontColor=#TheirTextColor#
FontSize=7
Text="%1[\x00B0]C"
# Ping
; [sPing]
; Measure=Plugin
; Plugin=PingPlugin
; UpdateRate=#TheirPingUpdateRate#
; DestAddress=www.google.com
;
; [tPing]
; Meter=String
; MeasureName=sPing
; ;StringAlign=Right
; X=#MySectionSpacing#R
; Y=#MyMarginTop#
; W=30
; ;H=#MyHeight#
; FontSize=7
; FontColor=#TheirTextColor#
; Text=%1ms
[CsHwinfoFrameRate]
Measure=Calc
Formula=sHwinfoFrameRate
[tFrameRate]
Meter=String
MeasureName=CsHwinfoFrameRate
StringAlign=Center
X=(0+15)R
Y=(#MyMarginTop#)
W=15
;H=#MyHeight#
NumOfDecimals=0
FontSize=8
FontColor=#TheirTextColor#
Text=%1
[LabelFrameRate]
Meter=String
StringAlign=Center
X=0r
Y=(#MyMarginTop# + #MyHeight# - 8)
W=15
FontSize=7
FontColor=#TheirTextColor#
Text="FPS"
[sClock]
Measure=Time
Format=%I:%M %p
; what the heck with this position. so weird.
[tClock]
MeasureName=sClock
Meter=String
StringAlign=Center
X=(20+(#TheirClockWidth#/2.0))r
Y=(#MyMarginTop#+5)
W=(#TheirClockWidth#/2.0)
H=#MyHeight#
FontSize=8
FontColor=#TheirTextColor#
InlineSetting=Weight | 600
; Biggetst Processor
[CsTopPsVisibility]
Measure=Calc
Formula=(CsTopPsVisibility + 1)
[sTopPsAll]
Measure=Plugin
Plugin=UsageMonitor
Alias=CPU
[sTopPs1]
Measure=Plugin
Plugin=UsageMonitor
Alias=CPU
Index=1
Blacklist=_Total|Idle|Memory Compression
[sTopPs2]
Measure=Plugin
Plugin=UsageMonitor
Alias=CPU
Index=2
Blacklist=_Total|Idle|Memory Compression
[CsTopPsAllVal]
Measure=Calc
Formula=sTopPsAll
[CsTopPs1Val]
Measure=Calc
Formula=Floor(sTopPs1*100)/100
[CsTopPs2Val]
Measure=Calc
Formula=Floor(sTopPs2*100)/100
IfCondition=(CsTopPsAllVal > 50)
IfTrueAction=[!DisableMeasure CsTopPsVisibility] [!SetVariable TheirProcess1 [sTopPs1]][!SetVariable TheirProcessUsage1 [CsTopPs1Val]] [!SetVariable TheirProcess2 [sTopPs2]][!SetVariable TheirProcessUsage2 [CsTopPs2Val]]
IfFalseAction=[!EnableMeasure CsTopPsVisibility]
IfCondition2=(CsTopPsVisibility < 10)
IfTrueAction2=[!ShowMeter tTopProcessBg][!ShowMeter tTopProcess][!UpdateMeasure sTopPs1][!UpdateMeasure sTopPs2]
IfFalseAction2=[!HideMeter tTopProcessBg][!HideMeter tTopProcess][!UpdateMeasure sTopPs1][!UpdateMeasure sTopPs2]
[tTopProcessBg]
Meter=Image
SolidColor=#MyBackgroundColorFullscreen#
X=#MyMarginLeft#
Y=(#MyMarginBottom#+(2*#MyMarginTop#)+#MyHeight#)
W=180
H=28
[tTopProcess]
Meter=String
; MeasureName=sTopPs1
; MeasureName2=CsTopPs1Val
; MeasureName3=sTopPs2
; MeasureName4=CsTopPs2Val
NumOfDecimals=2
FontColor=#TheirTextColor#
FontSize=8
X=#MyMarginLeft#r
Y=2r
W=180
H=(#MyMarginBottom#+#MyMarginTop#+#MyHeight#)
DynamicVariables=1
; Text="%2%[\x0009]%1#CRLF#%4%[\x0009]%3"
Text="#TheirProcessUsage1#%[\x0009]#TheirProcess1##CRLF##TheirProcessUsage2#%[\x0009]#TheirProcess2#"
; [tEndMark]
; Meter=String
; X=0R
; Y=(#MyMarginTop#+4)
; W=(#TheirClockWidth#/2.0)
; H=#MyHeight#
; FontColor=255,255,255
; Text=Ends
#ECHO
; [tEcho]
; Meter=String
; X=#MySectionSpacing#R
; Y=#MyMarginTop#
; W=80
; H=#MyHeight#
; FontColor=255,255,255
; Text=#TheirWindowState#
@pegasusearl
Copy link
Author

pegasusearl commented Jun 7, 2025

2025-06-07 10_17_13-C__Users_komi_Documents_Rainmeter_Skins_SysMon_sysmon ini

note: The clock only appeared on fullscreen mode.
Used on AMD CPU and Nvidia GPU
This skin require setup with HWinfo App.

Indicator (from left to right)
First is RAM usage circle.
Then Individual CPU core usage.
And then text showing CPU power draw and temperature. On the power draw indicator, when CPU is on full load, a bar will appear indicating Power Reporting Deviation, if it goes from left to right it means it's above 100%, if it's from right to left that means it's below 100%.
Then text indicating upload and download.
Then text indicating disk read/write.
Then GPU usage, I'm not sure what that means.
Then video encoding and decoding.
Then VRAM usage.
Then GPU power draw.
Then FPS.

CPU and GPU usage indicator's bar will change color when thermal throttling.

If CPU usage is above 50%, it will show process' CPU usage ranking.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment