Shellwright runs silently in the background and tiles all your windows as they open — no setup, no dragging. Pure keyboard control, smooth animations, and a clean TOML config.
Free · No UI · No data collected · Written in Rust
No bloat, no config wizard, no Electron. A fast Rust binary that does one thing exceptionally well.
Every window that opens gets tiled immediately. No dragging, no snapping. Shellwright manages layout so you never touch the mouse.
Fibonacci dwindle, BSP, Monocle, Columns, CenterMain, and Float. Switch any workspace to any layout on the fly with a single keystroke.
Each monitor gets its own independent workspace stack. Move windows across monitors and switch workspaces per-display without any extra config.
Focus, move, float, fullscreen, switch workspaces — everything is a keybinding. Every action is remappable in TOML with any modifier combination.
Windows ease into place with a configurable easing animation. Duration and frame count are tunable — go snappy at 30 ms or buttery at 150 ms.
One human-readable config file for gaps, borders, animations, workspaces, float rules, and keybindings. Reload without restarting with Alt+Shift+R.
Every workspace can run a different layout. Switch mid-session with a keystroke — no restart, no drag.
Dwindle spiral — the first window takes half the screen, each new window halves the remaining space alternating H/V.
Binary space partition — the screen is recursively halved, giving each window its own clean region.
All windows stacked full-screen. Switch focus to raise the top window — great for reading or presentations.
Fixed number of equal-width vertical columns. Set the count with set_layout:columns:N.
Ultrawide three-column layout — 50% centre, 25% left, 25% right. Ideal for games or apps that need to stay centred.
All windows unmanaged — move and resize freely. Toggle individual windows in any other layout with Alt+Shift+Space.
Everything lives in %APPDATA%\shellwright\config.toml. A default is created on first run. Press Alt+Shift+R to apply changes without restarting.
# Appearance gap = 8 border_width = 2 border_active = "#38bdf8" border_inactive = "#1e2235" border_radius = 8 default_layout = "fibonacci" # Animations [animations] enabled = true duration_ms = 80 frames = 6 # Float a window by exe name [[float_rules]] exe = "steam.exe" # Custom keybinding [[keybindings]] modifiers = ["alt", "shift"] key = "f" action = "toggle_fullscreen"
Sensible defaults out of the box. Every binding is overridable in TOML — any modifier, any key.
| Alt + H | Focus previous window |
| Alt + L | Focus next window |
| Alt + Shift + H | Move window left |
| Alt + Shift + L | Move window right |
| Alt + Shift + Q | Close focused window |
| Alt + F | Toggle fullscreen |
| Alt + Shift + Space | Toggle float / tiled |
| Alt + 1 … 9 | Switch to workspace 1–9 |
| Alt + Shift + 1 … 9 | Move window to workspace |
| Alt + G | Fibonacci layout |
| Alt + T | BSP layout |
| Alt + M | Monocle layout |
| Alt + C | Columns (2) layout |
| Alt + U | CenterMain layout |
| Alt + Shift + R | Reload config |
| Alt + Shift + E | Quit Shellwright |
Windows is fully supported today. macOS and Linux backends are actively in progress.
In progress
Coming soonIn progress (Wayland / Smithay)
Coming soonShellwright has zero runtime dependencies beyond the Windows APIs. You need only the stable Rust toolchain.
# Clone and build git clone https://github.com/code-lodge/shellwright cd shellwright cargo build --release # Run .\target\release\window-manager.exe # Register at startup (optional) .\target\release\window-manager.exe autostart-register