Skip to content

NicholasCardona/SharpWm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SharpWM

A tiling window manager for Windows, written in C#. Inspired by GlazeWM.

CI .NET Platform License

⚠️ Work in progress. Core architecture is in place, first features are being implemented.

Features (planned v1)

  • Tiling layout (horizontal / vertical split)
  • Global keybinding system
  • Multi-monitor support
  • Workspace management
  • YAML configuration

Architecture

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.

Building

Requires .NET 10 SDK and Windows.

git clone https://github.com/NicholasCardona/SharpWM.git
cd SharpWM
dotnet build
dotnet test

Contributing

Contributions are welcome. See CONTRIBUTING.md for guidelines.

License

GPL-3.0

About

WM inspired from GlazeWM in .NET

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages