It is currently May 27th, 2020, 3:58 am

Adaptive Honeycomb - Launcher icons tinted based on current wallpaper

Post your work-in-progress and completed skins to share and discuss.
VP_Richard_Hawk
Posts: 1
Joined: May 21st, 2020, 9:40 pm

Adaptive Honeycomb - Launcher icons tinted based on current wallpaper

Post by VP_Richard_Hawk »

Adaptive Honeycomb_1.0.rmskin

Image

This skin takes honeycomb launcher icons and automatically adds a color scheme to match the current desktop background. The skin regularly checks the filepath of the current desktop background and updates the colors when a change is detected. This allows it to work with the Windows wallpaper slideshow feature.

High Res Examples
https://imgur.com/gallery/vju76tj

Low quality gif of some examples
https://imgur.com/a/SkLsPiB

-All icons use the same background and border. You only need to create the middle section of any new icons.
-Runs a Powershell script every 6 seconds to check the current wallpaper's file path/name. You can adjust this time to your preference.
-When a change is detected in the file path, the ColorExtract plugin provides 3 colors based on the new wallpaper.
-A 10 second delay is included to prevent rapid requests to poll for new colors, which can also be adjusted.
-The ConfigActive plugin is used on initial load to prevent all launchers from activating the colorfinder.ini.

Code for colorfinder.ini to check wallpaper path and provide colors:

Code: Select all

[Rainmeter]
OnRefreshAction=[!CommandMeasure FindPath "Run"][!Delay 350][!UpdateMeasureGroup Extract][!Delay 350][!SetVariableGroup Color1 "[Color1]" AdaptiveHoney][!SetVariableGroup Color2 "[Color2]" AdaptiveHoney][!SetVariableGroup Color3 "[Color3]" AdaptiveHoney][!SetVariableGroup Path "[FindPath]" AdaptiveHoney][!SetVariableGroup RefReq -1 AdaptiveHoney]
Group=AdaptiveHoney

[Metadata]
Name=AdaptiveHoneyComb
Author=Richard Hawk
Information=Tinted honeycomb icons for current wallpaper
License=Creative Commons Attribution-Non-Commercial-Share Alike 3.0

;Placeholder Value
[Variables]
RefReq=20

;Prevent rapid updates of group variables
[RefreshDelay]
Measure=Calc
Formula=(RefreshDelay+1)%11
IfEqualValue=10
IfEqualAction=[!PauseMeasure #CURRENTSECTION#]

[RefreshRequest]
Measure=Calc
Formula=(#RefReq#-[RefreshDelay])
IfEqualValue=1
IfEqualAction=[!SetVariableGroup Color1 "[Color1]" AdaptiveHoney][!SetVariableGroup Color2 "[Color2]" AdaptiveHoney][!SetVariableGroup Color3 "[Color3]" AdaptiveHoney][!SetVariableGroup Path "[FindPath]" AdaptiveHoney][!SetVariableGroup RefReq -1 AdaptiveHoney][!UnpauseMeasure RefreshDelay]
DynamicVariables=1

;Check for current wallpaper filename every "IfEqualValue" seconds
[cUpdate]
Measure=Calc
Formula= (cUpdate+1) % 7
IfEqualValue=6
IfEqualAction=[!CommandMeasure FindPath "Run"]

;Wallpaper filepath
[FindPath]
Measure=Plugin
Plugin=RunCommand
Program=PowerShell.exe
Parameter=-NoProfile -ExecutionPolicy Bypass -Command "& '.\findpath.ps1' "
OutputType=ANSI
DynamicVariables=1
UpdateDivider=-1

;Update colors after wallpaper has changed
[DetectChange]
Measure=String
String=[FindPath]
OnChangeAction=[!UpdateMeasureGroup Extract][!Delay 500][!SetVariableGroup Color1 "[Color1]" AdaptiveHoney][!SetVariableGroup Color2 "[Color2]" AdaptiveHoney][!SetVariableGroup Color3 "[Color3]" AdaptiveHoney][!SetVariableGroup Path "[FindPath]" AdaptiveHoney]
DynamicVariables=1

;Extracting 3 colors
[MeasureParent]
Measure=Plugin
Plugin=ColorExtract
ImagePath=[FindPath]
DynamicVariables=1
Group=Extract
UpdateDivider=-1

[Color1]
Measure=Plugin
Plugin=ColorExtract
ParentMeasure=[MeasureParent]
ColorType=Background
Group=Extract
UpdateDivider=-1

[Color2]
Measure=Plugin
Plugin=ColorExtract
ParentMeasure=[MeasureParent]
ColorType=Accent1
Group=Extract
UpdateDivider=-1

[Color3]
Measure=Plugin
Plugin=ColorExtract
ParentMeasure=[MeasureParent]
ColorType=Accent2
Group=Extract
UpdateDivider=-1

[RequiredMeter]
Meter=String
UpdateDivider=-1
Code for a launcher icon to launch firefox:

Code: Select all

[Rainmeter]
Update=3000
Group=AdaptiveHoney
OnRefreshAction=[!SetVariableGroup RefReq 11 AdaptiveHoney]

[Metadata]
Name=AdaptiveHoneyComb
Author=Richard Hawk
Information=Tinted honeycomb icons for current wallpaper
License=Creative Commons Attribution-Non-Commercial-Share Alike 3.0

[ActivateFinder]
Measure=Plugin
Plugin=ConfigActive
ConfigName=AdaptiveHoneycomb\ColorFinder
IfCondition=ActivateFinder=1
IfFalseAction=[!ActivateConfig "AdaptiveHoneycomb\ColorFinder\" "colorfinder.ini"]
UpdateDivider=-1

[BackColor]
Meter=Image
ImageName=#@#background.png
X=(#SCREENAREAWIDTH# - 90)
Y=180
H=90
ImageTint=#Color2#
LeftMouseUpAction=["firefox.exe"]
Group=Icons
DynamicVariables=1
UpdateDivider=-1

[Icon]
Meter=Image
ImageName=#@#Icons\firefox.png
X=(#SCREENAREAWIDTH# - 90)
Y=180
H=90
ImageTint=#Color1#
Group=Icons
DynamicVariables=1
UpdateDivider=-1

[Outline]
Meter=Image
ImageName=#@#border.png
X=(#SCREENAREAWIDTH# - 90)
Y=180
H=90
ImageTint=#Color3#
Group=Icons
DynamicVariables=1
UpdateDivider=-1

[DetectChange]
Measure=String
String=#Path#
OnChangeAction=[!UpdateMeterGroup Icons]
DynamicVariables=1
Plugins used & included in the package installer:
ColorExtract plugin by icesoldier
https://forum.rainmeter.net/viewtopic.php?t=21411

ConfigActive plugin by JSMorley and TheAzack9
https://forum.rainmeter.net/viewtopic.php?t=28720

Honeycomb skin that inspired this:
Honeycomb by APIIUM
https://www.deviantart.com/apiium/art/Honeycomb-467211707

This was my first skin creation so any feedback is certainly welcome!
You do not have the required permissions to view the files attached to this post.