Dynamic window tiling
built for Windows.
BSP tiling layouts, edge-drag resizing, smooth animations, and per-monitor customization — all hot-reloaded from a single YAML config.
Everything you need for
a tiling workflow
A full-featured window manager shipped as a lightweight VEIL addon.
BSP Tiling Layout
Automatic binary-space-partition arrangement with drag-to-reorder and per-monitor state.
StableFloating Layout
Natural freeform window positions for when you need to step outside the grid.
StableStacking Layout
Focused full-screen stack of windows — quick single-app mode with instant switching.
StableEdge-Drag Resizing
Resize any window by dragging its edge while the BSP tree stays intact and neighbors adapt.
StableSmooth Animations
Configurable duration animations on every tile operation — or disable them entirely.
StableGap Management
Per-window or shared gap mode with a single pixel value. Clean, consistent spacing.
StableMulti-Monitor Support
Independent BSP state per monitor with intelligent boundary detection and topology adaptation.
StableWindow Filtering
Exclude by process, class, or title. Automatic filtering of hidden, cloaked, and popup windows.
StableHot-Reload Config
YAML config updates are applied live — no restart required. File-watcher powered.
StableVEIL IPC Integration
Deeply integrated with the VEIL IPC layer for dynamic updates and addon communication.
StableThree layouts, one config
Switch between tiling, floating, and stacking with a single config value.
Binary Space Partitioning
Windows are recursively split across the available screen space. Each new window divides the focused tile in half, creating a perfectly balanced tree.
- Drag windows to reorder and swap positions
- Edge-drag to resize while keeping tree integrity
- Independent BSP state per monitor
- Configurable gaps and animation duration
Floating
Windows retain their natural positions and sizes. No automatic tiling occurs — ideal for workflows that need freeform window placement.
- Zero layout interference
- Windows stay where you put them
- Filters and exclusions still apply
- Toggle per monitor
Stacking
All managed windows are stacked full-screen in the same position. Focus one at a time for a distraction-free, task-switching workflow.
- All windows occupy the full work area
- Instant focus switching between apps
- Great for single-monitor deep work
- Combined with IPC for programmatic switching
One YAML file, everything live
Drop a config.yaml in the addon directory and changes are picked up instantly.
| Key | Description |
|---|---|
| manager_type | tiling · floating · stacking |
| monitor_index | Target monitors by index, or "*" for all |
| animation.enabled | Toggle smooth window transitions |
| animation.duration | Transition time in milliseconds |
| styling.gap.space | Pixel gap between windows |
| styling.gap.behavior | Shared · PerWindow |
| events.debounce_ms | Delay before retiling after window events |
| filters.min_width | Minimum window width to manage |
| filters.min_height | Minimum window height to manage |
| filters.exclude_processes | Ignore windows by process name |
| filters.exclude_classes | Ignore windows by class substring |
| filters.exclude_titles | Ignore windows by title substring |
# ~/ProjectOpen/VEIL/addons/windowmanager/config.yaml window_manager: enabled: true manager_type: tiling monitor_index: - "*" animation: enabled: true duration: 150 styling: gap: space: 10 behavior: "Shared" events: debounce_ms: 500 filters: min_width: 1 min_height: 1 exclude_processes: [] exclude_classes: - "Shell_TrayWnd" - "Progman"
Up and running in minutes
Install via VEIL's addon system or build from source.
Install VEIL
Make sure the VEIL platform is installed and running on your Windows machine.
Add the Addon
Copy the windowmanager addon folder into your VEIL addons directory.
Configure
Edit config.yaml to set your preferred layout, gaps, and filters.
Launch
VEIL will start VWM automatically. Changes to the config are picked up live.
# Clone and build git clone https://github.com/TheIco2/VWM.git cd VWM cargo build --release # Output binary target/release/veil-windowmanager.exe