It is currently November 19th, 2018, 8:12 am

IsFullScreen 3.0

Share your custom plugins and applications to enhance Rainmeter.
User avatar
jsmorley
Developer
Posts: 18330
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: IsFullScreen 3.0

jsmorley » September 16th, 2018, 11:23 pm

gokussj324 wrote:Hi, I would like to add that this "bug" doesn't happen only when win + d is used or when show desktop button in the taskbar is pressed. It also happens when desktop gets focus by clicking anywhere on desktop wallpaper or icon.
This is the only issue I am experiencing with this otherwise great tool and would be perfect if this issue got sorted out.
I don't get this behavior, unless I have used Win-D or clicked "Show desktop", at which point it sees "explorer.exe / not full screen", and will continue to say that even when I click the desktop, until I give some other window focus. Then it will go back to "Desktop" when I click on the desktop.

Remember this isn't about "clicks" as such, but "focus". Who has focus...
mysticbnk
Posts: 1
Joined: September 22nd, 2018, 7:44 pm

Re: IsFullScreen 3.0

mysticbnk » September 22nd, 2018, 7:48 pm

can we blacklist certain process from not triggering the action ?
User avatar
jsmorley
Developer
Posts: 18330
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: IsFullScreen 3.0

jsmorley » September 22nd, 2018, 10:34 pm

mysticbnk wrote:can we blacklist certain process from not triggering the action ?
No, it's nothing to do with any particular process.
User avatar
mibo5354
Posts: 2
Joined: October 9th, 2018, 9:20 am

Re: IsFullScreen 3.0

mibo5354 » October 9th, 2018, 9:23 am

Would I be able to use the plugin to detect if the desktop is focused or not?
User avatar
jsmorley
Developer
Posts: 18330
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: IsFullScreen 3.0

jsmorley » October 9th, 2018, 10:13 am

mibo5354 wrote:Would I be able to use the plugin to detect if the desktop is focused or not?
; This plugin will check to see if the "foreground" window, the window that currently has
; "focus", is full screen. The measure will return 1 as the number value if so, and
; 0 as the number value if not. The name of the process for the currently focused window will
; be returned as the string value. An empty string will be returned if the Desktop has focus.

; Note that this is not about "maximized", but rather "full screen".
; Note that this applies to full screen windows on the "primary" monitor only.
; Note that this will be unable to detect any process run "As administrator" unless Rainmeter itself is run "As administrator".

Code: Select all

[MeasureIsFullScreen]
Measure=Plugin
Plugin=IsFullScreen
IfCondition=MeasureIsFullScreen=1
IfTrueAction=[!SetOption MeterIsFullScreen Text "Full screen and has focus"][!UpdateMeter *][!Redraw]
IfFalseAction=[!SetOption MeterIsFullScreen Text "Not full screen"][!UpdateMeter *][!Redraw]
IfMatch=^$
IfMatchAction=[!SetOption MeterProcessName Text "Desktop"][!HideMeter MeterIsFullScreen][!UpdateMeter *][!Redraw]
IfNotMatchAction=[!SetOption MeterProcessName Text ""][!ShowMeter MeterIsFullScreen][!UpdateMeter *][!Redraw]
The .rmskin in the first post of this thread has the full code.
User avatar
GioRgSaVv
Posts: 57
Joined: February 7th, 2017, 10:02 pm

Re: IsFullScreen 3.0

GioRgSaVv » November 9th, 2018, 1:58 am

Hey guys I have a problem with this plugin.

This is the code I'm using:

Code: Select all

[Rainmeter]
Update=100

[mIsFullScreen]
Measure=Plugin
Plugin=IsFullScreen
IfCondition=mIsFullScreen=1
IfTrueAction=[!LoadLayout "Taskbar FullScreen"]
IfCondition2=mIsFullScreen=0
IfTrueAction=[!LoadLayout "Taskbar"]

[Image]
Meter=Image
SolidColor=255,120,120,1
W=40
H=40
It's as simple as it gets, I just need it to change the layouts so when I open a game I won't be seeing "stay topmost" meters.
I use stay topmost because I have meters over taskbar, and this works only with stay topmost and not with the "topmost".

Let's say I join a match in League of Legends, it lags a lot! It's like this skin keeps refreshing each millisecond! I don't know how to explain this, but I've already tried with the "Update" at 1/100/1000 it's always the same.

OR

