Skip to content

🐧 Blazingly fast, ultra-minimal system information tool for Linux.

License

Notifications You must be signed in to change notification settings

Gur0v/zeptofetch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

168 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

⚑ zeptofetch

Blazingly fast, ultra-minimal system information tool for Linux

zeptofetch v1.17-rc1

Features β€’ Benchmarks β€’ Installation β€’ Usage β€’ Configuration

🎯 Why zeptofetch?

zeptofetch is a minimal system information tool written in C. It executes in under 1ms* with a 32KB binaryβ€”no dependencies, no shell scripts.

Compared to neofetch (~400ms) and fastfetch (~5ms, 200KB+ binary), zeptofetch prioritizes speed and minimal footprint.

*Performance varies by hardware and system configuration. See benchmarks for details.

✨ Features

Performance

  • ⚑ ~0.73 ms execution time (553Γ— faster than neofetch)
  • πŸ“¦ 32 KB binary size
  • πŸ’Ύ Zero external dependencies

Design

  • 🎨 Customizable colors via config.h at compile time
  • πŸ”’ Security hardening with memory protection and resource limits
  • 🐧 Pure C99 with efficient process scanning
  • βš™οΈ Memory-mapped process cache with secure cleanup

πŸ“Š Benchmarks

Tested with hyperfine on the following system:

Test System Specifications
Component Specification
CPU AMD Ryzen 5 5600 (6-core, 12-thread)
RAM 32 GB DDR4 @ 3200MHz
Kernel 6.17.7-lqx1-1-lqx
OS Arch Linux
Desktop KDE Plasma 6.5.2 (Wayland)
Tool Runtime* Binary Size Speed vs neofetch
zeptofetch 732.4Β΅s Β± 77.7Β΅s 32 KB 553x faster
fastfetch 6.7ms Β± 1.0ms ~200 KB 61x faster
neofetch 405.1ms Β± 21.0ms ~50 KB baseline

*Performance varies based on hardware, system load, kernel, desktop environment, and terminal emulator. Benchmarks shown are from a statically-linked zeptofetch v1.9 binary.

πŸš€ Installation

Manual Compilation

To build the latest version from source:

git clone https://gitlab.archlinux.org/gurov/zeptofetch.git
cd zeptofetch
make
sudo make install

This builds from the main branch, which may include release candidates. For production use, download a tagged release from the releases page.

Arch Linux (AUR)

paru -S zeptofetch        # Latest stable release
paru -S zeptofetch-git    # Development version

πŸ“– Usage

# Display system information
zeptofetch

# Show version and build information
zeptofetch --version
zeptofetch -v

The --version flag displays:

  • Version number and license information
  • Build date, time, and compiler used
  • Compact configuration stats (Cache size, chain depth, PID max, timeouts)

βš™οΈ Configuration

Customize colors by editing config.h. Note: Macros use concise naming to match the source code.

#define CR "\033[0m"        // Reset
#define C1 "\033[1;34m"     // Primary Color (Bold Blue)
#define C2 "\033[1;37m"     // Secondary Color (Bold White)
#define C3 "\033[38;5;208m" // Accent Color (Bold Orange)

Rebuild after changes:

make clean && make
sudo make install

πŸ” Technical Details

Implementation

  • Compact source with minimal symbol overhead
  • mmap-based cache for process information (256 entry limit)
  • Direct /proc reads without subprocess spawning
  • Pre-computed string lengths for O(1) prefix matching
  • Stack allocations with compile-time size limits

Detection

  • OS: Single-pass /etc/os-release parsing with PRETTY_NAME fallback
  • Shell: Process tree walk via /proc/[pid]/exe symlinks with $SHELL fallback
  • Terminal: Ancestor scanning with TERM_PROGRAM/TERMINAL environment checks
  • WM: /proc scan (PIDs 300-100000, max 1000 checks) with result caching
  • WSL: Multi-method detection (WSLENV, /mnt/wsl, binfmt_misc, kernel strings)
  • Kernel: uname() syscall with error handling

🐧 Requirements

  • Platform: Linux (x86_64)
  • Kernel: 2.6.32+ (any modern kernel)
  • libc: glibc, musl, or compatible
  • Build: GCC or Clang

Supported: Linux, WSL1, WSL2 (Native detection). Not supported: Android, BSD, macOS.

🀝 Contributing

This project is developed on the Arch Linux GitLab:

πŸ‘‰ https://gitlab.archlinux.org/gurov/zeptofetch

The GitHub repository is a read-only mirror for visibility.

How to contribute:

  • Report bugs or suggest features
  • Improve documentation
  • Submit merge requests
  • Test on different distributions

All issues and merge requests should be submitted on the Arch Linux GitLab.

πŸ“œ License

Licensed under GPL-3.0


Made with ⚑ by Gurov

⬆ Back to top

About

🐧 Blazingly fast, ultra-minimal system information tool for Linux.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •