purefetch 0.1.10

A fast, fastfetch-style system information tool written entirely in Rust with zero dependencies
# Changelog

All notable changes to this project are documented here. The format is based on
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.1.10] - 2026-07-05

### Added
- Multi-color logos: a logo's `.txt` can define several colors (a `COLORS:` line
  of SGR params) selected by `$1`..`$9` markers in the art, fastfetch-style, so
  distro logos render in their real multi-tone colors. A literal `$` is any `$`
  not followed by a digit, so the Debian swirl still renders correctly.
- Unit tests for the pure parsing/formatting helpers (IEC/percent formatting,
  ANSI width & strip, lspci / cpuinfo parsing, ppid & uptime & DRM-connector
  parsing, config-line and logo-marker handling).

### Changed
- All bundled distribution logos are now taken from fastfetch (which builds on
  neofetch's set) and render in their native colors, replacing the previous mix
  of adapted single-color art. Attribution and the MIT notices for both projects
  are in [CREDITS.md]CREDITS.md.

## [0.1.9] - 2026-07-04

### Fixed
- `--no-logo` / `--logo none` now suppress a logo configured via `--logo-file` /
  `--logo-exec` (e.g. from the config file). Logo sources are resolved by argument
  order, so a command-line flag overrides one coming from the config.
- GPU (lspci fallback): AMD adapters showed the `[AMD/ATI]` vendor tag instead of
  the model. Drop the vendor tag and a trailing `(rev …)`, so the marketing name
  (e.g. `Radeon RX 7900 XTX`, `Raphael`) is shown. NVIDIA/Intel unaffected.
- KDE Plasma version: prefer the full `plasmashell --version` (e.g. `6.2.4`) over
  the major-only `KDE_SESSION_VERSION`, which is now only a fallback.
- `--config` with no path now errors, consistent with the other value-taking flags.
- No more trailing whitespace on logo-only output rows.

### Changed
- A standalone `--exec` (without `--modules`) now appends its line to the default
  layout instead of being silently ignored.

## [0.1.8] - 2026-07-04

### Fixed
- Memory: report `MemTotal - MemAvailable` (matching `free`/htop). The previous
  ZFS-ARC subtraction under-reported used memory — the ARC genuinely occupies RAM.
- Disk on a ZFS root: report the whole pool via `zpool list` (labelled
  `Disk (<pool>)`) instead of only the root dataset's few GiB.

### Changed
- Logos: `nixos` and `manjaro` are now pure ASCII (were solid block-glyph art).
  All 24 bundled logos are strictly 7-bit ASCII.

## [0.1.7] - 2026-07-04

### Added
- Config file: any option can be set (one `key value` per line) in
  `$PUREFETCH_CONFIG`, `~/.config/purefetch/config`, or `/etc/purefetch/config`,
  so plain `purefetch` reproduces a custom setup. `--config` / `--no-config`.
- `--logo-exec <CMD>`: use a custom logo from a command's output, regenerated
  each run (e.g. for status-driven logos).

## [0.1.6] - 2026-07-04

### Added
- `--exec <LABEL:command>`: add a custom info line from a shell command, placed in
  `--modules` by its (lowercased) label. Repeatable.

## [0.1.5] - 2026-07-04

### Added
- `--modules <LIST>`: choose which info modules to show, in order, with `-` for a
  separator (e.g. `os,host,kernel,-,cpu,gpu,memory,swap,-,shell`).

## [0.1.4] - 2026-07-04

### Added
- `--logo-file <PATH>`: use a custom logo read verbatim from a file (ANSI and
  all), for fastfetch-style custom logos.
- `--no-color-blocks`: hide the trailing ANSI color blocks.

## [0.1.3] - 2026-07-04

### Changed
- Rewrote the logo generator in Rust (`examples/genlogos.rs`) and dropped the
  Python tooling, so the project is 100% Rust again.

## [0.1.2] - 2026-07-04

### Fixed
- Distro logos rendered in the wrong color: the logo generator emitted an
  incomplete SGR (missing the `38;2;` truecolor prefix), so every logo appeared
  washed out instead of its brand color. Affected 0.1.0 and 0.1.1.

## [0.1.1] - 2026-07-04

### Added
- More bundled distro logos: gentoo, endeavouros, kali, elementary, zorin,
  artix, rocky, almalinux, centos, devuan, mx, garuda.
- `riscv64` and `loongarch64` support (raw syscalls), joining x86_64 and aarch64.

### Fixed
- CPU detection on riscv (and ppc / some ARM SoCs), which lack a `model name`
  field in `/proc/cpuinfo` — fall back to `uarch` / `isa` / `cpu` / `Hardware`.

## [0.1.0] - 2026-07-04

Initial release.

### Added
- fastfetch-style system information with a distro logo, written entirely in Rust
  with **zero external dependencies** (`std` + raw x86_64/aarch64 Linux syscalls).
- Info modules: OS, Host, Kernel, Uptime, Packages, Shell, Display, DE, WM,
  Terminal, CPU, GPU, Memory, Swap, Disk, Locale, Battery, plus the color blocks.
- ZFS-aware memory usage (subtracts the reclaimable ARC).
- Bundled logos: debian, arch, ubuntu, fedora, mint, manjaro, pop, opensuse,
  alpine, void, nixos, tux — auto-detected from `/etc/os-release`.
- CLI: `--logo`, `--no-logo`, `--no-color`, `--version`, `--help`.
- Dual-licensed MIT OR Apache-2.0.

[Unreleased]: https://github.com/ooonea/purefetch/compare/v0.1.10...HEAD
[0.1.10]: https://github.com/ooonea/purefetch/compare/v0.1.9...v0.1.10
[0.1.9]: https://github.com/ooonea/purefetch/compare/v0.1.8...v0.1.9
[0.1.8]: https://github.com/ooonea/purefetch/compare/v0.1.7...v0.1.8
[0.1.7]: https://github.com/ooonea/purefetch/compare/v0.1.6...v0.1.7
[0.1.6]: https://github.com/ooonea/purefetch/compare/v0.1.5...v0.1.6
[0.1.5]: https://github.com/ooonea/purefetch/compare/v0.1.4...v0.1.5
[0.1.4]: https://github.com/ooonea/purefetch/compare/v0.1.3...v0.1.4
[0.1.3]: https://github.com/ooonea/purefetch/compare/v0.1.2...v0.1.3
[0.1.2]: https://github.com/ooonea/purefetch/compare/v0.1.1...v0.1.2
[0.1.1]: https://github.com/ooonea/purefetch/compare/v0.1.0...v0.1.1
[0.1.0]: https://github.com/ooonea/purefetch/releases/tag/v0.1.0