Fastfetch is written mainly in C, with performance and customizability in mind. Currently, Linux, Android, FreeBSD, macOS, SunOS and Windows 7+ are supported.
Linux Installation
- Some distros package an outdated fastfetch version. Older versions receive no support, so please try always to use the latest version.
- Ubuntu: ppa:zhangsongcui3371/fastfetch (for Ubuntu 22.04 or newer)
- Debian: apt install fastfetch (for Debian 13 or newer)
- Debian / Ubuntu: Download fastfetch-linux-
.deb from Github release page and double-click it (for Ubuntu 20.04 or newer and Debian 11 or newer). - Arch Linux: pacman -S fastfetch
- Fedora: dnf install fastfetch
- Gentoo: emerge --ask app-misc/fastfetch
- Alpine: apk add --upgrade fastfetch
- NixOS: nix-shell -p fastfetch
- openSUSE: zypper install fastfetch
- ALT Linux: apt-get install fastfetch
- Exherbo: cave resolve --execute app-misc/fastfetch
- Solus: eopkg install fastfetch
- Slackware: sbopkg -i fastfetch
- Void Linux: xbps-install fastfetch
- Venom Linux: scratch install fastfetch
What's New
Changes:
- LocalIP flags on Windows now describe the interface itself – its operational status, its media connection state and its type, for example ETHERNET_CSMACD, IEEE80211 or SOFTWARE_LOOPBACK – instead of the IP_ADAPTER_* bits.
- Interfaces that carry no unicast address are no longer reported, since both the addresses and the interface properties are now enumerated from the unicast address table. (LocalIP, Windows)
- libpulse and libddcutil are no longer used on Linux. Package managers should remove them from their fastfetch package.
- QuickJS format scripting has been removed (deprecated in v2.69.0). Migrate scripts to Lua if necessary. (General)
- The Command module option useStdErr has been replaced with useOutput, which selects which of the command's output streams to capture: "stdout", "stderr" or "both".
- It defaults to "both", so a command that logs to stderr now has that output captured instead of discarded.
- Set it to "stdout" or "stderr" to restore the old single-stream behavior. (Command)
- The Shell module now reports the shell from the password database (/etc/passwd) instead of the $SHELL environment variable, which may differ when the login shell was changed after the session started. (Title)
- The Disk custom format no longer provides {size-available}. {size-free} now reports whichever of the two the disk.useAvailable option selects, and the raw byte counts are available as {bytes-used} and {bytes-total}. (Disk)
- This also means {size-free} now changes with disk.useAvailable; it used to always report the file system's free size.
- The Disk JSON output no longer includes bytes.available and bytes.used. (Disk)
- bytes.free and bytes.total are unchanged; the used size can be derived as total - free.
Features:
- Added Sound detection on Android. (Sound, Android)
- Added display detection on Android over binder, which needs neither a child process nor a permission. (Display, Android)
- Added battery temperature, remaining time and charger type (AC / USB / wireless) detection on Android. (Battery, Android)
- Added media detection on Android when fastfetch runs as an app UID. (Media, Android)
- Requires Notification access permission
- Added app display-name detection on Android, so the media module names the player the way the app names itself instead of by its package name, and the terminal module reports the label Termux is installed under. (Media, Terminal, Android)
- Performance improvements & internal cleanups
- Added Finnish language support. (General)
- Added pkgsrc package detection on macOS. (#2627, Packages, Apple)
- Added an ALSA fallback to Sound on Linux, so a machine that runs no sound server reports its output device and volume instead of an error. (Sound, Linux)
Bugfixes:
- Fixed --config/-c bash completion offering one candidate per word instead of one candidate per file for paths containing spaces. (Completion, Bash)
- Fixed external monitors detected via DDC/CI being randomly reported as built-in on Linux. (#2615, Brightness, Linux)
- Fixed the Vulkan driver name being concatenated with the name of a previously enumerated device on multi-GPU systems. (#2619, Vulkan)
- Fixed the foot terminal font size not being parsed when written as Font Name-size, e.g. Berkeley Mono-12. (#2624, TerminalFont, Linux)
- Fixed /boot being hidden by default on Haiku, where it is the system volume. (Disk, Haiku)
- Improved Snapdragon X1/X2 model name detection on Linux. (#2625, CPU, Linux)
- Fixed the Android build failing with GL/gl.h not found, because the NDK ships the EGL headers that turned OpenGL detection on but not the desktop GL headers it includes. (OpenGL, Android)
- Fixed MAC address reporting 02:00:00:00:00:00 on macOS 27. (LocalIP, Apple)
- Fixed assertion failure when percentage exceeds 100. (Percent)
- Fixed a non-existent command being reported as a generic child process error on Windows instead of command not found. (Command, Windows)
- Fixed Android display detection on devices running Android 17. (Display, Android)
- Fixed Windows volumes with a per-user quota (such as network shares) reporting a wrong total size and a wrapped-around used size, because the total size was quota-limited while the free size was not. (#2651, Disk, Windows)
- On Windows 10 1809 (build 17763) and later, the whole volume's capacity and free space are now reported by default. Set disk.useAvailable to true to keep reporting the space that is available to the current user, quota included.
Logos:
- Added filled Artix logo (#2631)
- Renamed PostmarketOS to nura (#2626)
