It is currently February 23rd, 2024, 2:56 am

[SUGGESTION & POLL] Reserve desktop space for skins using a SetDesktopWorkArea bang

Report bugs with the Rainmeter application and suggest features.

What should be done to avoid the overlapping of skins by other windows?

- adjust the DesktopWorkArea options to make them persistent during a Rainmeter session
2
40%
- add a !SetDesktopArea bang to allow users to set these options freely at any time
2
40%
- do nothing, I don't care about it or I'm fine with using another utility for this purpose
1
20%
 
Total votes: 5
User avatar
Yincognito
Rainmeter Sage
Posts: 6781
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

[SUGGESTION & POLL] Reserve desktop space for skins using a SetDesktopWorkArea bang

Post by Yincognito »

For those who don't know it yet, Rainmeter has a nice multi-monitor DesktopWorkArea option that defines the area other windows are allowed to use when being resized or maximized, in effect avoiding the unwanted overlapping of skins by other windows and viceversa.
Its functionality is useful and desired by users, but there are some problems with it:
- it needs activating the other windows in order to be applied to them (its effects aren't immediate in resizing the other windows to that space)
- it's not persistent after moving the taskbar or changing resolution (the latter is often the case before or after running D3D software like games)
- its development is abandoned because of personal preference, user control concerns or just cause other software can do it as well (all debatable)
The possible avenues that can be followed regarding this are mainly (hardest to lowest difficulty order):
- adjust what the DesktopWorkArea does to make it work and be persistent during a Rainmeter session
- add a bang like [!SetDesktopArea "MonitorIndex" "DesktopWorkAreaType" "Value1" "Value2" "Value3" "Value4"] (formulas allowed) to set it freely
- give up and don't do anything on this for another decade despite its usefulness, achievability and desirability

Of the three posibilities above, the 2nd one is a decent compromise and doable with a moderate effort from the developers and would at least avoid the need to physically write work area values to the skin, refresh the entire Rainmeter along with all the loaded skins, and rescanning the skins folder, like below:

Rainmeter.ini:

Code: Select all

[Rainmeter]
DesktopWorkAreaType=1
DesktopWorkArea=0,24,0,30

...
Skin.ini:

Code: Select all

[Variables]
WAX=0
WAY=0
WAW=0
WAH=0

[Rainmeter]
Update=1000
AccurateText=1
DynamicWindowSize=1

---Measures---

[RestoreDesktopWorkArea]
Measure=Calc
IfCondition=((#WORKAREAX#<>#WAX#)||(#WORKAREAY#<>#WAY#)||(#WORKAREAWIDTH#<>#WAW#)||(#WORKAREAHEIGHT#<>#WAH#))
IfTrueAction=[!WriteKeyValue Variables WAX #WORKAREAX#][!WriteKeyValue Variables WAY #WORKAREAY#][!WriteKeyValue Variables WAW #WORKAREAWIDTH#][!WriteKeyValue Variables WAH #WORKAREAHEIGHT#][!RefreshApp]
IfConditionMode=1
DynamicVariables=1

---Meters---

[Result]
Meter=Image
W=48
H=24
SolidColor=0,255,0,255
Yes, any other software (including Windows itself or other Rainmeter alternatives) can manipulate the desktop work area and the way to do it is not exactly standard, but these are not reasons to keep it only half done or even thinking about removing it from Rainmeter (the latter would be the worst idea in this case). This is not about the user not having the ultimate control of their desktop, but it's precisely about having that control if the user wants it, even if done automatically (assuming there is an accessible way to revert back to default if needed). We shouldn't have to buy multiple monitors or buy / use multiple programs just to be able to display both ours skins and windows on our screens.
I wanted to make a poll for a long time and never found the right topic to add it to, but this is a good fit since I've been delaying posting a strong opinion on this for years. Hopefully others will share their choices in this poll and maybe convince the developers that it's worth tackling this, when they'll have time to do it...
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth