Enhance Your Terminal Display with Fastfetch

Polished

© Lead Image © Kirillm, 123RF.com

© Lead Image © Kirillm, 123RF.com

Article from Issue 304/2026
Author(s):

Almost all Linux graphical desktop environments integrate programs that provide users with system information. Fastfetch lets you route important system information to the terminal.

Every desktop environment has a terminal. In addition, a large number of consoles under independent development are available for various graphical user interfaces. What they all have in common is their almost identical look, which typically just displays the hostname, the currently logged-in user, and a prompt. Fastfetch [1] lets you add system information to the terminal, enhancing the look as well as the feature scope.

Fastfetch takes a similar approach to Neofetch [2], which is no longer actively maintained. When called, Fastfetch collects defined system information and displays it at the prompt in a terminal. It offers granular configuration options (e.g., you can add a wallpaper to brighten up the appearance). Besides visual effects, Fastfetch also lets you change the details of how system information is displayed. In addition to providing basic information (e.g., CPU, RAM size, and kernel version), Fastfetch can also show you GPU-specific information relating to the installed software. On top of all that, Fastfetch impresses with its speed. In contrast to Neofetch, essentially a Bash script comprising more than 11,000 lines, Fastfetch, written primarily in C, runs far faster.

The Fastfetch developers offer a huge number of binary packages on the application's GitHub page [3]. Besides the numerous binary packages for individual Linux package managers (available for various hardware architectures), you can also grab several packages for different BSD derivatives. There are also a handful of binary packages and data archives for a couple of non-Unix proprietary operating systems. Fastfetch has already made its way into the software repositories of a number of popular Linux distributions, although the versions are often outdated. Because Fastfetch is still under active development, it makes sense to retrieve it from the GitHub page.

Usage

Fastfetch is profile-oriented, which means that you can use the configuration files to customize the tool to meet your needs. The developers offer several presets with different display options. To output a list of available presets, use

fastfetch --list-presets

The configuration files, identified only by a number in the file name, then appear one below the other in the terminal window. In addition to this, Fastfetch suggests a number of presets that are modeled on other terminal-based system information tools such as Neofetch, Archey, or screenFetch.

To launch Fastfetch with one of the preset configurations, just type

fastfetch -c examples/<number>

at the prompt. As shown in Figure 1, you can use these preset configurations to display system information for a selection of individual components, including graphics drivers, hardware information, distribution details, and general system information, such as details about the kernel, RAM, shell, or window manager.

Figure 1: Fastfetch comes with various predefined profiles for displaying system information.

Custom Profiles

You can create your own profile files using plain text files. First, you need to generate a configuration file as a template using the command from Listing 1, line 1. The newly created config file (named config.jsonc) is stored in the /home/<user>/.config/fastfetch directory. Next, change to the directory and open the config file with your favorite text editor. In the file, you will find the individual modules (Figure 2) listed one below the other – Fastfetch uses these modules to display system information.

Listing 1

Creating a Custom Profile

01 $ fastfetch --gen-config
02 $ fastfetch -c all
03 $ fastfetch -c /path/to/configuration file
Figure 2: You can configure Fastfetch's technical settings by enabling and disabling modules.

If you do not edit the configuration file and then call Fastfetch without defining any parameters, it acts as the settings file for the program. All of the modules it lists are displayed in the terminal window. Fastfetch comes with far more modules than those specified in the default configuration file. To run Fastfetch with all the display options, use the command in Listing 1, line 2.

You can hide or show system information by removing the corresponding individual modules from the configuration file or adding new entries (which must be quoted and comma-separated). Alternatively, you can comment out a module by prepending two slashes; the module stays in the list but is set to inactive, which makes it easy to reinstate the module quickly if needed.

I recommend listing one module per line in your configuration file. Although the configuration file will happily accept two or more modules in a single line, it will always display each module on a different line when outputting the system information. Consequently, listing multiple modules in one line of the configuration file only reduces clarity without any real benefits.

After completing the module configuration, name and save your file; you can choose a new path to save the file if desired. Then, you can call the program with your settings file by entering the command from line 3 in Listing 1.

Fine-Tuning

In addition to displaying system information, you can also insert graphical characters, images, and symbols in Fastfetch. There are a number of templates in the presets to help you with this. You can also vary the way that individual modules are displayed, such as showing the CPU or RAM usage in the form of a bar chart (Figure 3). The Fastfetch developers have provided detailed documentation on the individual parameters and how to use them on the project's GitHub page [4].

Figure 3: Thanks to the detailed configuration options, Fastfetch can even display charts to visualize the utilization of individual system components.

If you want to add images or other graphic symbols such as frames to the display without using the templates, you will need to add them to the display and logo sections of the configuration file. To integrate a logo and adjust its color, use the --logo parameter along with a path to the image file. The image must be in a popular graphics format that is supported by your choice of terminal emulator. If an image is not displayed despite correct syntax in the settings file, the --show-errors parameter outputs an error log.

Once you have configured Fastfetch, you can automatically launch the program in your terminal. Through their configuration dialogs for individual profiles, terminal emulators in common desktop environments are also capable of executing a command immediately upon opening the terminal instead of displaying the standard prompt and then showing its output. As a result, you can have the preconfigured Fastfetch output automatically pop up to greet you every time you open the terminal.

Buy this article as PDF

Download Article PDF now with Express Checkout
Price $2.95
(incl. VAT)

Buy Linux Magazine

Related content

  • System in a Nutshell

    Neofetch displays system information about your hardware, operating sytem, and desktop settings in visually appealing output perfect for system screenshots.

  • FOSSPicks

    Nate explores the top FOSS including the last word in file compression, a superb Mastodon client, a Freeciv fork, and a random task selector.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News