Skip to content

Like neofetch, but much faster because written mostly in C.

License

Notifications You must be signed in to change notification settings

niu541412/fastfetch

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fastfetch

GitHub Workflow Status (with event) GitHub license GitHub contributors GitHub top language GitHub commit activity (branch)
homebrew downloads GitHub all releases
GitHub release (with filter) latest packaged version(s) Packaging status

Fastfetch is a neofetch-like tool for fetching system information and displaying it prettily. It is written mainly in C, with performance and customizability in mind. Currently, Linux, Android, FreeBSD, macOS, SunOS and Windows 7 are supported.

There are screenshots on different platforms.

Installation

Linux

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-<proper architecture>.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
  • GNU Guix: guix install fastfetch
  • Solus: eopkg install fastfetch
  • Slackware: sbopkg -i fastfetch
  • Void Linux: xbps-install fastfetch
  • Venom Linux: scratch install fastfetch

You may need sudo, doas or sup to run these commands.

See also if fastfetch has been packaged for your favorite Linux distro.

If fastfetch is not packaged for your distro or an outdated version is packaged, linuxbrew is a good alternative: brew install fastfetch

macOS

Windows

  • scoop: scoop install fastfetch
  • Chocolatey: choco install fastfetch
  • winget: winget install fastfetch
  • MSYS2 MinGW: pacman -S mingw-w64-<subsystem>-<arch>-fastfetch

You may also download the program directly from the GitHub releases page in the form of an archive file.

FreeBSD

  • pkg install fastfetch

Android (Termux)

  • pkg install fastfetch

Build from source

See Wiki: https://github.com/fastfetch-cli/fastfetch/wiki/Building

Usage

  • Run it with default configuration: fastfetch
  • Run it with all supported modules and find what interests you: fastfetch -c all.jsonc
  • Find all data that fastfetch detects: fastfetch -s <module> --format json
  • Display help messages: fastfetch --help
  • Generate config file based on command line arguments: fastfetch --arg1 --arg2 --gen-config

Customization

Fastfetch uses the JSONC (or JSON with comments) for configuration. See Wiki for detail. There are some premade config files in presets, including the ones used for the screenshots above. You can load them using -c <filename>. Those files can serve as examples of the configuration syntax.

Logos can also be heavily customized; see the logo documentation for more information.

Packaging

Repositories

Packaging status

Manual

  • DEB / RPM package: cmake --build . --target package
  • Install directly: cmake --install . --prefix /usr/local

FAQ

Q: Neofetch is good enough. Why do I need fastfetch?

  1. Fastfetch is actively maintained.
  2. Fastfetch is faster. As the name suggests.
  3. Fastfetch has a greater number of features, though by default fastfetch only has a few modules enabled; use fastfetch -c all to find what you want.
  4. Fastfetch is more configurable. You can find more information in the Wiki: https://github.com/fastfetch-cli/fastfetch/wiki/Configuration.
  5. Fastfetch is more polished. For example, neofetch prints 555 MiB in the Memory module and 23 G in the Disk module, whereas fastfetch prints 555.00 MiB and 22.97 GiB respectively.
  6. Fastfetch is more accurate. For example, neofetch never actually supports the Wayland protocol.

Q: Fastfetch shows my local IP address. It leaks my privacy!

A local IP (10.x.x.x, 172.x.x.x, 192.168.x.x) has nothing to do with privacy. It only makes sense if you are on the same network, for example, if you connect to the same Wi-Fi network.

Actually the Local IP module is the most useful module for me personally. I (@CarterLi) have several VMs installed to test fastfetch and often need to SSH into them. I have fastfetch running on shell startup and I never need to type ip addr manually.

If you really don't like it, you can disable the Local IP module in config.jsonc.

Q: Where is the config file? I can't find it.

Fastfetch does not generate config file automatically. You can use fastfetch --gen-config to generate one. The config file will be saved in ~/.config/fastfetch/config.jsonc by default. See Wiki for detail.