Do you have any better ideas of how to hide all skins when something is in full screen? Or change properly layouts without lags, (ofc the second layout I'm using is empty)


Also, for some strange reason(for me, for you might not be so strange) if I use it like this:

Code: Select all

[mIsFullScreen]
Measure=Plugin
Plugin=IsFullScreen
IfCondition=mIsFullScreen=1
IfTrueAction=[!LoadLayout "Taskbar FullScreen"]
IfFalseAction=[!LoadLayout "Taskbar"]
It will just not open, "Taskbar" is my main layout, and "Taskbar FullScreen" is the empty layout, so, in "Taskbar"(nothing in full screen) this skin just hides, I open it and it immediately hides.

Hmmm
I just realized how it works, so it does refresh every millisecond, since the code itself says "load the full screen layout" it actually does that constantly.
So when the full screen layout is loaded, I need other skin to say the opposite "if not in full screen then load the layout with no full screen"
I'm trying that right now.

So this doesn't work either, it just does the same, it lags a lot.

Code: Select all

[mIsFullScreen]
Measure=Plugin
Plugin=IsFullScreen
IfCondition=mIsFullScreen=0
IfTrueAction=[!LoadLayout "Taskbar"]
User avatar
eclectic-tech
Rainmeter Sage
Posts: 3025
Joined: April 12th, 2012, 9:40 pm
Location: Cedar Point, Ohio, USA

Re: IsFullScreen 3.0

eclectic-tech » November 9th, 2018, 4:14 am

Do you want to completely unload skins to reduce the load on system resources, or do you just not want them TopMost?

If the concern is simply not to have them TopMost, you can hide/show all skins based on IsFullScreen; this will not unload them so they may still impact system performance.

Code: Select all

[Rainmeter]
Update=1000
AccurateText=1
DynamicWindowSize=1
Group=#RootConfig#

; ========= Metadata ==========
[Metadata]
Name=Fullscreen Hide/Show
Author=Eclectic Tech
Information=Uses IsFullscreen plugin by JSMorley to HIDE ALL SKINS if focused window is fullscreen and SHOW ALL SKINS if not.|Run this invisible skin in the background to monitor for fullscreen windows.
License=Creative Commons Share-Alike NC 4
Version=0.1

; ========= Variables ==========
[Variables]

; ========= Measures ==========
[mIsFullScreen]
Measure=Plugin
Plugin=IsFullScreen
IfCondition=mIsFullScreen=1
IfTrueAction=[!Hide *]
IfFalseAction=[!Show *]

; ========= Meter Styles ==========


; ========= Meters ==========
[MeterString]
Meter=String
User avatar
GioRgSaVv
Posts: 57
Joined: February 7th, 2017, 10:02 pm

Re: IsFullScreen 3.0

GioRgSaVv » November 10th, 2018, 10:27 am

Hey thanks for the code, it actually worked without lags!
Is it possible btw to exclude a skin? Hide everything except skin5 for example.
User avatar
eclectic-tech
Rainmeter Sage
Posts: 3025
Joined: April 12th, 2012, 9:40 pm
Location: Cedar Point, Ohio, USA

Re: IsFullScreen 3.0

eclectic-tech » November 10th, 2018, 12:33 pm

GioRgSaVv wrote:
November 10th, 2018, 10:27 am
Hey thanks for the code, it actually worked without lags!
Is it possible btw to exclude a skin? Hide everything except skin5 for example.
Yes, add a !Show bang right after you hide all: [!Hide *][!Show "Skin5~ConfigName"]
This will hide all skins then show only Skin5.

Use the Config Name of the skin in the !Show bang.

A simple way to find the Config Name is to right-click the skin to open the context menu, the bold top name in that list, is the Config Name. :great:
User avatar
GioRgSaVv
Posts: 57
Joined: February 7th, 2017, 10:02 pm

Re: IsFullScreen 3.0

GioRgSaVv » November 10th, 2018, 10:30 pm

Hey, thank you for your reply. This method doesn't work.

I've tried:

Code: Select all

[!Hide *][!Show "Test~Skin5"]
[!Hide *][!Show Test~Skin5]
[!Hide *][!Show "Test\Skin5"]
[!Hide *][!Show "Skin5"]
[!Hide *][!Show Skin5]
[!Hide *][!Show "Skin5~Test"]
..
.
and a billion other tries xD It just won't work. The skin is a simple one for audio player, it just shows the song's name and a bar showing the duration.