footfetch 2.0.1

A neofetch-like tool for those who prefer feet over faces
<div align="center">
<img src="https://github.com/adenast/footfetch/blob/develop/images/logo.png?raw=true" width="92"> 
<h1>footfetch</h1>
<h6>
  A lightweight and high-performance, neofetch-like tool for those who prefer feet over faces written in Rust. 
</h6>

[![Build](https://img.shields.io/github/actions/workflow/status/adenast/footfetch/release.yml?style=for-the-badge&labelColor=22252c&color=6fcff0)](https://github.com/adenast/footfetch/actions)
[![Commits](https://img.shields.io/github/commit-activity/m/adenast/footfetch?style=for-the-badge&labelColor=22252c&color=6fcff0)](https://github.com/adenast/footfetch/commits)
[![Changelog](https://img.shields.io/badge/CHANGELOG-v2.0.01-gray?style=for-the-badge&labelColor=22252c&color=6fcff0)](./CHANGELOG.md)

<img src="https://github.com/adenast/footfetch/blob/develop/images/preview.png?raw=true" alt="Preview" width="600"> 

<small><i>Footfetch 2.0.1 with custom theme</i></small>

</div>

---

## MoC
* [Features]#features
* [Installation]#installation
  * [Binary]#quick-start-binary
  * [Source-based]#source-based
* [Usage]#usage
* [Configuration]#configuration
  * [Modules]#modules
  * [Extensions]#extensions
  * [Themes]#themes
* [License]#license

## Features
 * **Live Mode:** Real-time hardware monitoring via the `--live` flag.
 * **Deep Fetch:** Accurate CPU/GPU usage and model detection.
 * **Multi-Distro:** Native package counting for Pacman, Dpkg, RPM, and APK.
 * **Customization:** Deep customization with  themes and extensions

## Installation
> [!IMPORTANT]
The tool only works on Linux due to strict performance requirements.
### Quick Start (Binary)
> [!TIP]
For those who want it right now (pre-compiled for x86_64):
```Bash
curl -sSL https://raw.githubusercontent.com/adenast/footfetch/main/scripts/linux/x86_64/install.sh | sh
```

### Source-based
> [!NOTE]
Recommended for performance. These methods will build the app specifically for your system

 * Arch Linux (AUR):
```Bash
yay -S footfetch-git
```
 * Nix Flakes (not tested):
```Bash
nix run github:adenast/footfetch
```
 * Cargo:
```Bash
cargo install footfetch
```

## Usage
| Option            | Definition
|-------------------|--------------------------------------------
| `-v`, `--version` |  Show version information
| `--live`          |  Live mode — updates every 2 seconds
| `--init`          |  Create default config and theme files
| `-h`, `--help`    |  Show help message

## Configuration
Main config file: ~/.config/footfetch/footfetch.toml

### Modules
Toggle any module by setting it to true or false.
| Key         | Description
|-------------|-------------------------------------------
| `distro`    | Distribution name from /etc/os-release
| `kernel`    | Kernel version (uname -r)
| `de_wm`     | Desktop Environment or WM
| `packages`  | Installed package count
| `processes` | Total running processes
| `cpu`       | CPU model and current load
| `gpu`       | GPU model and current load
| `memory`    | RAM usage

### Extensions
Extensions are shell commands that return a single line of text. Add them using [[extensions]] blocks:
```toml
[[extensions]]
name    = "Weather"
command = "curl -s wttr.in/?format=1"

[[extensions]]
name    = "VPN"
command = "~/.local/bin/vpn-status.sh"
```

### Themes
Themes are stored in ~/.config/footfetch/themes/ as .jsonc files.

**Available Presets:**

Click to download and save to your themes folder:
* [Catppuccin Mocha]https://raw.githubusercontent.com/adenast/footfetch/develop/themes/catppuccin.jsonс
* [Gruvbox Dark]https://raw.githubusercontent.com/adenast/footfetch/develop/themes/gruvbox-dark.jsonc

**Theme structure:**
```jsonc
{
    "primary":   "#00d7d7", // ASCII Art color
    "secondary": "#d7af00", // Labels color (OS:, CPU:...)
    "accent":    "#ffffff", // username@hostname color
    "muted":     "#555555"  // Separator line color
}
```

**Example of a complete configuration file:**

```toml
theme = "catppuccin"

[modules]
distro    = true
kernel    = true
de_wm     = true
packages  = true
processes = false
cpu       = true
gpu       = false
memory    = true

[[extensions]]
name    = "Uptime"
command = "uptime -p"

[[extensions]]
name    = "Shell"
command = "echo $SHELL"

[[extensions]]
name    = "Local IP"
command = "hostname -I | awk '{print $1}'"
```

## License

> [!IMPORTANT]
This project is licensed under the MIT license. For details, see the file [LICENSE.md]https://github.com/adenast/footfetch/blob/main/LICENSE.md.