rizzoo-0.6.9 is not a library.
- Material 3 Expressive
- M3 palette from any image, URL, or hex color
- Source Color Picking
- choose the preferred source color from the most optimal ones.
- Scheme Blending
- mix two Material 3 styles
- Templating & Configuration
- define templates, output paths, post hooks, and general configurations
- Winnow-based Template Engine
- minimal and simple color manipulation
- Intuitive Color Filters
hex,rgb,hsl,lighten,darken,blend,harmonize,ensure_contrast, and more...
- Cross-platform Wallpaper Wrappers
- Windows, Macos, X11(Linux), Wayland(Linux)
- Caching
- identical images never regenerate
- Live Reload
- watch for changes and renders automatically

# from an image
# from a hex color
# from a URL
# first run? generate a config file
Options:
-i, --image <PATH> image file / path as color source
-u, --image-url <URL> url of an image to use as the color source
-c, --color <HEX> hex color to use as the color source
-P, --pick <N> explicitly choose the most optimal source color 0-3
-e, --prefer <MODE> auto-pick the source color based on...
--open-picker open the interactive color picker
-r, --render fill template files with colors
-o, --output write all processed templates to output
--output-only <APP> write specific processed template to output
-p, --preview print palette table
-n, --dry-run render but skip writing or updating files anywhere
-q, --silent suppress process outputs
-S, --style <STYLE> choose a Material 3 style
--light generate light variant colors
-t, --contrast <LEVEL> choose color contrast levels
-b, --blend-style <STYLE> blend with a second Material 3 style
--blend-ratio <RATIO> blend ratio 0.1 – 0.9 ( requires --blend-style )
-w, --wallpaper set as desktop wallpaper
-R, --reload-scheme reload last generated color scheme
-W, --watch watch relevant files and re-render on change
--init generate a default configuration file ( warns if already existing )
--init-overwrite overwrite configuration file with defaults
-h, --help prints me ;)
-V, --version print version
rizzoo reads ~/.config/rizzoo/config.toml. rizzoo --init generates the default configuration file.
= "tonal-spot"
= false
= "standard"
[]
= false
= "swaybg -i {{ image }} -m fill"
[]
= { = "#e06c75", = true }
[]
= "colors-alacritty.toml"
= "~/.config/alacritty/colors.toml"
= "pkill -SIGUSR1 alacritty"
post_hook runs after the template is written. Add enabled = false to skip an entry.
Templates live in ~/.config/rizzoo/templates/. -r renders them to cache, -o writes them to each entry's output path.
Variables
Every Material role is a hex string: {{ primary }}, {{ on_primary }}, {{ surface }}, {{ background }}, {{ outline }}, {{ error }}… plus {{ shadow }}, {{ scrim }}, {{ custom_<name> }}, and {{ wallpaper }}.
Filters
| Filter | Syntax | Output |
|---|---|---|
hex_raw |
{{ primary:hex_raw }} |
a6ebc3 |
rgb |
{{ primary:rgb }} |
rgb(166, 235, 195) |
rgba |
{{ primary:rgba(0.5) }} |
rgba(166, 235, 195, 0.5) |
hsl |
{{ primary:hsl }} |
hsl(150, 59%, 79%) |
hsla |
{{ primary:hsla(0.5) }} |
hsla(150, 59%, 79%, 0.5) |
hue / saturation / lightness |
{{ primary:hue }} |
150 |
r / g / b |
{{ primary:r }} |
166 |
lighten / darken |
{{ primary:lighten(0.1) }} |
adjusted color |
saturate / desaturate |
{{ primary:saturate(0.2) }} |
adjusted color |
invert / grayscale |
{{ primary:invert }} |
transformed color |
blend |
{{ primary:blend(%secondary, 0.5) }} |
CAM16-UCS blend |
harmonize |
{{ primary:harmonize(%tertiary) }} |
hue-shifted toward target |
ensure_contrast |
{{ on_surface:ensure_contrast(%surface, 4.5) }} |
WCAG-safe color |
All chainable via colon : ➔ {{ primary:darken(0.1):hex_raw }}. Bare %var args resolve to other template variables.
Example
/* material.css */
}};
-- }};
-- }};
}
Check example/ for a sandboxed testing script.
&&