Warning
Parts of this README refers to the v2.0.0-beta1 release.
Some features such as the plugin system may differ from the upcoming stable release.
A modular information fetching (neofetch-like) tool, which its focus point is the performance and customizability
- Works as a terminal program, GTK3 GUI app, or native Android widget
- Modular design - fetch anything through
$<>tags and plugins - Super lightweight
- Easy to configure and script
- Optional dependencies only, no runtime bloat (as like as fastfetch
- Plugin system for adding new info sources
Customfetch has no required dependencies unless you build the GUI app version.
For compiling from source, all you need is a C++20 compiler (C++17 might still work).
Packages for running the GUI app:
gtk3gtkmm3
Optional packages that will make customfetch system query faster:
dconf: Alternative to the slowgsettingscommandlibxfce4util: Query XFCE4 version fasterwayland-client: Library for getting the Wayland compositor faster
Grab the latest .deb file from the releases page.
# Binary
yay -S customfetch-bin # Terminal only
yay -S customfetch-gui-bin # GUI version
# Compile from source (stable)
yay -S customfetch # Terminal only
yay -S customfetch-gui # GUI version
# Unstable / git versions
yay -S customfetch-git # Terminal only
yay -S customfetch-gui-git # GUI versionDownload the .tar.gz from releases.
It includes a /usr folder so you can install it manually or through your package manager.
Moved to its own repo:
https://github.com/Toni500github/customfetch-android-app
git clone --depth=1 https://github.com/Toni500github/customfetch
cd customfetch
# DEBUG=0 for release build
# GUI_APP=0 or 1 for terminal or GUI app
make install DEBUG=0 GUI_APP=0
customfetchThis is only an explanation about tags and preview, that can be always found in the documentation.
Here's an example using my config

[config]
# The array for displaying the system/fetched infos
layout = [
"$<title>",
"$<title.sep>",
"${auto}OS: $<os.name> $<system.arch>",
"${auto}Host: $<system.host>",
"${auto}Kernel: $<os.kernel>",
"${auto}Uptime: $<os.uptime>",
"${auto}Terminal: $<user.terminal>",
"${auto}Shell: $<user.shell>",
"${auto}Packages: $<os.pkgs>",
"${auto}Theme: $<theme.gtk.all.name>",
"${auto}Icons: $<theme.gtk.all.icons>",
"${auto}Font: $<theme.gtk.all.font>",
"${auto}Cursor: $<theme.cursor>",
"${auto}WM: $<user.wm.name> $<user.wm.version>",
"${auto}DE: $<user.de.name> $<user.de.version>",
"$<auto.disk>",
"${auto}Swap: $<swap>",
"${auto}CPU: $<cpu>",
"${auto}GPU: $<gpu>",
"${auto}RAM: $<ram>",
"",
"$<colors>", # normal colors palette
"$<colors.light>" # light colors palette
]| Tag | Description |
|---|---|
$<info.module> |
Print a module info (for example $<cpu> or $<github.user.followers>) |
${color} |
Set output color (hex or ANSI escape colors) |
$(bash command) |
Print the output of a shell command (! prefix if in ASCII art or big ANSI escape color outputs) |
$[x,y,if_equal,if_not] |
Conditional tag to print based on comparision |
$%n1,n2% |
Colored percentage between two numbers (prefix ! to invert colors) |
Run customfetch -w or man customfetch for full syntax reference.
Escape < or & when needed (especially for GUI compatibility).
Thanks to plugins, customfetch is able to fetch beyond system information and be able to fetch anything — weather, GitHub data, APIs, etc.
You can easily install plugins from repositories using cufetchpm.
For example:
$ cufetchpm install https://github.com/Toni500github/customfetch-plugins-githubFor more plugin managing, such as enabling/disabling or removing them, refer to the cufetchpm --help guide.
Plugins are just shared libraries.
There’s a guide here that walks you through writing one.
- release v2.0.0
- work on the android app (later)
I would like to thanks:
-
my best-friend BurntRanch,
For helping me initialize this project and motivate me to keep going
And also for making my customizability idea come true with the first prototype of the parser. -
saberr26,
For making the project logos -
the Better C++ discord server,
For helping me improving the codebase and helping me with any issues I got,
And also for being patient with me XD -
{fmt} and toml++ libraries
Our favorite libraries that me and BurntRanch uses -
this string switch-case library,
Really amazing, thanks for making this
I hope you'll like customfetch, and also checkout TabAUR, our other project that was made before customfetch.
Don't forgot sdl_engine too ;)





