ziged wlroots tiling Wayland Compositor
always seen those eye candy compositors and they always uses C/++ and im decided try how far can i push with zig. repo has GithubMirror but mainly accepting all pull requests on CodebergRepo all other things issues and etc on both.
currently support:
- Basic Master Stack tiling layout
- Smooth spring-based animations for window movements
- Window rounding with SceneFX (corner radius fully configurable)
- Backdrop blur effects with customizable parameters
- Custom FX renderer with OpenGL shader support
- Basic LayerShell, WlrScreenCopy, WlrOutput protocols
- KDL-based configuration with hot-reload support
TO-DO:
- Config parser instead .zig file
- Migration to wlroots 0.19 for custom render
- Window Rounding (SceneFX integration with buffer-level corner radius)
- Custom renderer for FX effects via Shaders (infrastructure ready)
- Blur effect (backdrop blur on windows with scene-level parameters)
- Fix Some bugs (appear to be permanent by develop progress)
- Advanced rounded corners with clipping regions for borders
- More tiling layouts (floating, monocle, etc.)
Current project status:
- zwm are very young expect many issues and bugs
- if you willing contribute submit pull request explain what enchanced
Recomended Commit tags for PR(pull request):
- New feature "FT|FEATURE: short description of your new feature"
- BugFix "BUG|BUGFIX: short description of your new Bugfix"
- Edited README "EDIT: readme updates"
requirements:
- zig 0.14.1+ you probably would get it from https://ziglang.org/download/
- pkg-config
- make
- wlroots 0.19
build:
git clone https://codeberg.org/blx/zwm
cd zwm
make build
sudo make install # optional if you want install zwm to path
Configuration uses KDL (KDL Document Language) format and is located at ~/.config/zwm/zwm.kdl.
Configuration currently parsed with my little yet simple KDL parser specifically
On first run, ZWM will automatically create the config directory and generate a default config file with sensible defaults.
Hot Reload: Press Mod+Shift+r to reload the config on the fly without restarting the compositor and also has instant reload on change if no changes seen make sure no syntax error in the config.