๐ 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 |
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). -
getQTorgetGTK
Returns your theme from environment variables.
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 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
)
)
# โก Middle config
)
)
# ๐ฅ Minimal config
)
)
โ๏ธ Installation & Configuration
๐ฆ Install via Cargo
# Install from crates.io
๐ Installation Script
# Run Installation Script
๐ Run F-Fetch
๐ Use as Library
You can also use F-Fetch as a library in your Rust projects:
๐ฅ Add to your project
Or add to your Cargo.toml:
[]
= "0.5.2"
๐ ๏ธ Example Usage
use *;
โข๏ธ All Possible Problems and Solutions
You're clearly not on Linux:
you are not using linux
Failed to run uname โ really? Make sure uname exists:
uname command error
Failed to run uptime โ seriously? Check if uptime is available:
uptime command error
Couldn't detect your GPU with lspci. Are you using WSL or something else?
Failed to execute lspci, not found.
Check your ~/.config/ffetch/ffetch.conf file and make sure ascii="" is set correctly:
Failed to read file
Check the getMonitor() function in your configuration. If you're only using one monitor, either remove getMonitor(1) or add your third monitor.
index out of bound
If the disk is not showing up, check getDisk() in the config and make sure it's using a valid mountpoint, like getDisk(/).
โ Support the project
If you like F-Fetch and want to support the development, consider buying me a coffee: