docs: update README with 'new' features

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ic45f39e98b73a0ec2e2ec8cbdcc2f5d66a6a6964
This commit is contained in:
raf 2026-01-17 19:09:18 +03:00
commit 55012e16f9
Signed by: NotAShelf
GPG key ID: 29D95B64378DB4BF

View file

@ -1,24 +1,39 @@
# Chroma # Chroma
A simple, lightweight and efficientt wallpaper daeemon for Wayland compositors Super-fast, lightweight and efficient wallpaper daemon for Wayland compositors
with multi-monitor & automatic hotplugging support. Born from my woes with with multi-monitor & hotplugging support. Born from my woes with Hyprpaper,
Hyprpaper, swaybg and most ironically SWWW, which turned out to be NOT a swaybg and most ironically _SWWW_ (now called AWWW for some awful reason), which
solution to my Wayland wallpaper woes. turned out to be NOT a solution to my Wayland wallpaper woes. Smaller, faster,
cleaner and somehow still more feature-rich...
## Features ## Features
I did not expect to be writing something too feature-rich, but I still ended up Chroma combines simplicity with powerful performance optimizations and
with something relatively convoluted. Chroma (mostly) reliably supports: comprehensive monitor management. Here's what makes Chroma stand out:
- **Multi-monitors**: Automatically detects and manages wallpapers for all ### Core Functionality
connected displays
- **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 - **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, - **Multiple image formats**: Supports JPEG, PNG, BMP, TGA, PSD, GIF, HDR, PIC,
PPM, PGM PPM, PGM
- **EGL/OpenGL rendering**: Hardware-accelerated wallpaper rendering - **EGL/OpenGL rendering**: Hardware-accelerated wallpaper rendering
- **Configuration file support**: Easy setup with INI-style config files - **Configuration file support**: Easy setup with INI-style config files
- **Signal handling**: Graceful shutdown and configuration reload (SIGHUP) - **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 ## Usage
@ -198,7 +213,7 @@ make analyze # requires cppcheck
- C11 standard - C11 standard
- 2-space indentation - 2-space indentation
- No tabs - No tabs (except for the Makefile, obviously)
- Function names: `chroma_function_name` - Function names: `chroma_function_name`
- Constants: `CHROMA_CONSTANT_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. 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 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/). is provided [here](https://www.mozilla.org/en-US/MPL/2.0/).
<!--markdownlint-enable MD059 -->