Linux Commands

What is Neofetch for Linux?

Neofetch is a super-convenient command-line utility used to fetch system information within a few seconds. It is cross-platform, open-source, and it displays everything ranging from your system’s uptime to the Linux kernel version. This guide will explain the working of Neofetch, its features, and the method of installing it.

Working & Features

This CLI utility is written in Bash, so you will need to run and use it on a Bash Terminal. That, however, does quite the opposite of limiting its portability. Neofetch can run on more than 150 operating systems including Windows, Linux, Mac OS X – basically anywhere you run Bash, you can run Neofetch.

On first use, system information will appear next to your operating system’s logo printed in ASCII. That is customizable to any ASCII image of your preference. Neofetch further takes its configurability to a higher level by allowing you to change which, where, and when information should display. This extent of customizability is exactly what puts Neofetch above other CLI system information tools.

Neofetch equips its users with 50+ output configurations allowing them to show system stats as per their wishes. It is fast, highly customizable, thorough in its output, and prints a fully colored image.

Installing Neofetch

The installation process is quite simple and easy, as you will see shortly. If you are running Ubuntu 16.10 or lower, you can get Neofetch from Ubuntu Software directly without a fuss. You can also do it through the terminal, as shown below.

Firstly, adding the application repository is necessary, and only then we can install it. To do that, run the following commands:

$ sudo add-apt-repository ppa:dawidd0811/neofetch

$ sudo apt update

$ sudo apt install neofetch

If you use Ubuntu 17.04 or a higher version, you only need to run the last command out of the three mentioned above.

Arch Linux users should use the command below:

$ sudo pacman -S neofetch

On Fedora 30, 31, or 32:

$ sudo dnf install neofetch

On Debian Sid, 9, 10, or 11:

$ sudo apt-get install neofetch

Finally, on openSUSE, you can use the following command:

$ sudo zypper install neofetch

Using Neofetch

Having installed Neofetch on your operating system, you can now start using it to display system info through a short terminal command. Run the command below and watch Neofetch work its magic for you.

$ neofetch

The default output should look something like this.

So, by default Neofetch will show you the following list of items:

  • Name of the operating system
  • Name and model of the laptop
  • Kernel version
  • Uptime (how long the system has been running)
  • Total number of packages (installed by default and other)
  • Shell and its version
  • Screen resolution
  • DE (desktop environment)
  • WM (window manager)
  • Theme of the window manager
  • Current system theme
  • System icons
  • Terminal
  • CPU details
  • GPU details
  • System memory (RAM)

Configuring Neofetch

As I have stated before, Neofetch is extremely customizable. You can change basically everything about its output. Let’s get a deeper understanding of how you can set your preferences and configure Neofetch in different ways.

If you want to change which Linux distribution or, more generally, which operating system’s logo appears in a colorful print upon invoking Neofetch, you can use the following command. Do note that you do not have to install these operating systems or distributions to be able to display their logo next to system information.

$ neofetch --ascii_distro_windows

Here is the output I got:

Pretty cool, indeed. You can do the same thing for any other OS/distro as well. For example, run the following command to display Debian’s logo:

$ neofetch --ascii_distro_debian

As promised earlier, you can also display custom images of your choice instead of operating system logos. Let’s learn how to do that.

First off, you are going to install some package dependencies, namely w3m-image and Imagemagick. w3m-image is used to display pictures and Imagemagick is necessary to create thumbnails. These are oftentimes handily made available in the package manager of most distributions. For instance, use the following command to install them both:

$ sudo apt install w3m-img imagemagick

You will also need a terminal that has support for \033[14t, xwininfo+xprop/xpdyinfo, or xdotool. Take a look at the following list to see which terminals support w3m-img:

  • Konsole
  • Gnome-terminal
  • Terminator
  • st
  • Urxvt
  • Xterm
  • Termite
  • Xfce4-Terminal

In case you have Terminology, iTerm, or kitty emulators installed on your PC, you do not need to install w3m-img at all.

Once everything is done and ready, run the following command to replace the OS logo with a custom image of your choice:

$ neofetch -w3m home/sk/Desktop/cat.png

Simply replace the filename and the address with your file’s details and you are good to go.

Moving on, you can set Neofetch to start at terminal boot-up. So, if you want Neofetch to display your system information automatically every time you launch the terminal or open a new tab, run the following command:

$ nano ~/.bashrc

This will allow you to edit the bashrc file. Next, add the line below at the end:

$ neofetch

Finally, you can save the file and quit. Also, you can apply the newly made changes with the help of the following command:

$ source ~/.bashrc

And with that done, you will now see Neofetch display all your system’s details every time you open Terminal or a new tab.

Next, we have customizing options, and before we get into them, let me tell you there is a ton of them. It would be foolish to try to show each and every one of them in this article, but we are going to list some useful ones, nonetheless.

The disable operator can be used to remove/hide a certain piece of information from Neofetch’s output. For example, if you wish to remove memory from the list, use the following command:

$ neofetch --disable memory

Now you as can see that the entry for memory is disabled. You can do the same for any other entry as well. If you want to further learn how you can customize Neofetch to your liking, use the following command to see a list of options:

$ neofetch --help

Another thing worth mentioning is that upon starting Neofetch for the first time, a configuration file is created at the address: $HOME /.config / neofetch / config.conf

You can make changes to this file to permanently enable or disable particular system information details. The same configuration file will work on newer, updated versions of Neofetch as well, so you will not have to edit it every single time.

Conclusion

We covered a lot of ground on Neofetch in this article– what it is, how it works, and what you can do with it. It is an excellent command-line system info utility and works smoothly on numerous platforms. It is highly modifiable and easy to use. All in all, great tool, you should consider getting it if you need to review system information frequently.

About the author

Zeeman Memon

Hi there! I'm a Software Engineer who loves to write about tech. You can reach out to me on LinkedIn.