Art
Borders
Draw PNG ornaments beside and below your system info in kitty, WezTerm and Ghostty.
An ornament can run down the left of the data, between the art and the info, and another along its bottom. They are drawn from PNG line art, as the pictures they are.
The built-in images are numbered 00, 01, 02 and so on, in one set, and
any of them can go on either edge. The left one is drawn as it is. The
bottom one is turned a quarter clockwise so it lies along the bottom.
animfetch --pin --border-left 00 --border-bottom 11
animfetch --pin --lb 00 --db 11 # the same, shorter: --lb is left, --db is down
animfetch --list-borders # what is built in, and your own
animfetch --pin --no-border # for this run only
animfetch --no-border --save # none from now on: both names saved emptyborder_left = "00" # a built-in name, one of your own, or a path to a PNG
border_bottom = "11"
border_render = "auto" # auto | image | cellsWhich terminals show them#
Borders are drawn with the kitty graphics protocol, which these terminals speak:
| Terminal | Pictures |
|---|---|
| kitty | yes |
| WezTerm | yes |
| Ghostty | yes |
| VS Code's terminal | no |
| tmux, GNU screen | no (the protocol is not passed through) |
| Others | Only if they implement the protocol, and only with border_render = "image": animfetch detects kitty, WezTerm and Ghostty. |
A terminal that does not speak it gets no border. Nothing is silently converted to text unless you ask for it.
To check a terminal:
animfetch --list-bordersThe first line says whether this terminal shows pictures. In kitty,
kitten icat some-image.png should show an image too.
Rendering: border_render#
| Value | Meaning |
|---|---|
auto | The pictures, where the terminal can show them, else no border. |
image | The pictures, even where they are not detected. |
cells | The image redrawn as braille characters: coarse, but works in any terminal with colour. |
cells is the opt-in for terminals without picture support:
animfetch --pin --border-left 00 --border-render cellsPicture borders are not colour, so NO_COLOR leaves them in place; it does
remove cells, which is coloured text. --no-color draws both in grey.
Nothing is drawn when output is piped.
Placing the bottom ornament#
Whatever image is on the bottom edge is turned a quarter clockwise so it lies along the bottom, so what is at its top ends up at the right. Two settings nudge where it sits, both in cells and both allowed to be fractions:
| Key | Default | Meaning |
|---|---|---|
border_bottom_lift | 2.15 | Rows to raise it toward the info. 0 is flush under the last row. Capped at 3. |
border_bottom_shift | 12.0 | Columns to move it right. 0 starts it flush with the left border. Capped at 24. |
animfetch --pin --border-bottom-lift 2.5 --border-bottom-shift 16The picture is narrowed by as much as it is moved, so it never runs past the
edge of the terminal. Only pictures move by part of a cell; cells move by
whole ones.
Your own images#
Put PNGs here, and they show up in --list-borders:
~/.config/animfetch/border/
Then name one: --border-left mine or --border-bottom mine for mine.png.
Like the built-in ones, it can go on either edge. A file of yours shadows a
built-in of the same name. Or pass a path directly:
animfetch --pin --border-left ~/pictures/vine.pngA folder inside it, left_border/ or bottom_border/, holds images for that
edge only, if you want the same name to be a different picture on each.
They should be mostly transparent line art in light strokes, drawn for a dark terminal, as the built-in ones are. Draw an image that is to lie along the bottom upright, since it is turned. JPEG is not supported.
Layout and limits#
- The art and the info give up the room a border takes.
- A border is left out on a terminal under 60 columns, and when the output is not a terminal.
- Pictures are drawn over the cells and under the text, scaled to a whole number of cells so nothing is stretched.
- The built-in images add about 950 KiB to the binary. A build with
--no-default-featuresleaves them out, and borders still work from your own files.
The look with a border#
The minimal style is made to sit beside an ornament. For the whole look, turn
the animation off so the ornament and the list are the pane:
animfetch --pin --info minimal --no-art --border-left 00 --border-bottom 08info_style = "minimal"
art = false
border_left = "00"
border_bottom = "08"Its values are the fuller ones (zsh 5.9.2, kitty 0.48.2,
mango (Wayland)), which cost the same few milliseconds as boxed.