Q: The configuration is so complex. Where is the documentation?

Fastfetch uses JSON (with comments) for configuration. I suggest you use an IDE with JSON schema support (like VSCode) to edit it.

Alternatively, you can refer to the presets in presets directory.

The correct way to edit the configuration:

This is an example that changes size prefix from MiB / GiB to MB / GB. Editor used: helix

asciicast

Q: I WANT THE DOCUMENTATION!

Here is the documentation. It is generated from JSON schema but you won't like it.

Q: How can I customize the module output?

Fastfetch uses format to generate output. For example, to make the GPU module show only the GPU name (leaving other information undisplayed), you can use

{
    "modules": [
        {
            "type": "gpu",
            "format": "{name}" // See `fastfetch -h gpu-format` for detail
        }
    ]
}

. . which is equivalent to fastfetch -s gpu --gpu-format '{name}'

See fastfetch -h format for information on basic usage. For module specific formattion, see fastfetch -h <module>-format

Q: I have my own ascii-art / image file. How can I show it with fastfetch?

Try fastfetch -l /path/to/logo. See logo documentation for detail.

If you just want to display distro name in FIGlet text:

# install pyfiglet and jq first
pyfiglet -s -f small_slant $(fastfetch -s os --format json | jq -r '.[0].result.name') && fastfetch -l none

image

Q: My image logo behaves weird. How can I fix it?

See troubleshooting section: https://github.com/fastfetch-cli/fastfetch/wiki/Logo-options#troubleshooting

Q: Fastfetch runs in white and black on shell startup. Why?

This issue usually happens when using fastfetch with p10k. There are known incompatibility between fastfetch and p10k instant prompt. The p10k doc clearly states that you should NOT print anything to stdout after p10k-instant-prompt is initialized. You should either put fastfetch before initialization of p10k-instant-prompt (recommended)

You can always use fastfetch --pipe false to force fastfetch running in colorful mode.

Q: Why do fastfetch and neofetch show different memory usage result?

See #1096.

Q: Fastfetch shows less dpkg packages than neofetch, is it a bug?

Neofetch incorrectly counts rc packages ( the package has been removed, but that the configuration files remain ). Bug dylanaraps/neofetch#2278

Q: I use Debian / Ubuntu / Debian deserved distro. My GPU is detected as XXXX Device XXXX (VGA compatible). Is it a bug?

Try upgrading pci.ids: Download https://pci-ids.ucw.cz/v2.2/pci.ids and overwrite file /usr/share/hwdata/pci.ids. For AMD GPUs, you should also upgrade amdgpu.ids: Download https://gitlab.freedesktop.org/mesa/drm/-/raw/main/data/amdgpu.ids and overwrite file /usr/share/libdrm/amdgpu.ids

Alternatively, you may try to use fastfetch --gpu-driver-specific, so that fastfetch will try to ask the driver for GPU name if supported.

Q: Fastfetch cannot detect my awesome 3rd-party macOS window manager!

Try fastfetch --wm-detect-plugin. See also #984

Q: I want feature A / B / C. Will fastfetch support it?

Fastfetch is a system information tool. We only accept hardware or system level software feature requests. For most personal uses, I recommend using Command module to detect it yourself, which can be used to grab output from a custom shell script:

// This module shows the default editor
{
    "modules": [
        {
            "type": "command",
            "text": "$EDITOR --version | head -1",
            "key": "Editor"
        }
    ]
}

Otherwise, open a feature request in GitHub Issues.

Q: I have questions. Where can I get help?

  • For usage questions, please start a discussion in GitHub Discussions.
  • For possible bugs, please open an issue in GitHub Issues. Be sure to fill the bug-report template carefully for developers to investigate.

Donate

If you find Fastfetch to be useful, please consider donating.

Star History

Give it a star to support us!

Star History Chart

About

Like neofetch, but much faster because written mostly in C.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 92.8%
  • CMake 2.5%
  • Objective-C 2.0%
  • C 1.9%
  • Other 0.8%