Neofetch In Linux – Snap cool screenshots of your Linux setup

Neofetch In Linux

Neofetch in Linux is probably the most popular program used to display system information in the terminal and it is extensively used in subreddits like r/unixporn. In this module, we will learn how to install and use neofetch in 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.

Neofetch
Neofetch

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

Incase 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 needd :

$ make PREFIX=/usr/local install

Display images instead of ASCII Art with Neofetch in 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
Neofetch With Image
Neofetch With Image

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
Neofetch with -L flag featuring Arch(Host) and Debian(LXC Container)
Neofetch with -L flag featuring Arch(Host) and Debian(LXC Container)
  • –ascii_distro flag : This flag let’s 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
Change ASCII Art
Change ASCII Art
  • –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
Sourcing ASCII ART With Neofetch
Sourcing ASCII ART With Neofetch

Conclusion

As we saw, neofetch in Linux is a very versatile command and can be customized to it’s very limits. Here, we have only touched the surface but we highly encourage playing around with the command to discover more customization options of their own.