It is currently August 8th, 2020, 9:17 am

[Feature Request] Unintrusive Layouts

Report bugs with the Rainmeter application and suggest features.
User avatar
Posts: 2195
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

[Feature Request] Unintrusive Layouts

Post by Yincognito »

Ok, so everybody knows what a Layout is. Besides a layout, there are also the (very useful) Default Settings in each skin's [Rainmeter] section, but these two only cover up two usage scenarios, of the three possible:

- completely replace the active layout / Rainmeter.ini with the layout to be loaded (covered by loading a layout)
- add starting values for not yet loaded skins to the active layout / Rainmeter.ini (covered by the default settings)
- replace only the skin sections that exist in both the current layout and the layout to be loaded (not covered)

So, my question is: could the latter possibility (i.e. the 3rd above) be implemented in Rainmeter? I'm looking for something like a "layout merge" between the layout to be loaded and the currently used layout / Rainmeter.ini, where a skin section in the layout to be loaded would be subject to the following:

- if it already exists in the currently used layout / Rainmeter.ini, it will replace that section there
- if it doesn't exist, it is added / "merged" into the currently used layout / Rainmeter.ini

Even easier to understand: let's say that I have 7 skins (active or not, it doesn't matter) in my currently used layout / Rainmeter.ini, and I am going to load a layout containing 3 of the skins that are also present in my currently used layout and 2 other skins that are not present there. I would like the settings for those 3 skins that are common to the currently used layout and the layout to be loaded to be overwritten from the layout I'm going to load, and the other 2 that are missing from the currently used layout to be added to it from the layout I'm going to load.

Usage scenario: user has 4 loaded skins, and downloads and installs some skin suite from DeviantArt that automatically loads its layout. What happens is that those 4 skins will be "lost" / "dissapear" when the new layout is loaded, since it completely replaces the user's existing layout. I want those 4 skins to remain as they are, and the skins in the new layout to be loaded seamlessly along those 4, according to the settings in the new layout (and its "merge status").

If the devs are interested, I can come up with ideas to solve the backwards compatibility argument. Like a new option in Rainmeter.ini, let's call it "Merge", that defaults to 0 if not present (say, an older Rainmeter version) but gets its value if present and based on that it decides how the new layout will be applied: 0 = replace old layout with the new one; 1 = merge the new layout into the old one.