← Back

fetch

A donut.c inspired fetch tool that spins your distro logo in 3D with system info updating in real time. Takes any ASCII logo, turns each character into a point cloud based on its visual density, and renders it as a rotating 3D relief with Blinn-Phong shading. Single file C, no deps beyond libm.

GitHub

fetch demo

Build and run

make
./fetch

Press any key to stop. The keypress passes through to the shell so it works as a startup fetch. Ctrl-C works too.

Install

# from source
make
sudo make install

# arch (AUR)
yay -S fetch-git

# gentoo (GURU)
eselect repository enable guru
emaint sync -r guru
emerge -a app-misc/fetch

# homebrew
brew tap areofyl/fetch
brew install fetch-git

Logos

Auto detects your distro and grabs the logo from fastfetch if installed, with original colors preserved. Works with any of fastfetch's 500+ logos. You can also specify one directly:

./fetch -l arch
./fetch -l NixOS
./fetch -l asahi

Or drop a custom logo in ~/.config/fetch/logo.txt. Without fastfetch the built-in Gentoo logo is used.

System info

All info is gathered natively, no fastfetch or neofetch needed. OS, host, kernel, uptime, packages, shell, display, WM, theme, CPU, GPU, memory, swap, disk, battery, local IP. Stats like memory, battery, and uptime update in real time while the logo spins.

How it works

Each character in the logo gets a weight based on its visual density. M is heavy, dots and dashes are light. That weight becomes a height, turning the flat logo into a 3D relief. Surface normals come from the height gradient, and everything gets rotated, projected, and shaded every frame with a z-buffer.