It is currently September 8th, 2024, 12:13 am

"on desktop" not sticking for a full screen skin

Get help with creating, editing & fixing problems with skins
dans98
Posts: 8
Joined: October 27th, 2023, 8:01 pm

"on desktop" not sticking for a full screen skin

Post by dans98 »

I recently ordered a new mini/portable monitor that's going to become a dedicated rainmeter/taskbar screen. Thus I started designing a brand new skin That will be full screen 24/7/365. However just a few minutes into the project I've come across an issue that I don't understand.

The skin

Code: Select all

[Rainmeter]
Update=200
AccurateText=1
BackgroundMode=1

[Variables]
SkinBackgroundColor=0,0,0,128

[SkinBackground]
Meter=Image
SolidColor=#SkinBackgroundColor#
W=#PSCREENAREAWIDTH#
H=#PSCREENAREAHEIGHT#
DynamicVariables=1
When I load the skin it defaults to position "normal" as expected. When I change the position to "on desktop" it does what I want and expect, it sits under the taskbar and on top of the background.

However, as soon as I minimize an application on my primary display, or unminimize an application to my secondary display, the skin seems to revert to "normal", and cover the taskbar.

What's really odd to me is when I right click the skin and select manage skin it still shows position is set to "on desktop" in the gui. If I check Raimeter.ini it shows AlwaysOnTop=-2 for the skin.

What am I missing, why isn't the position persistent/sticking?
User avatar
SilverAzide
Rainmeter Sage
Posts: 2734
Joined: March 23rd, 2015, 5:26 pm

Re: "on desktop" not sticking for a full screen skin

Post by SilverAzide »

dans98 wrote: July 22nd, 2024, 9:26 pm I recently ordered a new mini/portable monitor that's going to become a dedicated rainmeter/taskbar screen. Thus I started designing a brand new skin That will be full screen 24/7/365. However just a few minutes into the project I've come across an issue that I don't understand.

The skin

When I load the skin it defaults to position "normal" as expected. When I change the position to "on desktop" it does what I want and expect, it sits under the taskbar and on top of the background.

However, as soon as I minimize an application on my primary display, or unminimize an application to my secondary display, the skin seems to revert to "normal", and cover the taskbar.

What's really odd to me is when I right click the skin and select manage skin it still shows position is set to "on desktop" in the gui. If I check Raimeter.ini it shows AlwaysOnTop=-2 for the skin.

What am I missing, why isn't the position persistent/sticking?
Simple... it's because you are picking a fight with Microsoft Windows itself and you will always lose.

You cannot -- cannot -- cover the taskbar. You can get away with it for a little while, but minimizing/restoring/hotkeys/etc. will pop the taskbar on top again. This is known and documented Windows behavior. There are z-orders only the OS can access; which is also why you also can't put skins under desktop icons.

Think about it... if it was so easy to cover the taskbar, then it would be trivial for malicious coders to cover the whole screen with even the simplest of apps. You could try running the OS in kiosk-mode, but not sure if Rainmeter will work that way.
Gadgets Wiki GitHub More Gadgets...
dans98
Posts: 8
Joined: October 27th, 2023, 8:01 pm

Re: "on desktop" not sticking for a full screen skin

Post by dans98 »

SilverAzide wrote: July 22nd, 2024, 10:19 pm Simple... it's because you are picking a fight with Microsoft Windows itself and you will always lose.

You cannot -- cannot -- cover the taskbar. You can get away with it for a little while, but minimizing/restoring/hotkeys/etc. will pop the taskbar on top again. This is known and documented Windows behavior. There are z-orders only the OS can access; which is also why you also can't put skins under desktop icons.
I don't want the skin over the taskbar, i want it to be under it, "On Desktop" puts the skin under the taksbar.
https://docs.rainmeter.net/manual/settings/skin-sections/#AlwaysOnTop

For some reason windows seems to be putting it back in "normal" mode and over the taskbar, when apps are minimized or un-minimized. It also only seems to be an issue when the skin is full screen, it works as expected with a non full screen skin.
User avatar
SilverAzide
Rainmeter Sage
Posts: 2734
Joined: March 23rd, 2015, 5:26 pm

Re: "on desktop" not sticking for a full screen skin

Post by SilverAzide »

dans98 wrote: July 22nd, 2024, 10:37 pm I don't want the skin over the taskbar, i want it to be under it, "On Desktop" puts the skin under the taksbar.
https://docs.rainmeter.net/manual/settings/skin-sections/#AlwaysOnTop

