Jump to content

Fastfetch

From Simple English Wikipedia, the free encyclopedia
Fastfetch
Original author(s)Linus Dierheimer
Initial releaseMarch 20, 2022; 3 years ago (2022-03-20)
Stable release
2.35.0 / January 26, 2025; 2 months ago (2025-01-26)
Repositoryhttps://github.com/fastfetch-cli/fastfetch
Written inC
Operating systemUnix-like, Android, macOS, SunOS, Windows 7 and later
Platformx86-64, ARM, RISC-V
PredecessorNeofetch

Fastfetch (known as fastfetch in the command-line) is a command-line tool that displays system information written in C, available in Unix-like systems (FreeBSD, Linux, OpenBSD), Android, Windows (Windows 7 and later), macOS and SunOS. It is a Neofetch alternative after Neofetch was discontinued on April 26, 2024.

The name "Fastfetch" combines "Fast" and "Neofetch", as the name suggests, it is a fast alternative for Neofetch.

Configuration

[change | change source]

The Fastfetch configuration is located at ~/.config/fastfetch/config.jsonc. It is formatted as JSONC.

Example of the configuration file, with several disabled modules

[change | change source]
{
  "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
  "modules": [
    "title",
    "separator",
    "os",
    "host",
    "kernel",
    "uptime",
    "packages",
    "shell",
    "display",
    "terminal",
    "terminalfont",
    "cpu",
    "gpu",
    "memory",
    "swap",
    "disk",
    "locale",
    "break",
    "colors
  ]
}

Release table

[change | change source]

Initial year (2022)

[change | change source]
Fastfetch 2022 releases
Version Date Notes/bug-fixes
1.0.0 March 20 Initial release, only supported Linux
1.1.0 March 22 Greatly improved detection of media player name
1.1.1 March 23 Fix fastfetch recaching every time if an old cache exists
1.1.2 March 23 Capitalize the first letter of media player if appropriate
1.2.0 March 23 Pretty song output, if the media is a browser playing a video
1.2.1 March 25 Added RPM support
1.2.2 March 25 Released pre-built binaries as tar.gz and zip
1.2.3 March 28 Added OpenSUSE logos
1.3.0 April 22 Image support
1.3.1 April 22 Fix build without ImageMagick enabled
1.3.2 April 23 Fix pre-built .deb package
1.3.3 April 23 Fix pre-built .deb package for real this time
1.3.4 April 27
  • Using custom logos in terminals that don't support \033[14t or \033[18t once again works
  • Features:
    • Ubuntu flavor detection
    • Kubuntu & Deepin logo
1.4.0 May 23
  • Features:
    • Display images converted to ASCII art as logo, using chafa
    • Stretch images by using the --logo-height option
  • New logos added:
  • Bugfixes:
    • Better calculation of image dimensions
    • Better RPM package detection
    • Format uptime right, when hours > 0 and minutes = 0
    • Only detect themes for installed GTK versions
1.4.1 May 23 Don't prepend proc with TARGET_DIR_ROOT, should make future packaging for Termux simpler
1.4.2 May 24
  • Bugfixes:
    • RPM package count on SUSE platforms
    • Prepend /var with TARGET_DIR_ROOT
1.4.3 May 24 Detect KDE Plasma version more reliable
1.5.0 June 8
  • Modules:
  • Features:
    • Detect Bedrock Linux
    • Detect packages on Bedrock Linux
    • --pipe option
    • Logo for Bedrock Linux
  • Bugfixes:
    • Locale detection on Ubuntu and deriviates
    • Bolt keys and title, if main color is not set
1.5.1 June 8 Fix --print-logos
1.5.2 June 8 Fix build if ImageMagick is not installed
1.5.3 June 8 Enable LTO by default

Fix compile bug when LTO enabled

1.5.4 June 19
  • Features:
    • Better WSL / WSLg support
    • --<module>-error arguments
    • Export much more information to host format string
    • Expose CPU temp to cpu format string
    • Expose GPU temp to gpi format string
    • Added logo for Alpine Linux
    • Detect termux as terminal
  • Bugfixes:
    • Show GiB instad of GB
    • Print the last line of the logo, if it is taller than the info
  • Refactors:
    • Cleaned up header includes
    • Build libfastfetch as OBJECT lib, as the linked binary is never needed
1.5.5 June 26 Detect Wayland WM much faster
  • Bugfixes:
    • Wayland backend for resolution working once again
    • Plasma values are no longer victims to race conditions
