Configuration
Colours and art styles
How the art is drawn, the gradient and accent colours, and following your desktop theme.
Art styles#
style (or --style) picks how the animation is drawn into character cells:
| Style | How it draws | Good for |
|---|---|---|
half (default) | Two vertical samples per cell, with half blocks (▀▄█). Solid glyphs only, so edges are crisp and small holes stay holes. | Most animations. |
quad | Four samples per cell in a 2x2 grid (▘▝▖▗▚▞…). Twice the resolution of half in both directions. | Art with fine detail. |
ramp | One sample per cell, mapped onto the characters in ramp by density. | A classic ASCII look. |
raw | The art's own characters, exactly as authored. | Hand-drawn and pre-coloured ASCII, such as earth. |
half and quad render as solid blocks and rescale to any terminal. ramp
uses ramp, lowest coverage first:
style = "ramp"
ramp = " .:-=+*#%@" # a classic ASCII ramp
# ramp = " █" # hard edgesThe shaded blocks of the default ramp are stipple patterns in most fonts, which can read as noise along edges; a plain ASCII ramp is cleaner.
raw prints the art's own characters untouched. Frames may carry their own
truecolor escapes, and art_color picks between them and the theme gradient:
art_color | Meaning |
|---|---|
"own" (default) | Show the art's real embedded colours. |
"theme" | Ignore them and paint the art with the gradient, like escape-free art. |
When it has to shrink, raw keeps thin strokes by picking an inked cell from
each block rather than a blind fixed sample.
Size#
The art scales to fit inside width by height cells (56 by 20 by default),
keeping its aspect ratio. It is never enlarged beyond its authored size: more
room gives chunkier blocks, not more detail. Set either to 0 to fill the
space.
animfetch --width 40 --height 12Both caps matter: a wide, short animation slips under a height cap alone.
Colours#
# Vertical colour ramp down the art. An empty list leaves the art uncoloured.
gradient = ["#f5c95c", "#f17f5b", "#f45c82", "#b07cf4", "#74a4ff"]
# Animate the gradient so it crawls through the art.
gradient_scroll = false
accent = "#74a4ff" # user@host, the rule, and labels
value = "#c8ccd4" # valuesgradient_scroll is off by default: a gradient that crawls through the art
draws the eye away from the terminal, which is the thing you are meant to be
looking at.
--no-color (or gray = true) draws everything in shades of grey: every
colour keeps its brightness and loses its hue, so the art and the text stay
readable and the palette swatches are left out. --def-color puts the default
colours back. color = false (or NO_COLOR) sends no colour codes at all,
which leaves your terminal's own colours.
Following your desktop theme#
Set color_source = "palette" and the fetch follows your desktop theme, reading
a matugen, pywal or wallust palette. Anything the file does not define keeps the
value you wrote, so a palette can only add colour, never remove it.
color_source = "palette"Try it without editing anything:
animfetch --once --paletteanimfetch looks for the first of these files that exists:
palette_files = [
"~/.local/state/quickshell/user/generated/colors.json", # matugen
"~/.cache/wal/colors.json", # pywal
"~/.cache/wallust/colors.json", # wallust
]and reads these names out of it. The defaults are Material You role names, as written by matugen:
palette_accent = "primary"
palette_value = "on_surface"
palette_gradient = ["primary", "secondary", "tertiary"]pywal and wallust name their colours color0..color15 instead, so with those
you want something like:
palette_accent = "color4"
palette_value = "color7"
palette_gradient = ["color4", "color5", "color6"]Under --pin the palette file is re-read when it changes, so retheming your
desktop recolours the running animation without restarting it.