A tiling window manager for Windows, written in C#. Inspired by GlazeWM.
⚠️ Work in progress. Core architecture is in place, first features are being implemented.
- Tiling layout (horizontal / vertical split)
- Global keybinding system
- Multi-monitor support
- Workspace management
- YAML configuration
SharpWM/
├── src/
│ ├── SharpWM.Common/ # Shared types: container tree, WmState, Rect
│ ├── SharpWM.Platform/ # Windows API interop (monitors, windows, hotkeys)
│ ├── SharpWM.Config/ # YAML config parsing
│ ├── SharpWM.Core/ # Command dispatcher, event loop
│ └── SharpWM/ # Entry point
└── tests/
└── SharpWM.Tests/ # Unit tests (xUnit)
The WM state is represented as a container tree:
Root → Monitor → Workspace → SplitContainer → Window
All state mutations go through WmState in SharpWM.Common.
Requires .NET 10 SDK and Windows.
git clone https://github.com/NicholasCardona/SharpWM.git
cd SharpWM
dotnet build
dotnet testContributions are welcome. See CONTRIBUTING.md for guidelines.