rizzoo-0.6.7 is not a library.
- Material 3 Expressive
- M3 + base16 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
- Winnow-based Template Engine
- minimal and simple color manipulation
- 25+ Color Filters
hex,rgb,hsl,lighten,darken,blend,harmonize,ensure_contrast, and more...
- Templating & Configuration Files
- define templates, output paths, post hooks, and general configurations
- Cross-platform Wallpaper Wrappers
- Windows, Macos, X11(Linux), Wayland(Linux)
- Caching
- identical images never regenerate
- Live Reload
- watch for changes and re-render automatically

# from an image
# from a hex color
# from a URL
# first run? generate a config file
Usage: rizzoo [OPTIONS]
Options:
-i, --image <PATH> image path as color source
-u, --image-url <URL> url link of an image as the color source
-c, --color <HEX> a color of your choice in hex format
-R, --restore-wallpaper restore last wallpaper
-p, --preview print palette table
-r, --render fill template files with colors
-o, --output write all processed templates to output
--output-to <APP> write specific processed template to output
-w, --wallpaper set as desktop wallpaper
-q, --silent no process printed on screen
-n, --dry-run rendering and linking flags won't be applied
-S, --style <STYLE> [default: tonal-spot] [possible values: tonal-spot, neutral, vibrant, expressive, rainbow, fruit-salad, monochrome, fidelity, content]
--light generate light variant colors
-W, --watch reload when files change
-t, --contrast <LEVEL> increase color contrast [default: standard] [possible values: standard, medium, high]
-P, --pick <N> explicitly choose a source color
-e, --prefer <MODE> auto-pick source color based on... [possible values: darkness, lightness, saturation]
--open-picker explicitly open the interactive color picker
-b, --blend-style <STYLE> blend with another style (requires --blend-ratio) [possible values: tonal-spot, neutral, vibrant, expressive, rainbow, fruit-salad, monochrome, fidelity, content]
--blend-ratio <RATIO> blend ratio 0.0-1.0 when using --blend-style [default: 0.5]
--init generate configuration file
--init-overwrite overwrite configuration file with defaults
-h, --help Print help
-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 {{ base00 }}–{{ base15 }}, the colors array, {{ custom_<name> }}, and {{ wallpaper }}.
Filters
| Filter | Syntax | Output |
|---|---|---|
hex |
{{ primary:hex }} |
#a6ebc3 |
hex_raw |
{{ primary:hex_raw }} |
a6ebc3 |
rgb |
{{ primary:rgb }} |
166,235,195 |
rgb_css |
{{ primary:rgb_css }} |
Rgb166, 235, 195 |
rgba |
{{ primary:rgba(0.5) }} |
Rgba166, 235, 195, 0.5 |
hsl |
{{ primary:hsl }} |
150,59%,79% |
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 |
set_hue / set_saturation / set_lightness |
{{ primary:set_hue(180) }} |
forced channel |
set_red / set_green / set_blue |
{{ primary:set_red(255) }} |
forced channel |
All chainable via colon : ➔ {{ primary:darken(0.1):hex_raw }}. Bare %var args resolve to other template variables.
For loop
{{#for c in colors }}{{ c:hex_raw }}
{{/c }}
Example
/* material.css */
}};
-- }};
-- }};
}
Check example/ for a sandboxed testing script.
&&