FancyZones utility
FancyZones is a window manager utility for arranging and snapping windows into efficient layouts to improve the speed of your workflow and restore layouts quickly. FancyZones allows you to define a set of zone locations to be used as targets for windows on your desktop. When you drag a window into a zone, or enter the associated keyboard shortcut, the window is resized and repositioned to fill that zone.
Snapping to a single zone with the mouse
First, drag the window. By default, you will also need to press and hold the Shift key (This setting can be disabled via Settings). You'll see the zones appear. As you move your mouse, hovering over a zone will highlight that zone.
You can also trigger zone selection mode by clicking non-primary mouse button if the "Use non-primary mouse button to toggle zone activation" setting enabled.
If both "Hold Shift key to activate zones while dragging" and "Use non-primary mouse button to toggle zone activation" are disabled, zones will appear right after you start dragging the window.
Snapping to a single zone with keyboard
You can use Win+[arrows] to snap window to a zone. Next zone to snap can be chosen either by its index or by relative position. However, you must first set Override Windows Snap to enabled in the FancyZones settings.
Snapping to multiple zones
A window can be snapped to more than one zone in the following ways.
Snapping to two zones by edge hovering
If two zones are adjacent, a window can be snapped to the sum of their area (rounded to the minimum rectangle that contains both). When the mouse cursor is near the common edge of two zones, both zones are activated simultaneously, allowing you to drop the window into both zones.
Snapping to multiple zones with the mouse + keyboard
You can drag the window until one zone is activated, then press and hold the Control key while dragging the window to select multiple zones.
Snapping to multiple zones with only the keyboard
You can use Win+Ctrl+Alt+[arrows] to expand the window to multiple zones. However, you must first set Override Windows Snap to enabled in the FancyZones settings and select Move windows based on: Relative position.
Window switching
When two or more windows are snapped in the same zone, you can cycle between the snapped windows in that zone by using the shortcut Win+PgUp/PgDn.
Shortcut keys
Shortcut | Action |
---|---|
⊞ Win+Shift+` | Launches the editor (this shortcut can be changed in the Settings window) |
⊞ Win+left/right | Move focused window between zones (only if Override Windows Snap hotkeys setting is turned on and Zone index is chosen) in that case only the ⊞ Win+← and ⊞ Win+→ are overridden, while the ⊞ Win+↑ and ⊞ Win+↓ keep working as usual) |
⊞ Win+left/right/up/down | Move focused window between zones (only if Override Windows Snap hotkeys setting is turned on and Relative position is chosen) in that case all the ⊞ Win+←, ⊞ Win+→, ⊞ Win+↑ and ⊞ Win+↓ are overridden) |
⊞ Win+PgUp/PgDn | Cycle between snapped to the same zone windows |
⊞ Win+Ctrl+Alt+[number] | Quickly apply custom layout (you need to assign number to the custom layout in the editor) |
FancyZones doesn't override the Windows ⊞ Win+Shift+arrow to quickly move a window to an adjacent monitor.
Snapping apps with elevated permission
If you have applications that are elevated (such as Windows Terminal or Task Manager) and want them snapped with FancyZones, run PowerToys in administrator mode. Read PowerToys and running as administrator for more information.
Getting started with the editor
FancyZones includes an editor to give you more control over your window layouts that can be accessed in the PowerToys Settings dashboard.
Launch zones editor
Launch the zones editor using the button in the PowerToys Settings menu or by pressing Win+Shift+` ("back-tick" or "accent grave"; note that this shortcut can be changed in the Settings dialog).
Note
Previous to PowerToys v0.39, this shortcut was Win+` without Shift. This was updated so that it does not conflict with Windows Terminal Quake mode shortcut.
Choose your layout (Layout Editor)
When first launched, the zones editor presents a list of layouts that can be adjusted by how many windows are on the monitor. Selecting a layout shows a preview of that layout on the monitor. The selected layout is applied automatically. Double-clicking a layout will apply it and automatically close the editor.
If multiple displays are in use, the editor will detect the available monitors and display them for you to choose between. The chosen monitor will then be the target of the selected layout.
Space around zones
The Show space around zones setting enables you to determine what sort of margin will surround each FancyZone window. The Space around zones field enables you to set a custom value for the width of the margin. With the Zones Editor open, change the Show space around zones after changing the values to see the new value applied.
The Distance to highlight adjacent zones enables you to set a custom value for the amount of space between zones until they snap together, or before both are highlighted enabling them to merge together.
The Default layout for horizontal monitor orientation and Default layout for vertical monitor orientation flags allow you to choose which layout will be set as a default when monitor configuration is changed in the system (e.g. new monitor was added).
Creating a custom layout
The zones editor supports creating custom layouts. Select the + Create new layout button at the bottom-right.
There are two ways to create custom zone layouts: Grid layout and Canvas layout.
The Grid model starts with a three column grid and allows zones to be created by splitting and merging zones, resizing the gutter between zones as desired. This is a relative layout and will resize with different screen sizes. You can edit the layout using mouse or using keyboard.
Mouse
- To divide a zone: click your mouse. To rotate the divider: hold down the Shift key.
- To move a divider: click on the thumb and drag or select the thumb by focusing the layout.
- To merge/delete zones: select a zone and hold the left mouse button and drag the mouse until multiple zones are selected, release the button and a popup menu will show up. Click "Merge" and they will become one big zone. This is how a zone would be deleted, by merging it into another zone.
Keyboard
- First, focus the layout by pressing Control+Tab. Now you can edit it. All zones and resizers can be focused by pressing Tab button.
- To divide a zone: focus the zone you want to divide and press S or Shift+S to divide it.
- To move a divider: focus the divider and press [arrows] to move it.
- To merge/delete zones: focus the divider between zones and press Delete. All zones adjascent to deleted divider will be merged into one zone.
The Canvas model starts with one zone and supports adding zones that can be dragged and resized similar to windows.
Canvas layout also has keyboard support for zone editing. Use the arrow keys (up, down, left, right) to move a zone by 10 pixels, or Ctrl+arrow to move a zone by 1 pixel. Use the Shift+arrow keys to resize a zone by 10 pixels (5 per edge), or Ctrl+Shift+arrow to resize a zone by 2 pixels (1 per edge). To switch between the editor and dialog, press the Ctrl+Tab keys.
Quickly changing between custom layouts
A custom layout can be configured to have a user-defined hotkey to quickly apply it to the desired desktop. The hotkey can be set by opening the custom layout's edit menu. Once set, the custom layout can be applied by pressing the Win+Ctrl+Alt+[number] binding. The layout can also be applied by pressing the hotkey when dragging a window.
In the demo below, we start with a default template applied to the screen and two custom layouts that we assign hotkeys for. We then use the Win+Ctrl+Alt+[number] binding to apply the first custom layout and snap a window to it. Finally, we apply the second custom layout while dragging a window and snap the window to it.
Tip
The settings for your custom zone layouts are saved in the file %LocalAppData%\Microsoft\PowerToys\FancyZones\custom-layouts.json
. This file can be manually changed to tweak zones, and exported to share layouts across devices. Other json files in the same directory can be modified to alter settings for monitors, layout hotkeys, etc. Be warned that editing these files is not recommended as it may cause other issues with FancyZones functionality.
Settings
Setting | Description |
---|---|
Configure the zone editor hotkey | To change the default hotkey, click on the textbox and then press the desired key combination on your keyboard. |
Launch editor on the display [...] | Select where the Editor will show. |
Hold Shift key to activate zones while dragging | Toggles between auto-snap mode with the Shift key (disabling snapping during a drag) and manual snap mode where pressing the Shift key during a drag enables snapping. |
Use a non-primary mouse button to toggle zone activation | Clicking a non-primary mouse button toggles the zones activation |
Show zones on all monitors while dragging a window | By default, FancyZones shows only the zones available on the current monitor. (This feature may have a performance impact when checked) |
Allow zones to span across monitors (all monitors must have the same DPI scaling) | Allows to treat all connected monitors as one large screen. To work correctly, it requires all monitors to have the same DPI scaling factor. (There might be unexpected effects when using monitors in different orientations) |
When multiple zones overlap [...] | Choose how to deal with overlapping zones. |
Zone appearance [...] | Select colors for the layouts. You can choose system or custom colors |
Show zone number | Should the number of the zone be visible when layout is shown |
Opacity (%) | The percentage of opacity of active and inactive zones. (default: 50%) |
Highlight color | The color of a zone when it is the active drop target during the dragging of a window. |
Inactive color | The color of zones when they are not an active drop during the dragging of a window. |
Border color | The color of the border of active and inactive zones. |
Number color | The color of the number of the zone |
Keep windows in their zones when the screen resolution changes | FancyZones will resize and reposition windows into the zones they were previously in after a screen resolution change. |
During zone layout changes, windows assigned to a zone will match new size/position | FancyZones will resize and position windows into the new zone layout by maintaining the previous zone number location of each window. |
Move newly created windows to the last known zone | Automatically move a newly opened window into the last zone location that application was in. |
Move newly created windows to the current active monitor [experimental] | When this option is checked, and Move newly created windows to the last known zone is unchecked or the application doesn't have a last known zone, it keeps the application on the current active monitor. |
Restore the original size of windows when unsnapping | Unsnapping a window will restore its size as before it was snapped. |
Make dragged window transparent | When the zones are activated, the window being dragged is made transparent to improve the zones visibility. |
Allow popup windows snapping | Popup windows coudn't be snapped by default. However, this could be the reason why some windows don't trigger FancyZones when dragging. This setting affects all popup windows including notifications. |
Allow child windows snapping | Child windows coudn't be snapped by default. However, this could be the reason why some windows don't trigger FancyZones when dragging. |
Disable round corners when window is snapped | Only for Windows 11. |
Switch between windows in the current zone | Allows cycling activation between windows in the same zone. |
Next window | To change the default hotkey, click on the textbox and then press the desired key combination on your keyboard. |
Previous window | To change the default hotkey, click on the textbox and then press the desired key combination on your keyboard. |
Override Windows Snap hotkeys (Win + arrow) to move between zones | When this option is checked and FancyZones is running, it overrides the Windows Snap keys: ⊞ Win+left, ⊞ Win+right, ⊞ Win+up, and ⊞ Win+down. |
Move windows based on [...] | How the next zone will be chosen. Zone index allows to use ⊞ Win+left and ⊞ Win+right to snap a window based on its index. ⊞ Win+up, ⊞ Win+down are not overridden. Relative position overwrites all ⊞ Win+left, ⊞ Win+right,⊞ Win+up, and ⊞ Win+down and chooses zone to snap relatively to the zone layout |
Move windows between zones across all monitors | Unchecked: snapping with ⊞ Win+arrow cycles the window through the zones on the current monitor. Checked: it cycles the window through all the zones on all monitors. |
Enable quick layout switch | Enables hotkeys to quickly changes layouts - see individual layout settings. |
Flash zones when switching layout | The zones will flash when a layout is selected via the shortcut. |
Exclude applications from snapping to zones | Add an application's name, or part of the name, one per line (e.g. adding Notepad will match both Notepad.exe and Notepad++.exe ; to match only Notepad.exe add the .exe extension) |
Feedback
Submit and view feedback for