microsoft / microsoft/PowerToys

QuickTile: Tiling window manager (you can use mine)

Open
#45,983 2 comments 3 reactions 0 assignees View on GitHub
Idea-New PowerToy Needs-Triage Product-General
Dominant language
C
Stars
139k
Forks
8.6k
PR merge metrics
PR metrics pending

Description

### Description of the new feature / enhancement

Tiling window manager support has been requested several times. You are welcome to use mine which I use every day for development work:

Image

# QuickTile

QuickTile is a minimal native C++ tiling window manager for Windows.

It runs as a single background process and tiles normal top-level application windows on the active monitor.

## Features

- Automatic tiling on the active monitor
- Virtual desktop aware tiling and focus behavior
- Layout modes for main/stack, vertical columns, monocle, and floating
- Focus movement across tiled windows
- Window reordering within the tiled layout
- Focused-window border highlighting
- Resize-aware split adjustment when dragging tiled windows
- Floating treatment for auxiliary windows that should not be tiled
- Small status overlay for tiling and settings actions

Windows that stay floating instead of being tiled include:

- Child and owned windows
- Classic dialog windows such as the Run dialog
- Windows security prompts
- Remote Desktop windows

## Running QuickTile

After building, start the app by launching:

```powershell
.\build\Release\QuickTile.exe
```

QuickTile does not open a normal UI window. It runs in the background and installs global hotkeys.

On first run, QuickTile creates a settings file automatically at `%LOCALAPPDATA%\QuickTile\settings.yaml`.
If that file changes while QuickTile is running, the app automatically reloads it and reapplies the updated settings.
QuickTile only manages windows on the current Windows virtual desktop.

## Settings

QuickTile writes a default YAML file on first run. The current settings format is:

```yaml
# QuickTile reloads this file automatically after you save it.
version: 1
tilingEnabled: true
autoStart: true
changeNotifications: true
focusedBorderColor: "#0078D7"
gap: 0
outerGap: 0
defaultMainWidthRatio: 0.6
resizeStepRatio: 0.05
windowRules:
- action: "float"
className: "#32770"
- action: "float"
className: "Credential Dialog Xaml Host"
- action: "float"
className: "Xaml_WindowedPopupClass"
windowTitle: "Windows Security"
- action: "float"
className: "TscShellContainerClass"
- action: "float"
processName: "msiexec.exe"
- action: "float"
processName: "consent.exe"
- action: "float"
processName: "CredentialUIBroker.exe"
- action: "float"
processName: "SystemSettingsAdminFlows.exe"
- action: "float"
processName: "setup.exe"
- action: "float"
processName: "vs_installer.exe"
- action: "float"
processName: "vs_installer.windows.exe"
- action: "float"
processName: "vs_installershell.exe"
shortcuts:
toggleTiling:
- "Alt+T"
retile:
- "Alt+Shift+W"
focusLeft:
- "Alt+H"
- "Alt+Left"
focusUp:
- "Alt+K"
- "Alt+Up"
focusRight:
- "Alt+L"
- "Alt+Right"
focusDown:
- "Alt+J"
- "Alt+Down"
moveLeft:
- "Alt+Shift+H"
- "Alt+Shift+Left"
moveUp:
- "Alt+Shift+K"
- "Alt+Shift+Up"
moveRight:
- "Alt+Shift+L"
- "Alt+Shift+Right"
moveDown:
- "Alt+Shift+J"
- "Alt+Shift+Down"
resizeLeft:
- "Alt+Ctrl+H"
- "Alt+Ctrl+Left"
resizeUp:
- "Alt+Ctrl+K"
- "Alt+Ctrl+Up"
resizeRight:
- "Alt+Ctrl+L"
- "Alt+Ctrl+Right"
resizeDown:
- "Alt+Ctrl+J"
- "Alt+Ctrl+Down"
toggleFloating:
- "Alt+Shift+F"
layoutFloating:
- "Alt+Shift+1"
layoutMainStack:
- "Alt+Shift+2"
layoutVerticalColumns:
- "Alt+Shift+3"
layoutMonocle:
- "Alt+Shift+4"
showHelp:
- "Alt+Shift+F1"
inspectWindow:
- "Alt+Shift+I"
exit:
- "Alt+Shift+Q"
```

Field meanings:

- `tilingEnabled`: turns tiling on or off at startup.
- `autoStart`: starts QuickTile automatically when you sign in.
- `changeNotifications`: shows or hides the status overlay for settings and toggle actions.
- `focusedBorderColor`: border color applied to the currently focused managed window.
- `gap`: inner gap in pixels between tiled windows.
- `outerGap`: outer gap in pixels between tiled windows and the monitor work area edges.
- `defaultMainWidthRatio`: width of the main pane as a fraction of the monitor work area.
- `resizeStepRatio`: amount used by the resize hotkeys when adjusting the main split or stack weights.
- `windowRules`: ordered exact-match rules with the `float` action.
- `shortcuts`: configurable hotkey lists for each QuickTile action. Each value is a list of strings like `Alt+T` or `Alt+Ctrl+Left`.

Window rules are exact matches and run in order. `float` keeps matching windows out of tiling.
The Toggle Floating action persists an exact process-level `float` rule in `windowRules`.
Shortcut strings support `Alt`, `Ctrl`, `Shift`, `Win`, letters, digits, arrow keys, `Tab`, `Enter`, `Escape`, and function keys.

To stop it:

- Press `Alt+Shift+Q`
- Or end the `QuickTile.exe` process from Task Manager or PowerShell

## Keyboard Shortcuts

### Tiling

- `Alt+T`: toggle tiling on or off
- `Alt+Shift+W`: retile the current monitor
- `Alt+Shift+F`: toggle the focused window's process between floating and tiled

### Layout switching

- `Alt+Shift+1`: set the current monitor on the current virtual desktop to floating
- `Alt+Shift+2`: set the current monitor on the current virtual desktop to main/stack
- `Alt+Shift+3`: set the current monitor on the current virtual desktop to vertical columns
- `Alt+Shift+4`: set the current monitor on the current virtual desktop to monocle

### Help

- `Alt+Shift+F1`: show a categorized shortcut help overlay

### Inspection

- `Alt+Shift+I`: inspect the focused window and show QuickTile classification details

### Focus movement

- `Alt+H`, `Alt+Left`: move focus left
- `Alt+K`, `Alt+Up`: move focus up
- `Alt+L`, `Alt+Right`: move focus right
- `Alt+J`, `Alt+Down`: move focus down

Focus movement is spatial in the main/stack layout:

- Left moves from the stack back to the main pane
- Right moves from the main pane into the closest stacked window
- Up and down move within the vertical stack
- The same directional navigation can cross monitor boundaries to the nearest tiled window in that direction

In vertical columns, left and right move between adjacent columns. In monocle, directional focus cycles through the monitor's windows.

### Window reordering

- `Alt+Shift+H`, `Alt+Shift+Left`: move the focused tiled window left
- `Alt+Shift+K`, `Alt+Shift+Up`: move the focused tiled window up
- `Alt+Shift+L`, `Alt+Shift+Right`: move the focused tiled window right
- `Alt+Shift+J`, `Alt+Shift+Down`: move the focused tiled window down
- `Win+Left`: move the focused tiled window left
- `Win+Right`: move the focused tiled window right

Window reordering is spatial like focus movement and can also cross monitor boundaries.

### Window resizing

- `Alt+Ctrl+H`, `Alt+Ctrl+Left`: move the focused tile boundary left and retile
- `Alt+Ctrl+K`, `Alt+Ctrl+Up`: grow the focused stacked tile upward when there is a tile above
- `Alt+Ctrl+L`, `Alt+Ctrl+Right`: move the focused tile boundary right and retile
- `Alt+Ctrl+J`, `Alt+Ctrl+Down`: grow the focused stacked tile downward when there is a tile below

Horizontal resize adjusts the main/stack split on the focused monitor. Vertical resize adjusts stack heights for the focused stack tile.

### Exit

- `Alt+Shift+Q`: exit QuickTile

These bindings are the default QuickTile shortcuts.

## Tray Menu

QuickTile adds a notification area icon with commands for:

- Enable or disable tiling
- Enable or disable tiling on the current monitor
- Retile all monitors
- Settings submenu with Open Settings... and Reset Settings...
- Show Shortcuts...
- Open Log...
- Toggle start on login
- Exit QuickTile

### Scenario when this would be used?

A tiling window manager on Windows 11 is useful when you’re juggling multiple apps—editor, terminals, logs, and docs—and want them arranged predictably without constant resizing. It lets you switch tasks and layouts instantly with the keyboard, reducing distraction and cognitive overhead. This is especially valuable for deep engineering work on large displays.

### Supporting information

_No response_

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the QuickTile feature description, including its window-management behavior, layouts, settings, shortcuts, and tray menu. The issue names no PowerToys files, tests, or entry points; done would require an agreed integration scope and acceptance criteria for adding this Windows tiling utility.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.