For some reason windows seems to be putting it back in "normal" mode and over the taskbar, when apps are minimized or un-minimized. It also only seems to be an issue when the skin is full screen, it works as expected with a non full screen skin.
You've got your background meter redrawing every 200ms, so Rainmeter (not Windows) will redraw it over/under/whatever every 200ms when it can. This is the "fight" I was referring to. As soon as the OS decides it wants the taskbar redrawn, it will redraw it however it feels like it, and Rainmeter might not be informed that part of its "window" is obscured/uncovered/whatever and need refreshing. Windows redraws only the parts of a window that changes, and Windows makes that decision.

Feel free to continue tilting at this windmill. You are still going to lose when you are intruding on Microsoft's turf. Good luck.
Gadgets Wiki GitHub More Gadgets...
User avatar
Yincognito
Rainmeter Sage
Posts: 8030
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: "on desktop" not sticking for a full screen skin

Post by Yincognito »

I might be wrong here, but "full screen" stuff are supposed to cover the taskbar anyway (possibly even if "behind" it due to sticking to the screen's margins and triggering other Windows mechanisms). If it works as expected for non full screen dimensions of the skin, why not try and subtract 1 pixel or something from one of the skin's dimensions and see if it works like that? :confused:
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth
User avatar
Active Colors
Moderator
Posts: 1297
Joined: February 16th, 2012, 3:32 am
Location: Berlin, Germany

Re: "on desktop" not sticking for a full screen skin

Post by Active Colors »

dans98 wrote: July 22nd, 2024, 9:26 pm I recently ordered a new mini/portable monitor that's going to become a dedicated rainmeter/taskbar screen. Thus I started designing a brand new skin That will be full screen 24/7/365. However just a few minutes into the project I've come across an issue that I don't understand.

The skin

Code: Select all

[Rainmeter]
Update=200
AccurateText=1
BackgroundMode=1

[Variables]
SkinBackgroundColor=0,0,0,128

[SkinBackground]
Meter=Image
SolidColor=#SkinBackgroundColor#
W=#PSCREENAREAWIDTH#
H=#PSCREENAREAHEIGHT#
DynamicVariables=1
When I load the skin it defaults to position "normal" as expected. When I change the position to "on desktop" it does what I want and expect, it sits under the taskbar and on top of the background.

However, as soon as I minimize an application on my primary display, or unminimize an application to my secondary display, the skin seems to revert to "normal", and cover the taskbar.

What's really odd to me is when I right click the skin and select manage skin it still shows position is set to "on desktop" in the gui. If I check Raimeter.ini it shows AlwaysOnTop=-2 for the skin.

What am I missing, why isn't the position persistent/sticking?
If you have AlwaysOnTop=-2 in Rainmeter you should have the skin sticked to desktop and not fight to be on top of other windows. But taskbar is a special animal. The best way to test if your skin somehow gets to “Normal” is to drag the skin over some explorer window when your skin becomes over the taskbar. If your skin is not covering other explorer windows - the skin and Rainmeter is fine.
dans98
Posts: 8
Joined: October 27th, 2023, 8:01 pm

Re: "on desktop" not sticking for a full screen skin

Post by dans98 »

The underlying issue is that the SetWallpaper bang, doesn't let you set the wallpaper per monitor even though windows 10 & 11 support it natively.

If Rainmeter did support it, I think it would probably make a lot of peoples lives easier, specially when you consider the number of people running multiple monitors of with different resolutions, aspect ratios, and orientations.



I found this power shell module that says it can set the background per monitor, so i'll take a look at that tonight to see if i can come up with something that meets my needs, if not it will be back to the drawing board.
https://www.powershellgallery.com/packages/FP.SetWallpaper/1.0.1
User avatar
sl23
Posts: 1600
Joined: February 17th, 2011, 7:45 pm
Location: a Galaxy S7 far far away

Re: "on desktop" not sticking for a full screen skin

Post by sl23 »

Can't you just do what I do with my Screensaver skin:
Shape=Rectangle 0,0,#ScreenAreaWidth#,#WorkAreaHeight#,0 | Extend FillAlpha

If it's under the Taskbar, it doesn't need to be full screen, surely?
57686174 77696C6C 6265 77696C6C 6265
User avatar
Yincognito
Rainmeter Sage
Posts: 8030
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: "on desktop" not sticking for a full screen skin

Post by Yincognito »

dans98 wrote: July 23rd, 2024, 4:02 pm If Rainmeter did support it [...]
I found this power shell module [...]
Well, as you can see, not even PowerShell supports it out of the box or in a single command, without having to rely on some custom module / dll... :confused:
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth