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
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 -->