Skip to content

addidotlol/puppyfetch

Repository files navigation

puppyfetch 🐶

A tiny, fast, extremely configurable system fetch tool. It's able to render images in terminals that support them (kitty, ghostty, Konsole, iTerm2, WezTerm) and falls back to colored half-blocks or an ascii ramp everywhere else.

  __      _      addison@niko
o'')}____//      ------------
 `_/      )      OS  Ultramarine Linux 44 (GNOME Edition) x86_64
 (_(_/-(_/       DE  GNOME (wayland)
  woof!          Uptime  3 hours, 3 mins
                 CPU  AMD Ryzen 7 9700X (16) @ 5.58 GHz
                 GPU  Intel Arc B580
                 RAM  9.4 GiB / 30.5 GiB (30%)
                 Disk (/)  63.4 GiB / 1.8 TiB (3%)

Install

go install github.com/addidotlol/puppyfetch@latest

Single static binary, zero runtime dependencies.

Usage

puppyfetch                      # builtin puppy + default modules
puppyfetch --image ~/dog.png    # your own image
puppyfetch --protocol blocks    # force a render mode
puppyfetch --no-image           # info only
puppyfetch --write-config       # drop a commented config to edit

Configuration

Config lives at ~/.config/puppyfetch/config.kdl (KDL). Run puppyfetch --write-config to generate a fully commented starter file.

image {
    path "~/.config/puppyfetch/puppy.png" // png/jpg/gif/webp, or ansi-art .txt
    protocol "auto"  // auto | kitty | iterm | blocks | ascii | none
    width 32         // in terminal cells
    padding 3
}

style {
    key-color "magenta"   // named, 256-index ("141"), or hex ("#ff87d7")
    separator "  "
    bold-keys true
}

// Reorder, remove, repeat, or restyle any module.
// All modules accept label= icon= key-color= format=
modules {
    title
    separator
    os                                  // {name} {arch}
    de                                  // {name}
    uptime format="{days}d {hours}h"    // {pretty} {days} {hours} {minutes}
    cpu                                 // {model} {count} {freq}
    gpu                                 // one line per GPU
    ram                                 // {used} {total} {free} {percent}
    storage "/" "/home"                 // default: all real disks
    custom "Song" command="playerctl metadata title"
    blank
    colors blocks="16"
}

Extra modules: kernel, host, shell, terminal.

NO_COLOR is respected.

About

yet another neofetch

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages