Thanks to visit codestin.com
Credit goes to github.com

Skip to content
/ ffetch Public

F-Fetch is Fast and Minimal. Written in Rust. It's very simple, designed so you can pick it up and replace it.

License

Notifications You must be signed in to change notification settings

0l3d/ffetch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ F-Fetch: Fast, Minimal & Rust-Powered System Fetcher

F-Fetch is a very fast, minimal terminal system fetcher written 100% in Rust.
It is highly customizable - allowing you to add your own syntax and integrate your own features.
At its core, it works simply and the codebase is easy to understand.


โš™๏ธ Features ๐Ÿ“œ Description
๐Ÿฆ€ Rust Written 100% in Rust
๐ŸŽจ Flexibility Highly flexible - customize the appearance as you wish
โšก Efficiency Despite flexibility, uses very little space and system resources
๐Ÿ”ง Customization Offers a wide range of customization options

image

Advanced Config

image

My Own Config


โš™๏ธ Installation & Configuration

For Arch Linux

๐Ÿ“ฆ Install via AUR

paru -S ffetch
paru -S ffetch-git

Install via makepkg

git clone --depth=1 https://github.com/0l3d/ffetch.git
cd ffetch
makepkg -si

๐Ÿ“ฆ Install via Cargo

cargo install ffetch

๐Ÿš€ Installation Script

bash <(curl -s https://raw.githubusercontent.com/0l3d/ffetch/master/install.sh)

๐Ÿƒ Run F-Fetch

ffetch

๐Ÿ“š Use as Library

You can also use F-Fetch as a library in your Rust projects.

Check: crates.io/ffetch
Docs: docs.rs/ffetch


Dependencies

If u're using getTerm, u need to make sure xprop is installed. If getMonitor fails, it uses xrandr.

For GPU and disk information, I use standard Linux tools like lspci (from pciutils) and df (from coreutils).

F-Fetch Configuration & Examples

F-Fetch Components List

  • getUsername
    Returns the current Username.

  • getKernel
    Returns the Kernel Version.

  • getCpu
    Returns CPU Information.

  • getMemory
    Returns Memory Usage.

  • getHostname
    Returns the system Hostname.

  • getOsName
    Returns the Operating System Name.

  • getDesktop
    Returns the Desktop Environment or Window Manager.

  • getArch
    Returns the system Architecture (e.g., x86_64).

  • getPlatform
    Returns the system Platform information.

  • getUptime
    Returns the system Uptime.

  • getTerm
    Returns the current Terminal Emulator.

  • getGpu
    Returns the primary GPU Information.

  • getMGpu
    Returns the secondary GPU Information (if any).

  • getShell
    Returns the current Shell.

  • getDisk(mountpoint)
    Returns the Disk Usage information for the specified mount point.

  • getMonitor(monitorindex)
    Returns the Monitor information for the specified monitor index.

  • getPackages (emerge, flatpak, apt, dnf, yum, pacman, zypper, nix-env, xbps-query)
    Returns the number of installed packages.

  • getLocale
    Returns your system locale (e.g., en_US).

  • getTerm
    Returns your terminal emulator.

  • getBackend
    Returns your windowing system.

  • getInit
    Returns your system init (e.g, runit-init).

  • getQT or getGTK
    Returns your theme from environment variables.

  • getBoardVendor, getBoardName and getBoardVersion
    Returns your system motherboard informations. (e.g, MSI)

F-Fetch Style ANSI Color Codes Reference

๐ŸŽจ Foreground Colors (Text Colors)

Placeholder ANSI Code Color Description
fg.black \x1b[30m โšซ Black text
fg.red \x1b[31m ๐Ÿ”ด Red text
fg.green \x1b[32m ๐ŸŸข Green text
fg.yellow \x1b[33m ๐ŸŸก Yellow text
fg.blue \x1b[34m ๐Ÿ”ต Blue text
fg.magenta \x1b[35m ๐ŸŸฃ Magenta text
fg.cyan \x1b[36m ๐Ÿ”ต Cyan text
fg.white \x1b[37m โšช White text

โœจ Bright Foreground Colors

Placeholder ANSI Code Color Description
fg.bright_black \x1b[90m โšซ Bright black (gray) text
fg.bright_red \x1b[91m ๐Ÿ”ด Bright red text
fg.bright_green \x1b[92m ๐ŸŸข Bright green text
fg.bright_yellow \x1b[93m ๐ŸŸก Bright yellow text
fg.bright_blue \x1b[94m ๐Ÿ”ต Bright blue text
fg.bright_magenta \x1b[95m ๐ŸŸฃ Bright magenta text
fg.bright_cyan \x1b[96m ๐Ÿ”ต Bright cyan text
fg.bright_white \x1b[97m โšช Bright white text

๐ŸŽญ Background Colors

Placeholder ANSI Code Color Description
bg.black \x1b[40m โšซ Black background
bg.red \x1b[41m ๐Ÿ”ด Red background
bg.green \x1b[42m ๐ŸŸข Green background
bg.yellow \x1b[43m ๐ŸŸก Yellow background
bg.blue \x1b[44m ๐Ÿ”ต Blue background
bg.magenta \x1b[45m ๐ŸŸฃ Magenta background
bg.cyan \x1b[46m ๐Ÿ”ต Cyan background
bg.white \x1b[47m โšช White background

๐ŸŒŸ Bright Background Colors

Placeholder ANSI Code Color Description
bg.bright_black \x1b[100m โšซ Bright black (gray) background
bg.bright_red \x1b[101m ๐Ÿ”ด Bright red background
bg.bright_green \x1b[102m ๐ŸŸข Bright green background
bg.bright_yellow \x1b[103m ๐ŸŸก Bright yellow background
bg.bright_blue \x1b[104m ๐Ÿ”ต Bright blue background
bg.bright_magenta \x1b[105m ๐ŸŸฃ Bright magenta background
bg.bright_cyan \x1b[106m ๐Ÿ”ต Bright cyan background
bg.bright_white \x1b[107m โšช Bright white background

๐Ÿ“ Text Styles

Placeholder ANSI Code Style Description
t.bold \x1b[1m Bold Make text bold
t.dim \x1b[2m Dim Make text dimmed
t.italic \x1b[3m Italic Make text italic
t.underline \x1b[4m Underline Underline text
t.inverse \x1b[7m Inverse Swap foreground/background
t.hidden \x1b[8m Hidden Hide text
t.strike \x1b[9m Strike Strike through text
t.bold_off \x1b[21m Normal Turn off bold
t.underline_off \x1b[24m Normal Turn off underline
t.inverse_off \x1b[27m Normal Turn off inverse

๐Ÿ”„ Reset

Placeholder ANSI Code Function Description
all.reset \x1b[0m Reset Reset all formatting

๐Ÿ› ๏ธ F-Fetch Configuration Examples

(Advanced, Middle, Minimal)

# ๐ŸŒŸ Advanced config
echo "โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ " t.underline t.bold fg.yellow getUsername all.reset " โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ"
echo "โ”‚  " t.underline fg.bright_red "๏‚  System Information :"
echo "โ”‚    " fg.white t.bold "๎น OS: " all.reset fg.green getOsName " " t.italic fg.yellow t.bold getArch
echo "โ”‚    " fg.white t.bold "๓ฐ‡… Host: " all.reset fg.green getBoardName " " (getBoardVersion)
echo "โ”‚    " fg.white t.bold "๏…ผ Kernel: " all.reset fg.green getKernel
echo "โ”‚    " fg.white t.bold "๏ˆณ Hostname: " all.reset fg.green getHostname
echo "โ”‚    " fg.white t.bold "๎ตต Packages: " all.reset fg.green getPackages
echo "โ”‚    " fg.white t.bold "๏†ซ Locale: " all.reset fg.green getLocale
echo "โ”‚    " fg.white t.bold "๎ฝฌ Init: " all.reset fg.green getInit
echo "โ”‚    "
echo "โ”‚  " t.underline fg.bright_green "๓ฐ‹Š Hardware Information :"
echo "โ”‚    "
echo "โ”‚    " fg.yellow t.bold "๏’ผ CPU: " all.reset fg.white getCpu
echo "โ”‚    " fg.yellow t.bold "๓ฐน GPU: " all.reset fg.white getGpu
echo "โ”‚    " fg.yellow t.bold "๎ฟ… Memory: " all.reset fg.white getMemory fg.yellow " MB"
echo "โ”‚    " fg.yellow t.bold "๏ƒ‡ Root: " all.reset fg.white getDisk(/)
echo "โ”‚    "
echo "โ”‚  " t.underline fg.bright_blue "๏„ˆ Desktop Information :"
echo "โ”‚    "
echo "โ”‚    " fg.magenta t.bold "๓ฐชซ DE/WM: " all.reset fg.white getDesktop " " (getBackend)
echo "โ”‚    " fg.magenta t.bold "๏€— Uptime: " all.reset fg.white getUptime
echo "โ”‚    " fg.magenta t.bold "๓ฐงจ Primary: " all.reset fg.white getMonitor(0)
echo "โ”‚    " fg.magenta t.bold "๎ฏ‡ Shell: " all.reset fg.white getShell
echo "โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ"

ascii = "/home/getUsername/.config/ffetch/ascii.txt"
ascii_color = "fg.green"
# โšก Middle config
echo t.bold fg.yellow getUsername fg.black "@" fg.yellow getHostname
echo fg.blue "Distro: " fg.yellow t.bold getOsName
echo fg.blue "Platform: " fg.yellow t.bold getPlatform
echo fg.blue "Kernel: " fg.yellow t.bold getKernel
echo fg.blue "Memory: " fg.yellow t.bold getMemory " MB"
echo fg.blue "CPU: " fg.yellow t.bold getCpu
echo fg.blue "GPU: " fg.yellow t.bold getGpu
echo fg.blue "Packages: " fg.yellow t.bold getPackages
echo fg.blue "Disk: " fg.yellow t.bold getDisk(/)
echo fg.blue "Desktop: " fg.yellow t.bold getDesktop
echo fg.blue "Primary: " fg.yellow t.bold getMonitor(0)
echo fg.blue "Uptime: " fg.yellow t.bold getUptime
echo fg.blue "Terminal: " fg.yellow t.bold getTerm
echo fg.blue "Shell: " fg.yellow t.bold getShell

ascii = "/home/getUsername/.config/ffetch/ascii.txt"
ascii_color = "fg.cyan"
# ๐Ÿ”ฅ Minimal config
echo getUsername "@" getHostname
echo "Distro: " getOsName
echo "Platform: " getPlatform
echo "Kernel: " getKernel
echo "Memory: " getMemory " MB"
echo "CPU: " getCpu
echo "GPU: "  getGpu
echo "Packages: " getPackages
echo "Disk: " getDisk(/)
echo "Desktop: " getDesktop
echo "Primary: " getMonitor(0)
echo "Terminal: " getTerm
echo "Uptime: "  getUptime
echo "Shell: " getShell

ascii = "/home/getUsername/.config/ffetch/ascii.txt"
ascii_color = "fg.cyan"

โ˜• Support the project

If you like F-Fetch and want to support the development, consider buying me a coffee:

๐Ÿ‘‰ https://buymeacoffee.com/oled

About

F-Fetch is Fast and Minimal. Written in Rust. It's very simple, designed so you can pick it up and replace it.

Resources

License

Stars

Watchers

Forks

Packages

No packages published