A modular Wayland compositor with Dwindle tiling layout and TOML-based runtime configuration.
- C 65%
- C++ 33.6%
- CMake 1.4%
| extra | ||
| include | ||
| LICENSES | ||
| protocols | ||
| src | ||
| .gitignore | ||
| CMakeLists.txt | ||
| config.toml | ||
| LICENSE | ||
| README.md | ||
Zurin
A modular Wayland compositor with Dwindle tiling layout and TOML-based runtime configuration.
Features
- Dwindle Layout: Smart binary tree tiling with cursor-aware window placement
- Runtime Configuration: TOML-based configuration with hot-reload support
- Modular Architecture: Focus on scalability and customization
Dependencies
Required
| Package | Version | Description |
|---|---|---|
| wlroots | 0.19+ | Wayland compositor library |
| wayland | 1.21+ | Wayland protocol libraries |
| wayland-protocols | 1.32+ | Wayland protocol definitions |
| xkbcommon | 1.5+ | Keyboard handling library |
| libinput | 1.21+ | Input device handling |
| pixman | 0.42+ | Pixel manipulation library |
| libdrm | 2.4+ | Direct Rendering Manager |
| libpipewire | 0.3+ | Audio/Video processing graph |
| libsystemd | - | System and Service Manager library |
Optional
| Package | Description |
|---|---|
| xcb, xcb-icccm | Required for XWayland support |
Runtime
These tools are configured by default but can be changed in config.toml.
| Tool | Description |
|---|---|
| kitty | Default terminal emulator |
Build Tools
- CMake 3.16+
- pkg-config
- GCC or Clang with C11 support
- wayland-scanner
Building
# Create build directory
mkdir build && cd build
# Configure (RELEASE)
cmake ..
# Configure (DEBUG)
cmake -DDEBUG_MODE=ON ..
# Configure (with XWayland support)
cmake -DENABLE_XWAYLAND=ON ..
# Build
make -j$(nproc)
# Install
sudo make install
Running
zurin
Configuration
Edit config.toml in the project directory or ~/.config/zurin/config.toml.
Default Keybinds
| Keybind | Action |
|---|---|
| Super+Q | Open terminal (kitty) |
| Super+D | Open launcher (fuzzel) |
| Super+Tab | Close window |
| Super+(1-0) | Switch workspace |
| Super+Shift+(1-0) | Move to workspace |
| Super+Shift+M | Quit |
| Super+Mouse Left | Move window |
| Super+Mouse Right | Resize window |
License
See LICENSES/ directory.
Contributing
Contributions are welcome! Please submit a pull request and open an issue for bug reports and feature requests.