It is currently July 7th, 2022, 3:53 am

Adaptive Honeycomb - Launcher icons tinted based on current wallpaper

Skins to open folders and launch applications and websites
VP_Richard_Hawk
Posts: 2
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.
ThatOneDevil
Posts: 3
Joined: September 16th, 2021, 4:12 pm

Re: Adaptive Honeycomb - Launcher icons tinted based on current wallpaper

Post by ThatOneDevil »

I love it, but is there a way to change their position? I don't like how they're stuck in a small portion of the screen
VP_Richard_Hawk
Posts: 2
Joined: May 21st, 2020, 9:40 pm

Re: Adaptive Honeycomb - Launcher icons tinted based on current wallpaper

Post by VP_Richard_Hawk »

ThatOneDevil wrote: February 18th, 2022, 10:48 am I love it, but is there a way to change their position? I don't like how they're stuck in a small portion of the screen
Glad you like it! You can change the position by editing the .ini file for each launcher, either from your Rainmeter skins folder, or from the Manage Rainmeter window, or just ctrl + right click each icon and click Edit Skin. In each file, you'll see a section for [BackColor], [Icon], and [Outline].
Under each of these sections are values for X, and Y that control the icon's position. When you adjust these, be sure that the each of the 3 sections have the same X and the same Y for the icon you're changing.

For the discord icon as an example, I have it set as:
X=(#SCREENAREAWIDTH# - 210)
Y=396
So this will place the icon 210 pixels from the right side of the screen, and 396 pixels from the top. If you want the horizontal position measured from the left, you could just say X=200. Or you can measure from the center of the screen if you divide the #SCREENAREAWIDTH# by 2 (or #SCREENAREAHEIGHT# for vertical center). You could then +/- whatever values you want from that center position. More info on those variables here:
https://docs.rainmeter.net/tips/screen-position-variables/

Also, the H=90 under each [BackColor], [Icon], and [Outline] is what controls the size of the icons, so you can play around with that value if you wanted to grow/shrink any of them.