# 🧠 LeenFetch [![Crates.io](https://img.shields.io/crates/v/leenfetch)](https://crates.io/crates/leenfetch) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![Build and Release](https://github.com/drunkleen/leenfetch/actions/workflows/release.yml/badge.svg)](https://github.com/drunkleen/leenfetch/actions/workflows/release.yml) ##### A fast, minimal, and customizable system information tool built in Rust β€” your alternative to Neofetch, for real power users. > ⚠️ **LeenFetch is under active development. Expect bugs and improvements regularly!** > > Want to help? Contributions, testing, and feedback are always welcome! ## πŸ’¬ Feedback & Issues Found a bug? Got a feature idea? Head over to the [issues](https://github.com/drunkleen/leenfetch/issues) or join the [discussions](https://github.com/drunkleen/leenfetch/discussions) page! ## πŸ“š Table of Contents - [πŸ“Έ Screenshots](#-screenshots) - [πŸš€ Features](#-features) - [πŸ“¦ Installation](#-installation) - [Install on Arch Linux (via AUR)](#install-on-arch-linux-via-aur) - [Install on Debian / Ubuntu (via .deb)](#install-on-debian--ubuntu-via-deb) - [Install on Fedora / RHEL (via .rpm)](#install-on-fedora--rhel-via-rpm) - [Install on Windows (via .zip)](#install-on-windows-via-zip) - [Install from crates.io](#install-from-cratesio) - [πŸ› οΈ Manual Installation (Build from Source)](#️-manual-installation-build-from-source) - [πŸ“₯ Using Piped Input](#-using-piped-input) - [βš™οΈ Configuration](#️-configuration) - [flags.ron](#flagsron) - [toggles.ron](#togglesron) - [print\_layout.ron](#print_layoutron) - [How to Edit](#how-to-edit) - [🎯 Roadmap](#-roadmap) - [🀝 Contributing](#-contributing) - [β˜• Support LeenFetch](#-support-leenfetch) - [πŸ“„ License](#-license) - [πŸ’‘ Inspiration](#-inspiration) ## πŸ“Έ Screenshots ## πŸš€ Features - ⚑ Blazing fast startup thanks to Rust - 🎨 Customizable output layout with colorized terminal output - 🧩 Modular design β€” enable or disable components via config - πŸ’Ύ Smart defaults but easily extendable - πŸ“¦ Detects installed packages, shell, GPU, DE/WM, and more - πŸ–ΌοΈ Custom ASCII art support and override via config - 🎨 Supports theme-based color profiles (`ascii_colors=distro`, etc.) - πŸ”Œ Simple config file: `~/.config/leenfetch/config.conf` - 🧡 Accepts piped ASCII input β€” use `fortune | cowsay | leenfetch` for dynamic text logos ## πŸ“¦ Installation ### Install on Arch Linux (via AUR) If you're on Arch Linux or an Arch-based distribution (like Manjaro), you can install LeenFetch from the AUR using an AUR helper like [`yay`](https://github.com/Jguer/yay): ```bash yay -S leenfetch ``` or ```bash git clone https://aur.archlinux.org/leenfetch.git cd leenfetch makepkg -si ``` ### Install on Debian / Ubuntu (via .deb) If you're on Debian, Ubuntu, or a Debian-based distribution, you can download and install the `.deb` package from the [GitHub Releases](https://github.com/drunkleen/leenfetch/releases): - AMD64 (x86_64) ```bash wget https://github.com/drunkleen/leenfetch/releases/download/v0.2.1/leenfetch-v0.2.1-debian-x86_64.deb sudo dpkg -i leenfetch-*.deb ``` - AArch64 (ARM64) ```bash wget https://github.com/drunkleen/leenfetch/releases/download/v0.2.1/leenfetch-v0.2.1-debian-aarch64.deb sudo dpkg -i leenfetch-*.deb ``` --- ### Install on Fedora / RHEL (via .rpm) If you're using Fedora, RHEL, or another RPM-based distro, you can install LeenFetch using the `.rpm` file from [GitHub Releases](https://github.com/drunkleen/leenfetch/releases): - AMD64 (x86_64) ```bash wget https://github.com/drunkleen/leenfetch/releases/download/v0.2.1/leenfetch-v0.2.1-REHL-x86_64.rpm sudo rpm -i leenfetch-*.rpm ``` --- ### Install on Windows (via .zip) If you're on Windows, download the latest `.zip` from the [GitHub Releases](https://github.com/drunkleen/leenfetch/releases): powershell: - AMD64 (x86_64) ```powershell Invoke-WebRequest -Uri "https://github.com/drunkleen/leenfetch/releases/download/v0.2.1/leenfetch-v0.2.1-windows-x86_64.zip" -OutFile "leenfetch-win.zip" Expand-Archive .\leenfetch-win.zip -DestinationPath . .\leenfetch-v0.2.1-windows-x86_64.exe ``` > Make sure you're in the same directory as `leenfetch.exe` when running the command. --- ### Install from crates.io Make sure you have [Rust & Cargo](https://rustup.rs/) installed: ```bash cargo install leenfetch ```` After that, just run: ```bash leenfetch ``` If you hit issues with `PATH`, try adding `~/.cargo/bin` to your shell: ```bash export PATH="$HOME/.cargo/bin:$PATH" ``` --- ### πŸ› οΈ Manual Installation (Build from Source) ```bash git clone https://github.com/drunkleen/leenfetch.git cd leenfetch cargo build --release ``` Add to PATH: ```bash cp target/release/leenfetch ~/.local/bin/ ``` Then run: ```bash leenfetch ``` --- ## πŸ“₯ Using Piped Input LeenFetch can accept piped input to use as the ASCII logo. This allows you to create dynamic, fun logos on the fly using other command-line tools. **Examples:** ```bash echo "Rustacean" | leenfetch ``` ```bash fortune | cowsay | leenfetch ``` LeenFetch will detect piped input via `stdin` and render the ASCII art above your system information. If no piped input is provided, it will fall back to your configured or auto-detected ASCII art. --- ## βš™οΈ Configuration On first run, LeenFetch will generate three config files in: ```bash # Linux ~/.config/leenfetch/ # Windows C:\Users\\AppData\Roaming\leenfetch\ ``` - `flags.ron` β€” Controls display and formatting options for each block. - `toggles.ron` β€” Controls which information blocks are shown or hidden. - `print_layout.ron` β€” Controls the order and labels of blocks in the output. Each file is heavily commented, so you can read the file itself for a full explanation of every option. ### flags.ron This file lets you fine-tune how each block of information is displayed. You can: - Choose which ASCII art and color palette to use. - Select how battery, disk, memory, and package info are shown. - Pick units, detail level, and formatting for each section. - Enable or disable features like CPU brand, temperature, shell version, etc. > If input is piped into `leenfetch`, the ASCII logo from `ascii_distro` or `custom_ascii_path` is ignored and the piped content is used instead. **Example:** ```ron ( // Select which distribution's ASCII art to display at the top. // Options: // "auto" - Automatically detect and use your current distribution's ASCII art. // - Use a specific distro's art (e.g., "arch", "ubuntu", "debian"). ascii_distro: "auto", ... ) ``` ### toggles.ron This file controls which blocks of information are shown in the output. Set each option to `true` to show that block, or `false` to hide it. **Example:** ```ron ( // Show the user@host title at the top of the output. // true - Display the title block (e.g., "snape@archbox"). // false - Hide the title block. show_titles: true, ... ) ``` ### print_layout.ron This file controls the order and labels of each block in the output. You can rearrange, remove, or relabel any section to customize your output. **Example:** ``` [ // The user@host title block (e.g., "snape@archbox"). (label: "Titles", field: "titles"), // The distribution (distro) information (e.g., "Arch Linux"). (label: "Distro", field: "distro"), ... ] ``` --- ### How to Edit - Open any of the `.ron` files in your favorite text editor. - Read the comments above each option for a full explanation. - Change values as you like, save, and re-run `leenfetch` to see your changes. For advanced details, see the comments in each config file or check the [wiki](https://github.com/drunkleen/leenfetch/wiki) (if available). ## 🎯 Roadmap | Feature | Status | | --------------------------- | ------------- | | Base module system | βœ… Done | | Config file loader | βœ… Done | | Custom layout tags | βœ… Done | | GPU/CPU/Mem/DE/WM detection | βœ… Done | | Linux support | βœ… Done | | Windows support | βœ… Done | | CLI override options | πŸ” Basic | | ASCII art & theming | πŸ” Basic | | Multi-Threading | πŸ”„ Planned | | macOS support | πŸ”„ Planned | | OpenBSD support | πŸ”„ Planned | | Plugin/module system | ❓ Maybe | | Fetch info over SSH | ❓ Maybe | --- ## 🀝 Contributing 1. Fork the repo 2. Create your branch (`git checkout -b feature/my-feature`) 3. Commit your changes (`git commit -m 'feat: add my feature'`) 4. Push to the branch (`git push origin feature/my-feature`) 5. Create a Pull Request We welcome clean PRs and documented modules! ✨ --- ## β˜• Support LeenFetch If you have found LeenFetch valuable and would like to contribute to its ongoing development, your support is greatly appreciated. You can show your appreciation by making a donation through [PayPal](https://www.paypal.com/paypalme/RDarvishifar) or any of the following cryptocurrency networks: - **Bitcoin (BTC):** `bc1qsmvxpn79g6wkel3w67k37r9nvzm5jnggeltxl6` - **ETH/BNB/MATIC (ERC20, BEP20):** `0x8613aD01910d17Bc922D95cf16Dc233B92cd32d6` - **USDT/TRON (TRC20):** `TGNru3vuDfPh5zBJ31DKzcVVvFgfMK9J48` - **Dogecoin (DOGE):** `D8U25FjxdxdQ7pEH37cMSw8HXBdY1qZ7n3` Your generous contribution ensures the continued improvement and maintenance of LeenFetch. ❀️ Thank you for supporting the project! πŸ™ --- ## πŸ“„ License [MIT](./LICENSE) License Β© [DrunkLeen](https://github.com/drunkleen) --- ## πŸ’‘ Inspiration * [Neofetch](https://github.com/dylanaraps/neofetch) * [Fastfetch](https://github.com/fastfetch-cli/fastfetch) * [Rust](https://www.rust-lang.org/) β€” the foundation of LeenFetch