keyboard-driven window manager for windows, inspired by rectangle for macos.
snap, resize, and move windows using hotkeys. supports halves, thirds, quarters, sixths, eighths, ninths, multi-monitor, drag-snap, gap sizing, and more.
- window snapping — halves, thirds, quarters, sixths, eighths, ninths
- size cycling — press the same shortcut to cycle through sizes
- drag-snap — drag windows to screen edges to snap them
- multi-monitor — move windows between displays with shortcuts
- configurable gaps — adjustable gaps between snapped windows
- system tray — runs in the background, launch on login
- restore history — undo window position changes
- multi-window — tile all, cascade all, tile active app windows
- preferences ui — customize hotkeys, gaps, and behavior
| shortcut | action |
|---|---|
ctrl+alt+left |
left half |
ctrl+alt+right |
right half |
ctrl+alt+up |
top half |
ctrl+alt+down |
bottom half |
ctrl+alt+enter |
maximize |
ctrl+alt+c |
center |
ctrl+alt+backspace |
restore previous position |
ctrl+alt+d |
first third |
ctrl+alt+f |
center third |
ctrl+alt+g |
last third |
ctrl+alt+n |
next display |
ctrl+alt+p |
previous display |
all shortcuts are customizable through the preferences window.
- halves — left, right, top, bottom, center
- quarters — top-left, top-right, bottom-left, bottom-right
- thirds — first, center, last, first two-thirds, last two-thirds
- vertical thirds — top, middle, bottom
- fourths — first through last, combinations
- sixths — 2x3 grid positions
- eighths — 2x4 grid positions
- ninths — 3x3 grid positions
- c# / .net 8.0
- wpf (ui + system tray)
- win32 api (window manipulation via p/invoke)
- windows 10+
- .net 8.0 sdk
dotnet build
dotnet rundotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=trueoutput: bin/Release/net8.0-windows/win-x64/publish/RectangleWindows.exe
App.xaml / App.xaml.cs # application entry point
MainWindow.xaml # main window (hidden, hosts hotkey listener)
PreferencesWindow.xaml # settings ui
ShortcutRecorderDialog.xaml # custom hotkey input dialog
WindowManager.cs # core win32 window manipulation
WindowCalculation.cs # position/size math for all layouts
WindowAction.cs # enum of all 90+ window actions
HotkeyManager.cs # global hotkey registration
DragSnapManager.cs # drag-to-edge snapping
MultiWindowManager.cs # tile/cascade multiple windows
WindowHistory.cs # undo/restore positions
SystemTrayIcon.cs # notification area icon + menu
AppSettings.cs # preferences persistence
HotkeyBinding.cs # shortcut key binding model
FootprintWindow.xaml # snap preview overlay
LaunchOnLogin.cs # startup registry entry
TodoManager.cs # todo mode layout
MIT