Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maximize/Full Screen window within a zone (virtual monitor) #279

Open
senk-msft opened this issue Sep 6, 2019 · 155 comments
Open

Maximize/Full Screen window within a zone (virtual monitor) #279

senk-msft opened this issue Sep 6, 2019 · 155 comments
Labels
Idea-Enhancement New feature or request on an existing product Product-FancyZones Refers to the FancyZones PowerToy Product-Window Manager Refers to the idea of a Window Manager PowerToy

Comments

@senk-msft
Copy link

Maximize window within the zone

Maximizing the window currently maximizing it to the whole desktop. It would be useful if it has the ability to maximize within the zone

@enricogior enricogior added the Product-FancyZones Refers to the FancyZones PowerToy label Sep 8, 2019
@enricogior enricogior added Product-Window Manager Refers to the idea of a Window Manager PowerToy Idea-Enhancement New feature or request on an existing product labels Sep 30, 2019
@enricogior
Copy link
Contributor

Adding reference to the full screen suggestion, similar but not the same #422

@orlando2bjr
Copy link

Add support for maximizing in the zone with Shift+Double Click on title bar as well.

That way, all methods (I guess) of maximizing in the zone would be supported.

@crutkas
Copy link
Member

crutkas commented Feb 29, 2020

Much like issue #1400, i'm a bit confused what "maximize window within a zone" means.

Is it the believe that zones represent sections of the screen (like just like you could have multiple monitors) and if an app is inside that area of the zone, it should be treated just like it would if it was another monitor? A way to think about it would be a virtual monitor.

@enricogior
Copy link
Contributor

enricogior commented Feb 29, 2020

@crutkas
yes, the idea is to be able to maximize/go fullscreen as if the zone is a virtual monitor. Not sure this is doable. My guess is that is not possible, but we haven't investigate it yet.

@Postlagerkarte
Copy link

Since Shift-Windows-ArrowUp is already doing a maximize within a a zone , couldn't you just map this to Windows-ArrowUp? Same as you do for windows-left-arrow and windows-right-arrow.

Handling the click on the window itself is a different story, hope you could make that work too.

@crutkas
Copy link
Member

crutkas commented Feb 29, 2020

Win Shift up arrow is a Part of aero snap. We would have to override it

The issue with something like this is what determines what some the window is in. Overlapping zones and when the window is across multiple zones would have to be answered.

@meanderix
Copy link

@crutkas This should be similar to when you're using multiple monitors. I think the default approach is to look at the center coordinate of the window. Anyway, I think this would be a great improvement.

@alapo
Copy link

alapo commented Jun 19, 2020

Hey guys,

I just started using PowerTools and wanted to contribute. I uploaded a short video so everyone could visualize the issue that I think is being described.

IMAGE ALT TEXT HERE

@crutkas
Copy link
Member

crutkas commented Jun 19, 2020

Hey guys,

I just started using PowerTools and wanted to contribute. I uploaded a short video so everyone could visualize the issue that I think is being described.

IMAGE ALT TEXT HERE

That is because you set you base layout with a padding.

The issue here is it sounds like they want a zone to act like a “virtual monitor”.

@enricogior enricogior changed the title Maximize window within the zone [FancyZones] Maximize/Full Screen window within the zone Jul 30, 2020
@LayerCakeMakes
Copy link

I would also really like this feature. My main reason for wanting this is having a way to display a Netflix or YouTube video full screen in one of the zones but also a browser window in full screen for reading is nice to have.

@ChristopherHaws
Copy link

I've had to switch to MaxTo because this functionality doesnt exist in PowerToys. I really hope it is added soon so I can switch back! :)

@enricogior
Copy link
Contributor

@ChristopherHaws
with MaxTo, you can have a windows in full-screen mode inside a region?

@ChristopherHaws
Copy link

ChristopherHaws commented Aug 12, 2020

@enricogior You can 'maximize' the window, but 'full-screen' is not supported. It works a lot more like standard windows does (windows snap keyboard shortcuts, edge snapping, maximize button, etc). To me it is lot more intuitive than having to hold down the shift key to snap to a region. There are some features I wish it had such as actual full screen support, adjacent windows resizing (like the built in Windows Snap), etc, but to be fair, those features don't exist in PowerToys either.

Here is a link to the issue where they talk about why "full screen" is not supported: digitalcreations/MaxTo#388

@crutkas crutkas added this to the Suggested Enhancements milestone Aug 12, 2020
@enricogior
Copy link
Contributor

@ChristopherHaws
you say "maximize", but if I understand correctly it's just placing the window in the region, not really maximizing it.
In 0.21 we will add directional snapping with Win + Arrows in all four directions, that will improve the user experience when using just the keyboard.

@LayerCakeMakes
Copy link

@enricogior just tested it, MaxTo "maximizes" the window to the region when you click the windows maximize button. Not exactly what this ticket is about. It also can not handle full screen windows.

@enricogior
Copy link
Contributor

