notashelf /
55012e16f94f4b1a9d421d57ec38ede6687ef192
chroma
publicLightweight wallpaper daemon for Wayland
clone
ssh://git@git.notashelf.dev:33/notashelf/chroma.gitCommit 55012e16f94f
tarballunverified1 files changed+27-10
@@ -1,24 +1,39 @@ # Chroma -A simple, lightweight and efficientt wallpaper daeemon for Wayland compositors-with multi-monitor & automatic hotplugging support. Born from my woes with-Hyprpaper, swaybg and most ironically SWWW, which turned out to be NOT a-solution to my Wayland wallpaper woes.+Super-fast, lightweight and efficient wallpaper daemon for Wayland compositors+with multi-monitor & hotplugging support. Born from my woes with Hyprpaper,+swaybg and most ironically _SWWW_ (now called AWWW for some awful reason), which+turned out to be NOT a solution to my Wayland wallpaper woes. Smaller, faster,+cleaner and somehow still more feature-rich... ## Features -I did not expect to be writing something too feature-rich, but I still ended up-with something relatively convoluted. Chroma (mostly) reliably supports:+Chroma combines simplicity with powerful performance optimizations and+comprehensive monitor management. Here's what makes Chroma stand out: -- **Multi-monitors**: Automatically detects and manages wallpapers for all- connected displays+### Core Functionality++- **Memory-efficient**: Smart caching and resource management+ - **Optimized rendering**: VBO dirty flagging and reduced GPU overhead+- **Multi-monitor support**: Automatically detects and manages wallpapers for+ all connected displays+ - **Configurable scaling modes**: Fill, fit, stretch, and center options per+ monitor - **Hotplugging**: Dynamically handles monitor connection/disconnection events-- **Per-output configuration**: Set different wallpapers for each monitor+- **Per-output configuration**: Set different wallpapers and settings for each+ monitor+ - **Global and per-output settings**: Override defaults for specific monitors+ - **Performance tuning**: Adjustable downsampling limits and quality+ thresholds - **Multiple image formats**: Supports JPEG, PNG, BMP, TGA, PSD, GIF, HDR, PIC, PPM, PGM - **EGL/OpenGL rendering**: Hardware-accelerated wallpaper rendering - **Configuration file support**: Easy setup with INI-style config files - **Signal handling**: Graceful shutdown and configuration reload (SIGHUP)+- **Intelligent downsampling**: Automatically reduces large image resolution to+ save memory (up to 94% memory savings for 8K images)+- **Advanced filtering**: Nearest, linear, bilinear, and trilinear filtering+ options ## Usage @@ -198,7 +213,7 @@ make analyze # requires cppcheck - C11 standard - 2-space indentation-- No tabs+- No tabs (except for the Makefile, obviously) - Function names: `chroma_function_name` - Constants: `CHROMA_CONSTANT_NAME` @@ -209,3 +224,5 @@ make analyze # requires cppcheck This project is made available under Mozilla Public License (MPL) version 2.0. See [LICENSE](LICENSE) for more details on the exact conditions. An online copy is provided [here](https://www.mozilla.org/en-US/MPL/2.0/).++<!--markdownlint-enable MD059 -->