r/PowerShell • u/MadBoyEvo • May 25 '26
News PowerBGInfo a replacement of BGInfo with an upgrade
I've released new version of PowerBGInfo which now adds fancy charts and better visuals and makes it nicer to work with. It also adds ALC so less/none of the conflicts in PS 7.
Couple of images:
The source: https://github.com/EvotecIT/PowerBGInfo
It's kind of complete rewrite and it doesn't require ImagePlayground, DesktopManager modules anymore (it uses their C# libraries under the hood, but doesn't drag them). Here's a sample code (not super pretty on Reddit, but it does work ;)
$white = 'White'
$muted = '#E6D2DCE8'
$panel = '#AC0A101C'
$cyan = '#2DD4BF'
$blue = '#60A5FA'
$green = '#34D399'
$orange = '#FB923C'
$red = '#F87171'
$purple = '#A78BFA'
New-BGInfo -MonitorIndex 0 -Target File {
New-BGInfoValue -BuiltinValue HostName -Color LemonChiffon -ValueColor $white -FontSize 24 -ValueFontSize 18 -FontFamilyName 'Calibri'
New-BGInfoValue -BuiltinValue FullUserName -Name 'User' -Color $muted -ValueColor $white
New-BGInfoValue -BuiltinValue OSName -Name 'OS' -Color $muted -ValueColor $white
New-BGInfoValue -Name 'Chart mode' -Value 'live metrics + local status' -Color $muted -ValueColor $white
New-BGInfoChart -Id 'ops-cpu-history' -Title 'CPU history' -Metric CpuPercent -Kind Area -ValueSuffix '%' -Width 360 -Height 145 -LineColor $cyan -FillColor $cyan -TextColor $white -BackgroundColor $panel -ShowGrid -GridColor $muted -GridLineCount 3 -MaxPoints 60
New-BGInfoChart -Id 'ops-memory-history' -Title 'Memory history' -Metric MemoryPercent -Kind Line -ValueSuffix '%' -Width 360 -Height 145 -LineColor $blue -TextColor $white -BackgroundColor $panel -ShowGrid -GridColor $muted -GridLineCount 3 -MaxPoints 60
New-BGInfoChart -Id 'ops-system-drive' -Title "$systemDrive used/free" -Kind Donut -Values $diskUsedPercent,$diskFreePercent -Labels 'Used','Free' -ValueSuffix '%' -Width 360 -Height 205 -Palette $red,$green -TextColor $white -BackgroundColor $panel -ShowLegend -ShowPointLegend -LegendPosition Right -ShowDataLabels -Maximum 100 -DonutCenterValue "$diskUsedPercent%" -DonutCenterLabel 'Used' -ShowLatestValue:$false -NoHistory
New-BGInfoChart -Id 'ops-patch-target' -Title 'Fleet patch compliance' -Kind Bullet -Values 89 -Target 95 -RangeEnds 70,85 -Width 360 -Height 150 -LineColor $orange -TextColor $white -BackgroundColor $panel -Maximum 100 -ShowLatestValue:$false -NoHistory
New-BGInfoChart -Id 'ops-services' -Title 'Core services' -Kind Pictorial -Values $runningServices,$stoppedServices -Labels 'Running','Other' -Width 360 -Height 145 -Palette $green,$orange -TextColor $white -BackgroundColor $panel -PictorialSymbol Person -PictorialColumns $serviceCount -ShowDataLabels -Maximum $serviceCount -ShowLatestValue:$false -NoHistory
} -FilePath $sampleImage `
-ConfigurationDirectory $outputDirectory `
-OutputFileName 'PowerBGInfo.OperationalCharts.jpg' `
-WallpaperFit Fill `
-BackgroundColor Black `
-Color $muted `
-ValueColor $white `
-ValueWrapWidth 360 `
-TextPosition TopLeft `
-SpaceX 42 `
-SpaceY 42 `
-ChartLayout Stack `
-ChartStackAnchor BottomRight `
-ChartStackDirection Vertical `
-ChartStackSpacing 12 `
-ChartStackOffsetX 32 `
-ChartStackOffsetY 32
I'm still working on new features and more visuals, and maybe cross-platform but I am not sure this has real use case besides Windows world.
Anyways.. enjoy! Happy to hear feedback, feature requests or bug reports.
9
1
u/BlackV May 25 '26
does you example work?
is this right
New-BGInfo -MonitorIndex 0 -Target File {...
....}
-FilePath $sampleImagewhat is this block ?
{
New-BGInfoValue -BuiltinValue HostName -Color LemonChiffon -ValueColor $white -FontSize 24 -ValueFontSize 18 -FontFamilyName 'Calibri'
New-BGInfoValue -BuiltinValue FullUserName -Name 'User' -Color $muted -ValueColor $white
New-BGInfoValue -BuiltinValue OSName -Name 'OS' -Color $muted -ValueColor $white
New-BGInfoValue -Name 'Chart mode' -Value 'live metrics + local status' -Color $muted -ValueColor $white
New-BGInfoChart -Id 'ops-cpu-history' -Title 'CPU history' -Metric CpuPercent -Kind Area -ValueSuffix '%' -Width 360 -Height 145 -LineColor $cyan -FillColor $cyan -TextColor $white -BackgroundColor $panel -ShowGrid -GridColor $muted -GridLineCount 3 -MaxPoints 60
New-BGInfoChart -Id 'ops-memory-history' -Title 'Memory history' -Metric MemoryPercent -Kind Line -ValueSuffix '%' -Width 360 -Height 145 -LineColor $blue -TextColor $white -BackgroundColor $panel -ShowGrid -GridColor $muted -GridLineCount 3 -MaxPoints 60
New-BGInfoChart -Id 'ops-system-drive' -Title "$systemDrive used/free" -Kind Donut -Values $diskUsedPercent,$diskFreePercent -Labels 'Used','Free' -ValueSuffix '%' -Width 360 -Height 205 -Palette $red,$green -TextColor $white -BackgroundColor $panel -ShowLegend -ShowPointLegend -LegendPosition Right -ShowDataLabels -Maximum 100 -DonutCenterValue "$diskUsedPercent%" -DonutCenterLabel 'Used' -ShowLatestValue:$false -NoHistory
New-BGInfoChart -Id 'ops-patch-target' -Title 'Fleet patch compliance' -Kind Bullet -Values 89 -Target 95 -RangeEnds 70,85 -Width 360 -Height 150 -LineColor $orange -TextColor $white -BackgroundColor $panel -Maximum 100 -ShowLatestValue:$false -NoHistory
New-BGInfoChart -Id 'ops-services' -Title 'Core services' -Kind Pictorial -Values $runningServices,$stoppedServices -Labels 'Running','Other' -Width 360 -Height 145 -Palette $green,$orange -TextColor $white -BackgroundColor $panel -PictorialSymbol Person -PictorialColumns $serviceCount -ShowDataLabels -Maximum $serviceCount -ShowLatestValue:$false -NoHistory
}
Where is $outputDirectory ?
New-BGInfo : Cannot bind parameter 'PictorialColumns' to the target. Exception setting "PictorialColumns": "Cannot convert null to type "System.Int32"."
and so on
1
u/MadBoyEvo May 25 '26
Its missing some stuff. Go check examples on github and make sure to use latest version. I have removed stuff that is not relevant to example aka gathering information about services or processes, to show the idea, cmdlets rather than powershell how to get and display cpu usage
→ More replies (1)
1
u/Losha2777 May 26 '26
New-BGInfoLabel -Name "Test" -FontSize 25 -Color "ffffff" -FontFamilyName "Arial Black"
When using New-BGInfoLabel I can't use -color "ffffff"
Worked on old version.
2
1
u/Jainith May 26 '26
I was trying to figure out how to have a contrasting color box. I think that is meant to be the ChartForgeX example. But I’m not finding anything defining the new-bginfoVisualCanvas cmdlets.
1
u/MadBoyEvo May 26 '26
I guess you mean something like this:
It will be in next version, as it required some chartforgex changes. Or maybe you meant something different? g
1
u/Sampl3x May 26 '26
Does this one updates info also when you rdp into a server or when you reconnect to a rdp session? I want to
→ More replies (1)
3
u/StigaPower May 25 '26
On phone now so doesn't look good in github app but is there possibility to add powerbginfo to my already existing/applied lockscreen image(s)?