1.5.6 July 3 Don't segfault when connecting to some Wayland compositors
1.6.0 July 26
  • Features:
    • Detect QT on more DEs than just KDE Plasma. The [Plasma] category was therefore renamed to [QT]
    • Alacritty font detection
    • Load /etc/fastfetch/config.conf before user config
    • Disk: print one decimal point if size < 100GB
    • --title-fqdn option, to print fully qualified domain name instead of host name in title
  • Logos:
    • Updated old NixOS logo
  • Bugfixes:
    • Correctly detect GTK on DEs that store their settings in dconf
    • Correctly detect NixOS packages
    • Mutter WM detected once again
    • Show full NixOS version in OS output
    • Don't segfault if an invalid structure is given
    • WSL doesn't output GPU anymore, as the name is always meaningless
1.6.1 July 27 Fixed build error on Android
1.6.2 August 12 Added Void Linux package for Fastfetch
  • Logos added:
    • ROSA Linux
    • KISS Linux
    • LangitKetujuh OS
  • Bugfixes:
    • Using musl as libc does work now
    • XBPS packages are once again printed
    • Configured target directories are applied to install directories too
    • Empty XDG_* environment variables don't cause a crash anymore
1.6.3 August 12 Fixes installing presets in their own directory
1.6.4 August 22 Added Fedora package for Fastfetch.
  • Features:
    • --set-keyless option
    • Replace \n, \t, \e and \\ in user provided strings, just like C would do it
    • APK (Alpine Package Keeper) support
  • Logos:
    • AlmaLinux
  • Bugfixes:
    • Replace deprecated gethostbyname call with getaddrinfo
1.6.5 August 22 Fixes parsing quoted values in config files
1.7.0 September 6 Added support for Darwin (macOS).
  • Features:
    • The binary prefix used can now be configured, and is used consistently across all modules. Set --binary-prefix to iec (default), si or jedec.
    • AMD GPUs now have a much better name, if the file /usr/share/libdrm/amdgpu.ids exists.
  • Logos added:
    • macOS
    • CachyOS (small)
    • MSYS2
  • Bugfixes:
    • The --file option, which can be used to display the contents of a file as the logo, is now working again.
1.7.1 September 15
  • Features:
    • The color of the title and the keys can now be configured individually, using --color-keys and --color-title respectively. Some distributions have different defaults now, similar to neofetch
    • Swap module, similar to the Memory module, but for swap.
  • Logos added:
  • Bugfixes:
    • Used disk space is now calculated much more accurately
    • On Linux, GPU names are no longer truncated, if they are longer than 32 characters
    • On Linux, NVIDIA GPUs once again have a proper name
    • On M1 platforms, showing the GPU name no longer crashes the program
    • Brew package count does now work on M1 platforms too
    • The Vulkan module now does work on macOS too
    • The OpenGL and OpenCL modules now work on macOS too
    • The LocalIp module now works on macOS too
    • Detecting custom WMs on macOS does now work
  • Other:
    • GitHub Actions now builds a .dmg file for macOS
1.7.2 September 15 Fixes the Bash completions
1.7.3 October 9 Added support for FreeBSD.
  • Features:
    • MacPorts package manager support
    • Battery support for MacOS
    • Processes, swap & terminal font support for MacOS
    • Song support for MacOS
    • Player support for MacOS
    • WM theme support for MacOS
    • CPU usage support for MacOS
    • Power Adapter module
    • Windows terminal font for WSL
    • Temps & Font support for MacOS
    • Terminal font support for Termux
    • Weather module
  • Logos added:
    • Crystal Linux
    • FreeBSD
    • New Ubuntu logo
  • Bugfixes:
    • Don't segfault in GPU code on Intel Macs
    • Don't use hardcoded size units in presets
    • Don't crash with some format strings
    • --logo-none keeps key color now
1.7.4 October 10 The last element in the default structure (currently the color blocks) is now printed again
1.7.5 October 11 Fixed a crash on Linux that could occur when retrieving the zsh version
1.8.0 December 29 Added support for Microsoft Windows.
  • Notable changes:
    • BIOS / Board / Chassis modules are split against Host module for performance reasons
    • Caching is removed. Option --nocache is removed accordingly
  • Features:
    • FreeBSD support is improved greatly (BIOS, CPU Temp, CPU Usage, Disk, Host, Processes, Swap, Terminal / Shell, Uptime)
    • Adds a new flag --stat, which prints time usage for individual modules
    • Adds WiFi module which supports Windows and macOS
    • Adds data source option for logo printing
    • Detects Homebrew Cellar and Cask separately
    • Detects WSL version
    • Detects disk based on mount point
    • Exposes more chafa configs
    • Improves performance for CPU Usage, Public IP, Weather modules
    • Improves performance for Kitty image protocol when both image width / height specified
    • Improves performance for large file loading
    • Improves performance for macOS WM and Host detection
    • Improves shell and terminal detection on macOS
    • Supports Deepin Terminal terminal font
    • Supports GPU detection on Android
    • Supports Kitty Terminal terminal font
    • Supports bar output for percentage values
    • Supports BIOS module on macOS
    • Supports eopkg package manager detection
    • Supports iTerm image logo protocol
    • Supports image logo printing on macOS
    • Supports tcsh version detection
    • Vulkan module on macOS no longer requires vulkan-loader to work
  • Logos added:
    • Alpine
    • CRUX
    • EndeavourOS
    • Enso
    • Garuda small
    • Nobara
    • OpenMandriva
    • Parabola GNU/Linux-libre
    • Rocky
    • Rosa
    • Solus
    • Univalent
    • Vanilla OS
  • Bugfixes:
    • Fixes disk size detection on 32-bit Linux
    • Fixes CPU freq detection in WSL
    • Fixes internal bug of FFstrbuf
    • Fixes some memory leaks
    • Fixes segfault if 0 is given as argument index
    • Lots of code refactors
