microsoft / microsoft/PowerToys

Virtual Monitors for 21:9 and 32:9 "Multi-monitor" Setups

Open
#47,571 0 comments 2 reactions 0 assignees View on GitHub
Needs-Triage Product-FancyZones
Dominant language
C
Stars
139k
Forks
8.6k
PR merge metrics
PR metrics pending

Description

### Description of the new feature / enhancement

Similar the FancyZones, the user would layout a grid of zones for a specific physical monitor and when applied that monitor will be split into "virtual monitors" replicating multi-monitor setups as close as reasonably possible. This would mean that if you split a 21:9 monitor into three 7:9 monitors then Windows reacts accordingly. Your standard side and corner snapping works as if they are physical monitors, you get separate taskbars on each monitor if that is your desired setting, and when fullscreening applications such as a web player or video game it respects the boundaries of the virtual monitor rather than filling the entire display.

### Scenario when this would be used?

This would be used to enable flexible multi-monitor setups based on current use case as well as address some annoying issues that FancyZones can't currently solve.

Some examples for my own use case (I use a 32:9 monitor) would be while working I would want to be able to have:
- Three evenly split monitors with appropriate snapping. This is solved with FancyZones
- The ability to screenshare only a specific virtual-monitor. This only works with video conferencing software that lets you select the area that want to share. Otherwise you have to share a window and change everytime you need to swap application. This could be solved is the OS reports and then shares only the virtual-monitors when in use (in theory video conferencing apps wouldn't have to make any changes to use this)
- Fullscreen video players and similar apps (like VSCode zen mode) to a specific area of the monitor
- Have a separate taskbar for each monitor. I am one of the people who uses the setting to only show the icon on the taskbar of the monitor it is on and rely on this to quickly identify where windows currently are.

For my personal setup I would want a different layout and slightly different use case:
- A central 16:9 monitor, with either 1 tall or two 16:9 monitors on either side depending on what I am currently doing.
- Also be able to confine apps like web video players and VSCode zen mode to virtual monitors
- The ability to intercept "exclusive fullscreen" requests from games and similar applications to confine them within the virtual-monitor. This is an important distinction from the point above as depending on the age of the game or application you're using the only fullscreen option might be exclusive fullscreen, which would normally bypass the desktop entirely and give the app full control over the monitor. This can sometimes be solved with a 3rd-party app called Borderless Gaming which attempts to wrap these apps into borderless windowed containers but it doesn't always work. Leaving those applications with no other way to constrain the size without using a standard bordered window.
- Also be able to screenshare a specific virtual-monitor rather than the whole display or a specific window

### Supporting information

The closest solution I know would be the `xrandr` utility for X11 based desktops in the Linux ecosystem. Sadly as most people have started to migrate towards Wayland this feature is being overlooked as Wayland doesn't currently have a protocol to support it.

Contributor guide

Open the contributing guide

Research direction

The issue does not identify files, tests, or entry points. Begin by surveying how PowerToys integrates with Windows display, window-management, taskbar, screen-capture, and fullscreen behavior; done would require a defined design and working support for the requested virtual-monitor scenarios.

Written by the indexing model from the issue text.

Assessment

Domain
desktop, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.