About this project
animfetch is a terminal utility that displays an animated system fetch (system information plus ASCII art) pinned at the top of the terminal while the user's own shell continues to work below it. It targets Linux and macOS and is written in Rust.
Core behavior:
- `--pin` sets a scroll region so the top rows stay fixed, then detaches and repaints them while the user's shell runs underneath with history, completion and aliases intact. `--unpin` undoes it.
- `--play` animates in place for a few seconds and exits.
- `--once` prints a single static frame.
- Running with no flags starts an interactive mode where animfetch owns the prompt.
Animations and rendering:
- A large library of built-in animations, both non-colored and colored, including animals, objects and characters (for example cat-run, fox-run, dolphin-swim, blackhole, earth, saturn, dragon, rocket).
- Choose an animation per run with `-a <name>` or set a default with `--set <name>`.
- `--style` selects the drawing method: `half` and `quad` render solid blocks and rescale to any terminal; `ramp` maps coverage onto characters; `raw` prints the art's own characters untouched, suited to hand-drawn or pre-colored ASCII.
- Options include `--width`, `--height`, `--fps`, `--no-color`, and `--art-color own|theme`.
- Piping output or setting `NO_COLOR=1` falls back to the static path automatically.
Installation:
- Arch Linux via `paru -S animfetch-bin` or `animfetch-git`.
- Nix/NixOS via `nix run github:Andrew-Velox/animfetch` or by adding it as a flake input.
- A prebuilt binary install script for any Linux or macOS, installing to `~/.local/bin` or `/usr/local/bin` as root, with `ANIMFETCH_BINDIR` override.
- From source with Rust 1.88 or newer via `cargo install --locked --git ...`.
Configuration:
- Optional `~/.config/animfetch/config.toml`; every key is optional and a malformed file falls back to defaults.
- Setting `color_source = "palette"` makes the fetch follow the desktop theme by reading a matugen, pywal or wallust palette; under `--pin` it re-reads on change so retheming recolors the running animation.
Shell integration:
- Example startup lines for bash, zsh and fish guard against non-interactive shells and `scp`; the README advises never using bare `animfetch` in startup files because it waits for input.
Interactive mode keys:
- Enter runs a command with output below the fetch; Ctrl-C interrupts or quits; Esc quits; Ctrl-D quits on an empty line; Ctrl-U clears the line; Ctrl-W deletes the last word. `cd` and `exit` are handled internally, everything else runs under `$SHELL -c`. It is described as a launcher with a prompt, not a full shell (no aliases, history or completion).
Credits note that some animations are redrawn as ASCII from RunCat by kyome22 under the Apache License 2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.