A lightweight, blazingly fast, and highly customizable system information tool written in modern C++. Display your system stats with style using gradient themes and custom ASCII art.
Nanofetch is a minimal alternative to Neofetch and Fastfetch, designed for speed, simplicity, and visual elegance. Perfect for showcasing your Arch Linux setup with zero bloat.
- π Blazing Fast β Written in modern C++17 with performance in mind
- π¨ Gradient Themes β 13 built-in color schemes including rainbow, neon, sunset, and more
- βοΈ Highly Customizable β Toggle any information field and use custom ASCII logos
- π XDG Compliant β Follows XDG Base Directory specification for clean config management
- π§ Zero Dependencies β Uses only standard Linux utilities and system calls
- πͺΆ Minimal Footprint β Single binary with a small memory footprint
Currently Supported:
- β Arch Linux and derivatives (Manjaro, EndeavourOS, Artix, ArcoLinux, etc.)
Planned Support:
- π Debian/Ubuntu (
.debpackages) - π Fedora/RHEL (
.rpmpackages) - π Void Linux
- π Gentoo
- π Alpine Linux
- π BSD variants (FreeBSD, OpenBSD)
Install directly from the AUR using your preferred AUR helper:
yay -S nanofetchOr with paru:
paru -S nanofetchClone the repository and build with makepkg:
git clone https://github.com/tinyopsec/nanofetch.git
cd nanofetch
makepkg -siFor manual installation on any Linux distribution:
install folder nanofetch
cd nanofetch
g++ -std=c++17 -O2 -o nanofetch nanofetch.cpp
sudo install -Dm755 nanofetch /usr/bin/nanofetch
sudo install -Dm644 logo.txt /usr/share/nanofetch/logo.txt
sudo install -Dm644 config.txt /usr/share/nanofetch/config.txt
sudo install -Dm644 options.txt /usr/share/nanofetch/options.txt
sudo install -Dm644 settings.txt /usr/share/nanofetch/settings.txtyay -R nanofetchOr with paru:
paru -R nanofetchsudo rm /usr/bin/nanofetch
sudo rm -rf /usr/share/nanofetch
rm -rf ~/home/<user>/.config/nanofetchSimply run Nanofetch in your terminal:
nanofetchOn first run, Nanofetch automatically:
- Creates the configuration directory at
~/home/<user>/.config/nanofetch/ - Copies default configuration files from
/usr/share/nanofetch/ - Displays your system information with default settings
Nanofetch follows the XDG Base Directory specification:
~/home/<user>/.config/nanofetch/ # User configuration (edit these)
βββ logo.txt # Custom ASCII logo
βββ config.txt # Gradient theme settings
βββ options.txt # Toggle information fields
βββ settings.txt # General settings
/usr/share/nanofetch/ # System defaults (do not edit)
βββ logo.txt
βββ config.txt
βββ options.txt
βββ settings.txt
Customize your color schemes by editing ~/home/<user>/.config/nanofetch/config.txt:
gradient_info=neon # Gradient for system information text
gradient_logo=rainbow # Gradient for ASCII logoAvailable Gradients:
| Theme | Description |
|---|---|
mono |
Monochrome white |
blue |
Classic blue tones |
red |
Vibrant red gradient |
green |
Fresh green hues |
purple |
Royal purple shades |
orange |
Warm orange tones |
neon |
Bright cyan and green neon effect |
aqua |
Cool aqua and cyan |
sunset |
Warm sunset colors |
forest |
Deep forest greens |
rainbow |
Full spectrum rainbow |
magenta |
Bold magenta and pink |
gray |
Neutral grayscale |
Control which system information is displayed by editing ~/home/<user>/.config/nanofetch/options.txt:
os=true # Operating system
kernel=true # Kernel version
uptime=true # System uptime
packages=true # Installed packages count
shell=true # Current shell
cpu=true # CPU model
memory=true # RAM usage
gpu=true # GPU information
resolution=true # Screen resolution
de=true # Desktop environment
wm=true # Window manager
theme=true # GTK theme
icons=true # Icon theme
terminal=true # Terminal emulatorSet any field to false to hide it from the output.
Replace the default logo by editing ~/home/<user>/.config/nanofetch/logo.txt with your own ASCII art. Alternatively, specify a different logo file in ~/.config/nanofetch/settings.txt:
logo=custom-logo.txt # Path to custom logo file
theme=cyan # Default theme color
max_label_width=13 # Maximum width for info labels- Compiler: GCC 7+ or Clang 5+ with C++17 support
- System: Linux with
/procfilesystem - Optional: Standard Unix utilities for extended features (e.g.,
xrandrfor resolution detection)
Basic compilation command:
g++ -std=c++17 -O2 -o nanofetch nanofetch.cppFor development with debug symbols:
git clone https://github.com/tinyopsec/nanofetch.git
cd nanofetch
g++ -std=c++17 -g -Wall -Wextra -o nanofetch nanofetch.cpp
./nanofetchContributions are welcome and appreciated! Whether you want to fix bugs, add features, or improve documentation, feel free to contribute.
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Commit your changes
git commit -m 'Add amazing feature' - Push to your branch
git push origin feature/amazing-feature
- Open a Pull Request
- Follow C++17/20 standards for all code
- Maintain XDG Base Directory compliance
- Write clean, readable code without excessive inline comments
- Test on multiple distributions when possible
- Update documentation for new features
- Ensure backwards compatibility when modifying configuration files
- Automatic distro detection for Debian/Ubuntu
- Official
.deband.rpmpackage support - GPU temperature and usage statistics
- Network interface information (IP, bandwidth)
- Battery status and health for laptops
- Custom color definitions with hex codes
- Image/logo support via kitty graphics protocol or sixel
- Plugin system for custom information modules
- JSON export mode for scripting
- Multi-language support for system information
- Wayland-native display detection
- Disk usage and filesystem information
- Docker/container detection
- System load averages
- Color scheme preview tool
- Font Detection: Terminal font detection is limited and may not work on all terminal emulators
- Resolution Detection: Display resolution requires
xrandr(X11 only, Wayland support pending) - GTK Theme Info: Some GTK theme information requires
gsettingsto be installed - Multi-GPU Systems: GPU detection may only show the primary GPU on multi-GPU setups
Report issues at the GitHub issue tracker.
This project is licensed under the MIT License. See the LICENSE file for details.
- Inspired by Neofetch by Dylan Araps
- Inspired by Fastfetch
- Thanks to all contributors who help improve Nanofetch
- Special thanks to the Arch Linux and open-source communities
- π Report Bugs β Found a bug? Let us know
- π‘ Request Features β Have an idea? Share it with us
- β Star the Project β If you like Nanofetch, give it a star on GitHub
- π Fork & Customize β Make it your own and share your improvements
Made with β€οΈ by tech hat and the Nanofetch community

