Wallpaper Engine

Wallpaper Engine

View Stats:
Kaizen Jun 27, 2021 @ 3:30pm
Assign desired Corsair iCUE profile to each wallpaper?
I LOVE this program... however I'm really surprised and saddened to see that I can't simply assign an iCUE profile to a wallpaper. I appreciate that there is an iCUE plugin, but the result it produces is extremely lackluster, and horrible on some wallpapers! I have really great profiles that fit my favorite wallpapers amazingly. Is there a way to link this up so as the wallpaper changes, it switches to the assigned iCUE profile? If not, I may have to create a solution for this myself. It needs to happen. Thanks!!
< >
Showing 1-6 of 6 comments
Tim  [developer] Jun 28, 2021 @ 3:20am 
Calling the LED plugin "extremely lackluster" is pretty rude, we have spent hundreds of hours on it and worked very closely with Corsair when developing and maintaining it, there's much more going on behind the hood than you might think. The feature does not necessarily make sense for all wallpapers, I agree, but in those cases most users tend to just turn off the lighting for that specific wallpaper in the wallpaper settings and let iCUE fall back to its currently configured profile.

The iCUE SDK does not actually support loading profiles through another app. As far as I know, Corsair leaves loading profiles up to the user mostly and there is no neat way to find them all and change them properly. There may be some "hacky" ways to achieve this but we tend to stay away from solutions like that because they can break with any iCUE update and in the worst case cause crashes for all iCUE users of Wallpaper Engine, so that's a big no-no from our end from a quality point of view.

My suggestion is to simply turn off the iCUE lighting for wallpapers were it looks bad and fall back to the currently running iCUE profile. We could consider adding more "override light settings" into the app but the development overhead for these things tends to be rather large and the user base that benefits from it would be rather small - these are things we need to take into consideration.
Last edited by Tim; Jun 28, 2021 @ 3:25am
Kaizen Jul 3, 2021 @ 11:33am 
Thank you for your reply. I did not mean to be rude, I do sincerely apologize. That was a poor choice of words. It does work well on some.. and it is a great feature. It's just that hand-created profiles can't really be beat in terms of the lighting effects. I have so many that fit perfect with my favorite wallpapers. I'd just really like to be able to use existing profiles as well. I get that the user base would likely be very small.
It is very unfortunate (I think) that Corsair has made it difficult to switch profiles programmatically.
One way to do it that shouldn't break is through assigning keys to switch to a profile in iCUE. Then if something could do that keypress for that profile when the wallpaper is loaded... that would work. It's also very sad that iCUE doesn't allow key combos to map to that. One only has so many keys they can spare for that purpose.
And then there's this: (you would probably consider hacky)
https://github.com/Legion2/open-cue-service
My thinking is that when you open up to allow plugins to be made, what I'm proposing could be a 3rd party plugin someone makes (possibly myself)... then you don't have to have any responsibility for it breaking in the future. =D
For now, I can use this open cue service to create a solution for myself... and others. I could create a launcher or autohotkey macro to launch the wallpaper and the iCUE profile I want to match it. What would be best is if I could get the name of the currently active wallpaper somehow, and from there I could write an autohotkey script (or dedicated program) to watch for that - and load the desired iCUE profile. Is there somewhere in the Wallpaper Engine GUI or anywhere else where the name (or some other unique identifier) for the current wallpaper is exposed? If I could read that from somewhere I should be able to make a working solution that I could share with others.
Thank you very much. I absolutely love your program and I do apologize again regarding my poor selection of words.

<<EDIT>>
I did find where the active file is displayed in config.json, I should be able to work with that. =D


Last edited by Kaizen; Jul 3, 2021 @ 11:57am
Biohazard  [developer] Jul 3, 2021 @ 12:03pm 
Originally posted by Kaizen:
I did find where the active file is displayed in config.json, I should be able to work with that. =D

That's probably the best way to do it yeah, you could even use a file change listener to produce an event.

We tried using the standard console output in the past and add something to the CLI interface to retrieve information: https://help.wallpaperengine.io/en/functionality/cli.html but it didn't work out, because Wallpaper Engine is a GUI app without console and Windows really doesn't like applications using the standard output in that case. So we haven't managed to add that yet unfortunately.

The plugin interface is also lacking functions for this. It's also still not public because we haven't settled on a way to build it that would allow us to rapidly add features without worrying about backward compatibility or immediately breaking all existing plugins people made. We have looked into this many times already so it's definitely still on our mind.
Kaizen Jul 4, 2021 @ 2:13am 
Thanks so much! I had a little time tonight and got this working as desired - if I set a custom iCUE profile it loads that with the wallpaper, if a custom profile is not set it will use the iCUE plugin LED effects if "Enable LED effects" is checked, and if none of those it will revert to whatever profile is active in the iCUE software (if any). The only problem I ran into was that it appears that the config.json file changes only when I manually invoke a change (whether I click on a wallpaper to change it or do "next wallpaper" through a keyboard shortcut or right-clicking the taskbar icon). When it changes on a timer it does not appear to update the config.json in any way, so there is no way to tell which wallpaper is active at that point (especially since I have it set to select randomly). My workaround for now will be to have my script change to "next wallpaper" via command line or keyboard shortcut at the desired interval instead of having Wallpaper Engine do it. That should do the trick. =D
Biohazard  [developer] Jul 4, 2021 @ 7:14am 
Hm yeah, the intermediate playlist state is persisted in bin/playliststate.bin. It stores numbers and strings in a binary format, but you could probably use a regex to retrieve the strings too, so it may even be easier to deal with than config.json.
Kaizen Jul 4, 2021 @ 4:54pm 
It seems that playliststate.bin is updated when Wallpaper Engine changes the wallpaper based on it's setting, and when "next wallpaper" is chosen... but not when a wallpaper is chosen through the GUI. So my workaround for now is to monitor both config.json and playliststate.bin. Working! Thanks, super stoked!! =D
< >
Showing 1-6 of 6 comments
Per page: 1530 50

Date Posted: Jun 27, 2021 @ 3:30pm
Posts: 6