Neofetch in Linux is probably the most popular open source program used to display system information in the terminal, and it is extensively used to take screenshot and post in subreddits like r/unixporn. In this module, we will learn how to install and use neofetch on Linux to display our system information and also touch a bit on customizing the same.
Neofetch in Linux – Quick Introduction
Neofetch is a shell script that requires bash 3.2+ to function. By default, it displays an ASCII art of your Distro’s logo. Neofetch supports almost 150 different operating systems. From Linux to Windows, all the way to more obscure operating systems like Minix, AIX, and Haiku.
Besides the ASCII Art, it also displays some important specifications about your distro like OS Name, Kernel, Shell, etc.
Installing Neofetch on Linux
Installing neofetch is as easy as it gets. You can install neofetch from your distro’s package manager, as well as built it from source after fetching the code from the GitHub repository.
1. Using Package Managers
On Ubuntu/Debian
$ sudo apt install neofetch
On Fedora / RHEL / CentOS / Mageia / OpenMandriva
$ sudo dnf install neofetch
MacOS (Homebrew)
$ brew install neofetch
Arch Linux
$ sudo pacman -S neofetch
Android (Termux)
$ pkg install neofetch
In case you still can’t find your Distro, refer to the Installation Guide for more.
2. Installing Neofetch From Source
To install from the GitHub repository, first clone it using the git command:
$ git clone https://github.com/dylanaraps/neofetch
Now cd into the directory and install neofetch using the MakeFile
$ cd neofetch
$ ls
CONTRIBUTING.md LICENSE.md Makefile neofetch* neofetch.1 README.md
$ sudo make install
Note : For macOS, you need :
$ make PREFIX=/usr/local install
Display images instead of ASCII Art with Neofetch on Linux
You can replace the ASCII Art with a PNG image. Note that for terminals with inbuilt graphics like iterm2, kitty, terminology, etc, you don’t need any additional dependencies. However, for other terminal types you would need w3m-img. You can install it with :
$ sudo apt install w3m w3m-img imagemagick
Next, you need to identify the backend you need to use. You can get a list of available options from :
$ neofetch --help | grep backend
--backend backend Which image backend to use.
--ascii source Shortcut to use 'ascii' backend.
--caca source Shortcut to use 'caca' backend.
--chafa source Shortcut to use 'chafa' backend.
--iterm2 source Shortcut to use 'iterm2' backend.
--jp2a source Shortcut to use 'jp2a' backend.
--kitty source Shortcut to use 'kitty' backend.
--pot source Shortcut to use 'pot' backend.
--pixterm source Shortcut to use 'pixterm' backend.
--sixel source Shortcut to use 'sixel' backend.
--termpix source Shortcut to use 'termpix' backend.
--tycat source Shortcut to use 'tycat' backend.
--w3m source Shortcut to use 'w3m' backend.
As you can see, we have dedicated backends for kitty(kitty), terminology(tycat), iterm2(iterm2), etc while for the rest we can use w3m backend.
To display an image, type in :
$ neofetch --backend <name> --source /path/to/image
For Instance, I use kitty terminal, so I would go :
$ neofetch --backend kitty --source ~/.local/share/icons/logo/Arch-linux-logo.png
Miscellaneous Tweaks for Neofetch
There are certain custom flags that you can use to customize your neofetch output. We’ll touch on some of the flags which might be of interest.
- -L flag : This flag suppresses the system information and prints only the ASCII logo of the distro
- –ascii_distro flag : This flag lets you change the ASCII Art to that of a different distro’s. You can get a list of all the available options using :
$ neofetch -h
...
...
--ascii_distro distro Which Distro's ascii art to print
NOTE: AIX, Alpine, AlterLinux, Anarchy, Android, Antergos, antiX,
"AOSC OS", "AOSC OS/Retro", Apricity, ArcoLinux, ArchBox,
ARCHlabs, ArchStrike, XFerience, ArchMerge, Arch, Artix, Arya,
Bedrock, Bitrig, BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD,
BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS, Chapeau,
Chrom, Cleanjaro, ClearOS, Clear_Linux, Clover, Condres,
Container_Linux, CRUX, Cucumber, Debian, Deepin, DesaOS, Devuan,
DracOS, DarkOs, DragonFly, Drauger, Elementary, EndeavourOS, Endless,
EuroLinux, Exherbo, Fedora, Feren, FreeBSD, FreeMiNT, Frugalware,
Funtoo, GalliumOS, Garuda, Gentoo, Pentoo, gNewSense, GNOME, GNU,
GoboLinux, Grombyang, Guix, Haiku, Huayra, Hyperbola, janus, Kali,
KaOS, KDE_neon, Kibojoe, Kogaion, Korora, KSLinux, Kubuntu, LEDE,
LFS, Linux_Lite, LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS,
Mandriva, Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib,
Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner, NuTyX,
OBRevenge, OpenBSD, openEuler, OpenIndiana, openmamba, OpenMandriva,
OpenStage, OpenWrt, osmc, Oracle, OS Elbrus, PacBSD, Parabola,
Pardus, Parrot, Parsix, TrueOS, PCLinuxOS, Peppermint, popos,
Porteus, PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix,
Raspbian, Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan,
Regata, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific,
Septor, SereneLinux, SharkLinux, Siduction, Slackware, SliTaz,
SmartOS, Solus, Source_Mage, Sparky, Star, SteamOS, SunOS,
openSUSE_Leap, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails,
Trisquel, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio,
Ubuntu, Venom, Void, Obarun, windows10, Windows7, Xubuntu, Zorin,
and IRIX have ascii logos
NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants.
NOTE: Use '{distro name}_old' to use the old logos.
NOTE: Ubuntu has flavor variants.
NOTE: Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME,
Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors.
NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android,
Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola,
Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS,
Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian,
postmarketOS, and Void have a smaller logo variant.
NOTE: Use '{distro name}_small' to use the small variants.
...
...
The syntax would be :
$ neofetch --ascii_distro <Distro Name>
For example, to replace my usual Arch Linux Logo with neofetch in Linux with DarkOS’s logo, the syntax would be :
$ neofetch --ascii_distro DarkOS
- –source flag : You can also specify your own ASCII ART to be used with neofetch. Save your ASCII ART in a text file and use the flag as such :
$ neofetch --source /path/to/file
Wrapping Up: Switch to Fastfetch
Fastfetch is another command-line system information tool, written in the C programming language, which can be installed on different Linux distributions since Neofetch development has been discontinued by the original maintainer. It’s repository on GitHub has also been archived, so it is probably the best option to switch to another FOSS alternative. Hyfetch is another alternative for this FOSS app, since it is a fork of the original Neofetch.