@kbehren
as far as I know, the only way to go full screen in a zone/region would be to create a virtual monitor.
If a window is full screen, we can resize it to a zone, but as soon as the user interacts with the window, the application will go back to the full screen.

@dacowan
Copy link

dacowan commented Aug 12, 2020

+1 on this request. Here's my particular use case.

I use Visual Studio when developing, and in order to get VS to span across 2 monitors when maximized, I had to use the NVidia Surround mode to make it appear to Windows as a single 7680 x 2160 resolution desktop (2 x 4K monitors).

Fantastic when developing using Visual Studio because I have a single Fancy Zone mapping to that full single desktop and I can maximize VS to that zone.

However, not so fantastic when I want to go fullscreen with a YouTube or Netflix video -- Because it's a single desktop, the fullscreen mode tries to span the whole 7680x2160 (splitting the actual video window right down the middle of the two monitors).

What I ideally want is to create a couple of 3480 x 2160 Fancy zones (one on each monitor - or maybe even two on each monitor) and maximize Edge/Netflix to one of those zones. When I tell the video player to go full-screen, it only expands into that zone - not take over the entire display device/desktop.

Does that make more sense?

@robsoncloud
Copy link

Guys,
I am using the Virtual Display by Ishadow.com and works like a charm. Support Full Screen and allow many customization.
Give it a try https://www.ishadow.com/vdm/

@asjones987
Copy link

Similar issues

#2774
#25179

@shodanx2
Copy link

This might be an entire new application actually and outside the scope of fancyzone.

Essentially, you would want windows to think your monitor is composed of arbitrary number of sub-monitor, or logical monitors. The apps should be not be able to distinguish, they should think these are just more monitors.

Also, this makes me think, there should be a way to set the "main monitor" on a per application basis, to get around tricky fullscreening options

@TheSQLGuru
Copy link

My suspicion is that if the Win APIs (or even driver-level functionality) allowed for the creation of distinct "virtual" monitors that presented themselves as "physical" monitors, that would have been done a long time ago. Heck, DisplayFusion is one of a number of companies that have offered free/commercial software over the past few DECADES that provide monitor-splitting functionality, and not one of them solved this particular issue. I fear that we are left with hoping that someone will come along and think of something that others have not.

@shodanx2
Copy link

I have but tried this but

This driver

https://github.com/roshkins/IddSampleDriver

Let's you create an arbitrary number of virtual display in memory. Called "indirect display".

You could then mirror these display with obs style projectors, into the display area of your real monitor.

It would be best to make the indirect display invisible in the display manager. And they should not be accessible directly with the mouse.

I'm not sure which projector software can also forward the most and keyboard event to the apps in the indirect display.

There would be performance implications. But that could still be very usable, including 3d acceleration and hardware accelerated video decoding

@zakius
Copy link

zakius commented Oct 27, 2023

Seems the Copilot integration does it so can we just borrow pieces of it to make it universal?

@epiqu1n
Copy link

epiqu1n commented Nov 7, 2023

I would also very much like support for fullscreening apps (as in with F11, not just maximizing) within FancyZones. I recently got an ultrawide OLED, and would love to be able to fullscreen windows within their zones to reduce static elements on-screen.

@Dregu
Copy link

Dregu commented Jan 31, 2024

You guys closed #3258 in favor of this one a while ago, but it's a different extremely simple issue about maximizing windows when the zone already covers the whole layout. I have presented a simple fix that frankly should've made it to FancyZones years ago...

@whokeepstakingmyname
Copy link

Being able to play a game in full screen while having that game locked to a Fancy Zone is the only thing keeping me from using an OLED TV for a monitor, and I'd really like that to change. It looks like this issue has been ongoing for years at this point, and it is pretty clear to me at least that it is an incredibly popular feature. Is this a difficult problem to solve? Is it impossible to implement? Or is it just being ignored? Could someone with who works on PowerTools comment on this? This is incredibly frustrating for me.

Thanks

@jbienzss
Copy link

My girlfriend was "gifted" an ultrawide monitor at work and absolutely hates it. She wishes they would have given her two separate smaller monitors. We found the software DisplayFusion can split a monitor allowing maximize and even two separate task bars if desired. It's truly as though they are separate monitors. She doesn't care so much about the separate task bars, she just wants simple dragging, maximizing, etc. as shown in this video:

https://youtu.be/CKXk_yyLHcM

We'd love to see this in FancyZones so her and the other employees who hate the ultrawides wouldn't have to pay $34 for DisplayFusion. Thanks!

@shodanx2
Copy link

@jbienzss

Fancyzones is mostly the same as having two monitors.

You drag a window, in my case hit right click while dragging it by the title bar, drop in a zone. The window will expand to fill the zone.

The two difference I can think of are, if you "fullscreen" an application, like Kiosk mode, or a game, well fullscreen is still "full screen" so it will take the entire screen. (This can be remedied by using borderless fullscreen and either borderless gaming then constraining the "full" screen, or using altsnap to resize the "full" screen to your prefered dimensions)

The other is maximizing, which still maximize to the entire screen. But that's really just a matter of learning to use fancyzone. Then you will only use maximize when you intend for the window to take the entire screen.

Also, AltSnap has slightly different but similar zone snapping system. I like it because when you set a mouse hotclick, then you can drag, resize and snap a window from anywhere, not just the titlebar.

@zakius
Copy link

zakius commented Apr 18, 2024

maximized windows have smaller borders and that makes a huge difference, especially for apps that have tabs on the titlebar, it's so much easier to click them when they touch the screen border

@pfyod
Copy link

pfyod commented Apr 18, 2024

Exactly what @zakius said. In my case, browser does not have a setting to remove borders from non-maximized windows, so just yanking the mouse to the top of the screen to switch between tabs (like I used to with a maximized browser window) does not work with fancy zones.

Maybe this makes someone's life a bit easier - one can create zones that span outside of the viewport, thus effectively making portion of the content hidden. I "solved" my "switching between browser tabs" problem by hiding 10 pixels outside of the top of my screen. The trick is the negative Y value and the increased zone height:

{
  "name": "hide 10px on top",
  "type": "canvas",
  "info": {
	"ref-width": 3002,
	"ref-height": 1216,
	"zones": [
	  {
		"X": 0,
		"Y": -10,
		"width": 1920,
		"height": 1226
	  },
	  {
		"X": 1920,
		"Y": 0,
		"width": 1082,
		"height": 1216
	  }
	],
	"sensitivity-radius": 20
  }
}

This can obviously break some applications if they have some useful UI elements inside those 10 pixels, but it's fine for the applications I normally use in that zone: browser, outlook, IDE.

@totkeks
Copy link

totkeks commented Apr 18, 2024

Fancyzones is mostly the same as having two monitors.

As someone who switched from two 16:10 to one 32:9 monitor, I have to strongly disagree with that.

There are just two many technical differences between a physical monitor and a zone in windows. You just need so many crutches to fix behaviors, that you wouldn't have with two separate monitors, but then you get the black bars in the center of your view, where the monitor bezels are, and I don't want that either.

Maybe it would help with the development of this feature, if it would be split into two parts?
One for the ability to maximize windows inside zones, allowing applications to apply their special behaviors and/or decorations, like a smaller title bar in maximized browser windows. Which might be possible, from what I understood so far, but probably needs support from the windows api team.

Another for the ability to full-screen (that's a verb!) applications inside a zone. Which, from the long history of this issue, might not be possible at all, as it would either require support from the driver vendors (good luck with that 😅), a virtual display driver like vdm uses (which will probably bring a ton of other issues with it) or hooks into dlls (which this project explizitly does not want).

@crutkas or whoever is in charge of the backlog now, what do think of splitting this issue as described above?

@shodanx2
Copy link

Oh, I hadn't though of a mouse stop at the top edge of fancyzones to simulate top of screen.

I bet that could be implemented the same way "mouse sticking" can be enabled between lateral monitors.

Kind of the opposite of https://github.com/MouseUnSnag/MouseUnSnag

Create a "mouse snag barrier" at the top of a fancyzone. Maybe there's already a way to do it ?

@ElfNeedsFood
Copy link

@shodanx2 - many non-game apps "full screen" - my use case is Zoom, but Teams, YouTube, training sites can all benefit from a "full screen" mode that is fenced.

@shodanx2
Copy link

@ElfNeedsFood

You might like AltSnap for this

You hotclick+middle click and there is a borderless option you can apply to any window.

Then you snap it into your grid (for this you have to setup AltSnap snap zones)

I believe this is as closed as "fullscreen into zone" as we currently can get.

example

image

With border

image

Borderless mode

image

That makes me realize, it would be awesome if it would auto-borderless when snapped, and un-borderless when you move it !

Here is AltSnap

https://github.com/RamonUnch/AltSnap

I recomment you enable HotClick mode on Mouse 4 or Mouse 5 depending how your mouse is configured

@QuietNoise
Copy link

DisplayFusion have this feature for years and I was so used to it. It's just an overkill to install a whole new software package just for that feature.

This was referenced Dec 12, 2024
@ScottFerg56
Copy link

I just upgraded my computer system from two 32" monitors to the huge Samsung 57" Odyssey Neo G9 Monitor, so I thought I'd plead my desired use case for this new feature, as I see it, in fairly concrete terms. I used to do work on one monitor, using Visual Studio or playing a game for example, while watching a full screen video, e.g. YouTube, on the other. Sizing the video window to half the new monitor is not nearly as satisfying a visual experience as YouTube running full screen on the old second monitor was. So... having a program, like YouTube in a browser window, somehow perceive its "full screen" as a zone on the single monitor would be useful. Full screen on this new huge monitor is otherwise essentially useless to the regular windows app or browser and wastes a lot of screen real estate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Idea-Enhancement New feature or request on an existing product Product-FancyZones Refers to the FancyZones PowerToy Product-Window Manager Refers to the idea of a Window Manager PowerToy
Projects
None yet
Development

No branches or pull requests