1.8.1 December 30
  • Notable Changes:
    • Song was used as an alias to Media module. It's removed to avoid confusion. All song related flags (--song-key, etc) should change to media (--media-key, etc).
  • Bugfixes:
    • Mount point paths on Linux get decoded correctly
    • Color parsing once again works
    • Using a custom key with a placeholder for the local IP module now does work correctly if multiple interfaces are present
1.8.2 December 31
  • Bugfixes:
    • Fix memleaks Users module (Windows)
    • Fix shell detection when installed with scoop (Windows)
    • Don't use libcJSON as wlanapi's dll name (Windows)
    • Align artifact names to other platforms (Windows)

2023 1.x.x releases

[change | change source]
Fastfetch 2023 1.x.x releases (table not finished yet)
Version Date Notes/bug-fixes
1.9.0 January 22
  • Notable changes:
    • fastfetch no longer creates a sample config file silently. Use --gen-config to generate one.
    • fastfetch now search for user config file in the order of fastfetch --list-config-paths
    • Unknown disks are hidden by default.
    • Resolution module is renamed to Display.
  • Features:
    • --logo-padding-top option
    • Raw image file as logo support
    • Look for config files in $APPDATA (RoamingAppData) (Windows)
    • Look for config files in ~/Library/Preferences (macOS)
    • Add --list-config-paths option which list search paths of config files
    • Add --list-data-paths option which list search paths for presets and logos
    • Add Brightness module support
    • Add Battery module support for FreeBSD
    • Add --disk-show-unknown option for Disk module
    • Add --disk-show-subvolumes option for Disk module
    • Add --gpu-hide-integrated option
    • Add --gpu-hide-discrete option
    • Detect terminal version when available
    • Support WezTerm terminal font detection (requires wezterm executable being available)
    • Add --shell-version and --terminal-version options to disable shell / terminal version detection
    • Enhance --percent-type to allow hiding other texts
    • Add WiFi module support for Linux
    • Detect scaled resolutions (Windows, macOS)
    • Optimize font module printing (Windows)
    • Detect pacman package count inside MSYS2 environment (Windows)
    • Add WiFi / Battery module support for Android
    • Disk name support for Linux
  • Logos added:
    • Raspbian (@IamNoRobot, #373)
  • Bugfixes:
    • --logo-type now does accept iterm too (@CarterLi, #374)
    • Fix mintty terminal font detection (Windows)
    • Fix bug that line buffering doesn't work properly (Windows)
    • Fix rpm package count detection (Linux)
    • Fix CPU temp detection (Linux)
  • Other:
    • Fixed a Typo in iTerm error message
    • Don't try to load config file in /etc (Windows)
1.9.1 January 24
  • Bugfixes:
    • Fix builds on s390x
    • Fix zero refresh rate on some monitors (macOS)
    • Fix default formatting of WiFi module
1.10.0 February 21
  • Notable Changes:
    • With the support of Win32 platform, original Windows 64bit artifact file is renamed to Win64 to avoid possible confusion
  • Features:
    • Bluetooth module
    • Sound module
    • Game-pad module
    • Support colored percentage numbers output
    • Support --localip-compact-type option
    • Terminator terminal font detection
    • Windows 32bit compatibility
    • Support global configuration in MSYS2 environment (Windows)
    • Support GPU driver version detection on Windows 11
    • Support scaled resolution detection for Wayland (Linux)
  • Bugfixes:
    • Fix build with older libnm versions
    • Fix a rare case that fails to detect terminal
    • Fix Muffin detection
    • Fix IPv6 detection (Windows)
    • Fix scoop package count detection when scoop is installed in non-default path (Windows)
    • Fix UB reported by clang
    • Honor $SCOOP when detecting scoop packages Other:
    • Simplified WM theme output format (Windows)
    • Improved GPU detection performance on Windows 11
    • Latest Mac model identifier support (macOS)