LinuxCommandLibrary

fastfetch

Display system information and hardware details

TLDR

Display system information

$ fastfetch
copy

Display full system information with all the modules enabled
$ fastfetch [[-c|--config]] all
copy

Load a custom configuration file
$ fastfetch [[-c|--config]] [path/to/config_file]
copy

Fetch a specific structure
$ fastfetch [[-s|--structure]] [os:kernel:de:cpu:gpu]
copy

Use a specific logo
$ fastfetch [[-l|--logo]] [logo]
copy

Display system information without a logo
$ fastfetch [[-l|--logo]] none
copy

Use a specific color for the keys and title
$ fastfetch --color [blue]
copy

SYNOPSIS

fastfetch [OPTIONS...]

PARAMETERS

-h, --help
    Displays the help message and exits.

-v, --version
    Displays version information and exits.

-c <file>, --config <file>
    Uses a custom configuration file instead of the default.

-s <key>=<value>, --set <key>=<value>
    Overrides a configuration key with a new value for the current run.

--disable-modules <modules>
    Disables specific modules (comma-separated list, e.g., 'cpu,gpu').

--enable-modules <modules>
    Enables specific modules, implicitly disabling all others not specified.

--list-modules
    Lists all available information modules that can be displayed.

--list-logos
    Lists all available ASCII logos that can be used.

--color-keys <color>
    Sets the ANSI color for the key names (e.g., 'red', '#FF0000').

--color-values <color>
    Sets the ANSI color for the values (e.g., 'blue', '#0000FF').

--logo <type|path>
    Specifies the ASCII logo type to use or a path to a custom image. Use 'none' to disable the logo.

--format <format>
    Sets the output format (e.g., 'json', 'plain', 'ansi').

DESCRIPTION

Fastfetch is a modern, high-performance command-line utility designed to fetch and display various system information details. It serves as a significantly faster and more efficient alternative to older tools like Neofetch and Screenfetch, thanks to its optimized C++ codebase and direct utilization of native system APIs. Fastfetch can present a wide array of information, including OS, Kernel, Uptime, Packages, Shell, Resolution, Desktop Environment/Window Manager, CPU, GPU, Memory, and Disk usage.

It is highly configurable, allowing users to precisely control which modules are displayed, their order, and the output formatting, making it ideal for system showcases, quick diagnostics, or automated reporting. Its modular design and emphasis on speed make it a preferred choice for many Linux enthusiasts.

CAVEATS

While highly optimized, performance can still vary depending on the system's hardware, the number of enabled modules, and the specific APIs available. Some modules may require elevated privileges or specific system configurations (e.g., kernel modules) to fetch accurate data. The extensive configuration options, while providing great flexibility, can introduce a learning curve for new users.

CONFIGURATION FILE

Fastfetch primarily uses a TOML or JSONC based configuration file (default: ~/.config/fastfetch/config.jsonc or ~/.config/fastfetch/config.toml) to define which modules to display, their order, and various formatting options. This allows for highly customized and persistent outputs across sessions, saving users from typing long command-line arguments repeatedly.

MODULE SYSTEM

The tool is built around a robust modular architecture. Each piece of information, such as the Operating System, CPU, RAM, or GPU details, is handled by a separate module. This design allows users to easily enable or disable specific modules, tailoring the output precisely to their requirements and optimizing performance by only fetching necessary data. This modularity also simplifies future expansions and contributions.

CROSS-PLATFORM SUPPORT

While widely popular on Linux, fastfetch also provides support for other operating systems, including macOS and Windows. This makes it a versatile system information utility that can be utilized across different computing environments, maintaining a consistent interface and feature set for users regardless of their underlying OS.

HISTORY

Fastfetch emerged as a modern, high-performance alternative to existing system information tools like Neofetch, which were largely script-based (e.g., Bash) and could be slower or less efficient in fetching system details. Developed primarily in C++ by KitsuneAlex, its core focus was on leveraging native system APIs and optimized algorithms to achieve significantly faster execution times and lower resource consumption. This development philosophy aimed to address the performance limitations of its predecessors while offering extensive configurability and broad cross-platform support. It quickly gained traction within the Linux community for its speed and rich feature set, establishing itself as a preferred utility for displaying system information.

SEE ALSO

neofetch(1), screenfetch(1), uname(1), lsb_release(1), hwinfo(8), inxi(1)

Copied to clipboard