microsoft / microsoft/PowerToys
Extended virtual desktop with edge-triggered viewport switching (similar to Enlightenment / E17)
- Dominant language
- C
- Stars
- 139k
- Forks
- 8.6k
- PR merge metrics
- PR metrics pending
Description
### Description of the new feature / enhancement
It would be extremely useful to add an **extended virtual desktop** mode to PowerToys, inspired by the behavior available in **Enlightenment (E17)** on Linux.
Instead of having only discrete virtual desktops, the user would have a **single logical desktop larger than the physical screen** (for example 2x1, 3x1, 2x2, 4x2, etc.). The visible screen would act as a **viewport** over that larger desktop.
When the user **pushes the mouse cursor against a screen edge**, PowerToys would switch or slide the viewport toward the adjacent portion of the extended desktop in that direction.
### Scenario when this would be used?
Current desktop switching models are usually based on:
- fully separate desktops, or
- manual switching with keyboard shortcuts / gestures.
What is missing is a more spatial workflow where the desktop behaves like a larger canvas and navigation happens naturally by moving the cursor to an edge.
This is especially useful for:
- multi-tasking with logically grouped windows,
- keeping related workspaces adjacent in space,
- fast pointer-driven navigation without keyboard shortcuts,
- recreating a workflow long appreciated by users of Enlightenment / E17.
### Supporting information
#### 1. Extended virtual desktop
Allow creation of a desktop larger than one screen, for example:
- horizontal only: `N x 1`
- vertical only: `1 x N`
- grid: `N x M`
Each "cell" would correspond to one screen-sized area of the larger desktop.
#### 2. Edge-triggered viewport movement
When the mouse cursor is pushed against one edge of the screen:
- left edge -> move viewport to the desktop area on the left
- right edge -> move viewport to the desktop area on the right
- top edge -> move viewport upward
- bottom edge -> move viewport downward
This should feel like moving around inside one larger desktop, not like switching to an unrelated desktop.
#### 3. Configurable cursor edge resistance
This behavior should be fully configurable, including:
- **edge sensitivity size in pixels**
- configurable activation zone near each edge
- must allow very small values, including **1 px (minimum)**
- **dwell / wait time before switching**
- configurable delay before the viewport moves
- must allow **0 seconds (minimum)** for immediate switching
This is important because users have very different preferences:
- some want deliberate activation,
- others want instant edge switching.
#### 4. Optional animation
The viewport transition should support:
- **animated sliding/gliding** between desktop areas, or
- **instant switching** with no animation
Animation should therefore be optional, ideally with configurable speed/duration.
#### 5. Optional wrap-around
It could also be useful to support optional wrap behavior:
- pushing right on the last column returns to the first column
- pushing down on the last row returns to the first row
This should be optional, not mandatory.
---
### Suggested settings
Example settings that would make this feature practical:
- Desktop size:
- width in screens: `N`
- height in screens: `M`
- Edge activation:
- enable/disable per edge
- sensitivity zone in pixels
- delay before activation
- Transition behavior:
- animation on/off
- animation duration / speed
- Navigation behavior:
- wrap-around on/off
- block switching while dragging windows on/off
- block switching in fullscreen apps on/off
---
### Important minimum values
Please allow the following minimum values explicitly:
- **Edge sensitivity:** `1 px`
- **Activation delay:** `0 seconds`
These minimums are important for users who want behavior as reactive as possible.
---
### Additional considerations
A few details would make the feature significantly better:
- Prevent accidental switching while resizing or dragging a window, unless explicitly enabled
- Define behavior for maximized windows when moving between viewport areas
- Ensure compatibility with multi-monitor setups
- Allow keyboard shortcuts to move the viewport as an alternative to edge pushing
- Optionally show a small overview/minimap of the extended desktop layout
---
### Why this would fit PowerToys well
PowerToys already targets advanced desktop productivity and workflow customization.
An extended virtual desktop with edge-triggered navigation would fit very well alongside other window-management and workspace-oriented features.
This would provide a workflow that is:
- spatial,
- fast,
- intuitive,
- highly configurable,
- and currently missing from modern Windows tooling.
Contributor guide
Research direction
The issue names no files, tests, or entry points. Start by identifying the existing PowerToys desktop and window-management components and reviewing how Windows virtual desktops are handled; done requires a scoped design covering the desktop grid, edge activation, transitions, wrapping, and multi-monitor and drag/fullscreen behavior.
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
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100