Fastfetch

From Gentoo Wiki
Jump to:navigation Jump to:search
This article is a stub. Please help out by expanding it - how to get started.

Fastfetch is a neofetch-like tool for fetching system information and displaying them in a pretty way. It is written mainly in C, with performance and customizability in mind.

Installation

USE flags

USE flags for app-misc/fastfetch Fast neofetch-like system information tool

X Add support for X11
chafa Enables text/graphics renderer with media-gfx/chafa
dbus Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc)
ddcutil Use app-misc/ddcutil to query monitor settings
drm Enables support for X.org's x11-libs/libdrm
elf Use libelf to extract strings from binaries
gnome Add GNOME support
imagemagick Enable optional support for the ImageMagick or GraphicsMagick image converter
opencl Enable OpenCL support (computation on GPU)
opengl Add support for OpenGL (3D graphics)
osmesa Enables offscreen rendering support from media-libs/mesa
pulseaudio Add sound server support via media-libs/libpulse (may be PulseAudio or PipeWire)
sqlite Add support for sqlite - embedded sql database
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
vulkan Enables reading GPU via media-libs/vulkan-loader
wayland Enable dev-libs/wayland backend
xcb Support the X C-language Binding, a replacement for Xlib
xfce Enables support for XFCE config
xrandr Enables support for Xrandr

Emerge

root #emerge --ask app-misc/fastfetch

Configuration

Files

Important
Fastfetch's config language uses JSONC, not JSON! Make sure the file extension is .jsonc.

The simplest fastfetch config.jsonc looks like:

FILE ~/.config/config.jsonc
// ~/.config/fastfetch/config.jsonc
{
    "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json"
}

Usage

You can see your system configuration by running:

user $fastfetch

Invocation

user $fastfetch --help
Fastfetch is a neofetch-like tool for fetching system information and displaying them in a pretty way

Usage: fastfetch <?options>

Informative options:
  -h, --help <?command>                      Show this message, or help for a specific command
  -v, --version                              Show the full version of fastfetch
      --version-raw                          Show the raw version string (major.minor.patch)
      --list-config-paths                    List search paths of config files
      --list-data-paths                      List search paths of presets and logos
      --list-logos                           List available logos
      --list-modules                         List available modules
      --list-presets                         List presets fastfetch knows about
      --list-features                        List the supported features fastfetch was compiled with
      --print-logos                          Print available logos
      --print-structure                      Print the default structure

Config options:
  -c, --config <config>                      Specify the config file or preset to be loaded
      --gen-config <?path>                   Generate a config file to specified path with options specified in the command line (if any)
      --gen-config-force <?path>             Generate a config file to specified path. Overwrite the existing one

pseudo options:
      --thread <?bool>                       Use separate threads to send HTTP requests
      --escape-bedrock <?bool>               On Bedrock Linux, whether to escape the bedrock jail
      --wmi-timeout <num>                    Set the timeout (ms) for WMI queries
      --processing-timeout <num>             Set the timeout (ms) when waiting for child processes
      --ds-force-drm <?bool>                 Set if only DRM should be used to detect displays

Logo options:
  -l, --logo <logo>                          Set the logo source
      --logo-type <enum>                     Set the type of the logo given in "--logo"
      --logo-width <num>                     Set the width of the logo (in characters), if it is an image
      --logo-height <num>                    Set the height of the logo (in characters), if it is an image
      --logo-preserve-aspect-ratio <?bool>   Set if the logo should fill the specified width and height as much as possible without stretching
      --logo-color-[1-9] <color>             Overwrite a color in the logo
      --logo-padding <num>                   Set the padding on the left and the right of the logo
      --logo-padding-left <num>              Set the padding on the left of the logo
      --logo-padding-right <num>             Set the padding on the right of the logo
      --logo-padding-top <num>               Set the padding on the top of the logo
      --logo-print-remaining <?bool>         Whether to print the remaining logo, if it has more lines than modules to display
      --logo-separate <?bool>                If true, print modules at bottom of the logo
      --logo-recache <?bool>                 If true, regenerate image logo cache
      --file <path>                          Short for --logo-type file --logo <path>
      --file-raw <path>                      Short for --logo-type file-raw --logo <path>
      --data <data>                          Short for --logo-type data --logo <data>
      --data-raw <data>                      Short for --logo-type data-raw --logo <data>
      --raw <path>                           Short for --logo-type raw --logo <path>
      --sixel <path>                         Short for --logo-type sixel --logo <path>
      --kitty <path>                         Short for --logo-type kitty --logo <path>
      --kitty-direct <path>                  Short for --logo-type kitty-direct --logo <path>
      --iterm <path>                         Short for --logo-type iterm --logo <path>
      --chafa <path>                         Short for --logo-type chafa --logo <path>
      --chafa-fg-only <?bool>                Produce character-cell output using foreground colors only
      --chafa-symbols <str>                  Specify character symbols to employ in final output
      --chafa-canvas-mode <enum>             Determine how colors are used in the output
      --chafa-color-space <enum>             Set color space used for quantization
      --chafa-dither-mode <enum>             Set output dither mode (No effect with 24-bit color)

Display options:
  -s, --structure <structure>                Set the structure of the fetch
      --stat <?bool>                         Show time usage (in ms) for individual modules
      --pipe <?bool>                         Disable logo and all escape sequences
      --color-keys <color>                   Set the color of the keys
      --color-title <color>                  Set the color of the title
      --color <color>                        Set the color of both the keys and title
      --key-width <num>                      Align the width of keys to <num> characters
      --bright-color <?bool>                 Set if the keys, title and ASCII logo should be printed in bright color
      --separator <str>                      Set the separator between key and value
      --set <key=value>                      Hard set the value of a key
      --set-keyless <key=value>              Hard set the value of a key, but don't print the key or the separator
      --show-errors <?bool>                  Print occurring errors
      --disable-linewrap <?bool>             Whether to disable line wrap during the run
      --hide-cursor <?bool>                  Whether to hide the cursor during the run
      --binary-prefix <enum>                 Set the binary prefix to used
      --percent-type <num>                   Set the percentage output type
      --percent-ndigits <num>                Set the number of digits to keep after the decimal point when formatting percentage numbers
      --bar-char-elapsed <str>               Set the character to use in elapsed part of percentage bars
      --bar-char-total <str>                 Set the character to use in total part of percentage bars
      --bar-width <num>                      Set the width of percentage bars, in number of characters
      --bar-border <?bool>                   Whether to show a border around percentage bars
      --no-buffer <?bool>                    Set if the stdout application buffer should be disabled
      --size-ndigits <num>                   Set the number of digits to keep after the decimal point when formatting sizes
      --size-max-prefix <enum>               Set the largest binary prefix to use when formatting sizes
      --temperature-unit <enum>              Set the unit of the temperature

Library path options:
      --lib-pci <path>                       Pciutils. Used for GPU output
      --lib-vulkan <path>                    Vulkan module & fallback for GPU output
      --lib-wayland <path>                   Better display performance and output in wayland sessions
      --lib-xcb-randr <path>                 X11 sessions for better display detection and faster WM detection
      --lib-xcb <path>                       X11 sessions for better display detection and faster WM detection
      --lib-xrandr <path>                    X11 sessions for better display detection and faster WM detection
      --lib-x11 <path>                       X11 sessions for better display detection and faster WM detection
      --lib-drm <path>                       Used for fast resolution and refresh rate detection
      --lib-gio <path>                       Needed for values that are only stored GSettings
      --lib-dconf <path>                     Needed for values that are only stored in DConf + Fallback for GSettings
      --lib-dbus <path>                      Bluetooth, Player & Media detection
      --lib-xfconf <path>                    Needed for XFWM theme and XFCE Terminal font
      --lib-sqlite3 <path>                   Needed for pkg & rpm package count
      --lib-rpm <path>                       Slower fallback for rpm package count
      --lib-imagemagick <path>               Images in terminal using sixel or kitty graphics protocol
      --lib-z <path>                         Libz. Faster image output when using kitty graphics protocol
      --lib-chafa <path>                     Image output as ascii art
      --lib-egl <path>                       Needed by the OpenGL module for gl context creation
      --lib-glx <path>                       Needed by the OpenGL module for gl context creation
      --lib-osmesa <path>                    Needed by the OpenGL module for gl context creation
      --lib-opencl <path>                    OpenCL module
      --lib-pulse <path>                     Pulseaudio. Used for Sound detection
      --lib-nm <path>                        NetworkManager. Used for Wifi detection
      --lib-freetype <path>                  Used for Termux font detection
      --lib-ddcutil <path>                   Used for brightness detection of external displays

Module specific options:
      --title-fqdn <?bool>                   Set if the title should use fully qualified domain name
      --title-color-user <color>             Set color of the user name (left part)
      --title-color-at <color>               Set color of the @ symbol (middle part)
      --title-color-host <color>             Set color of the host name (right part)
      --chassis-use-wmi <?bool>              Set if WMI query should be used on Windows
      --separator-string <str>               Set the string printed by the separator module
      --os-file <path>                       Set the additional file path which containing OS information
      --disk-folders <path>                  A colon (semicolon on Windows) separated list of folder paths for the disk output
      --disk-show-regular <?bool>            Set if regular volume should be printed
      --disk-show-external <?bool>           Set if external volume should be printed
      --disk-show-hidden <?bool>             Set if hidden volumes should be printed
      --disk-show-subvolumes <?bool>         Set if subvolumes should be printed
      --disk-show-readonly <?bool>           Set if read only volumes should be printed
      --disk-show-unknown <?bool>            Set if unknown (unable to detect sizes) volumes should be printed
      --disk-use-available <?bool>           Use f_bavail (lpFreeBytesAvailableToCaller for Windows) instead of f_bfree to calculate used bytes
      --diskio-name-prefix <str>             Show disks with given name prefix only
      --bluetooth-show-disconnected <?bool>  Set if disconnected bluetooth devices should be printed
      --packages-winget <?bool>              Set if winget package count should be detected
      --display-compact-type <enum>          Set if all displays should be printed in one line
      --display-precise-refresh-rate <?bool> Set if decimal refresh rates should not be rounded into integers when printing
      --brightness-ddcci-sleep <num>         Set the sleep times (in ms) when sending DDC/CI requests
      --sound-type <enum>                    Set what type of sound devices should be printed
      --battery-dir <path>                   The directory where the battery folders are
      --battery-use-setup-api <?bool>        Set if "SetupAPI" should be used on Windows to detect battery info
      --cpu-temp <?bool>                     Detect and display CPU temperature if supported
      --cpu-freq-ndigits <num>               Set the number of digits to keep after the decimal point when printing CPU frequency
      --cpuusage-separate <?bool>            Display CPU usage per CPU logical core, instead of an average result
      --de-slow-version-detection <?bool>    Set if DE version should be detected with slow operations
      --gpu-temp <?bool>                     Detect and display GPU temperature if supported
      --gpu-use-nvml <?bool>                 Use nvml (NVIDIA Management Library) to detect more detailed GPU information
      --gpu-force-vulkan <?bool>             Force using vulkan to detect GPUs
      --gpu-hide-type <enum>                 Specify the type of GPUs should not be printed
      --battery-temp <?bool>                 Detect and display Battery temperature if supported
      --localip-show-ipv4 <?bool>            Show IPv4 addresses in local ip module
      --localip-show-ipv6 <?bool>            Show IPv6 addresses in local ip module
      --localip-show-mac <?bool>             Show mac addresses in local ip module
      --localip-show-loop <?bool>            Show loop back addresses (127.0.0.1) in local ip module
      --localip-name-prefix <str>            Show interfaces with given interface name prefix only
      --localip-default-route-only <?bool>   Show the interface that is used for default routing only
      --localip-compact <?bool>              Show all IPs in one line
      --netio-name-prefix <str>              Show interfaces with given name prefix only
      --netio-default-route-only <?bool>     Show the interfac that is used for default routing only
      --publicip-timeout <num>               Time in milliseconds to wait for the public ip server to respond
      --publicip-url <str>                   The URL of public IP detection server to be used
      --weather-location <str>               Set the location to be used
      --weather-timeout <num>                Time in milliseconds to wait for the weather server to respond
      --weather-output-format <str>          The output weather format to be used
      --wm-detect-plugin <?bool>             Set if window manager plugin should be detected on supported platforms
      --player-name <str>                    The name of the player to use for module Media and Player
      --opengl-library <enum>                Set the OpenGL context creation library to use
      --command-shell <str>                  Set the shell program to execute the command text
      --command-key <str>                    Set the module key to display
      --command-text <str>                   Set the command text to be executed
      --colors-symbol <enum>                 Set the symbol to be printed by Colors module
      --colors-padding-left <num>            Set the number of white spaces to print before the symbol

General module options:
      --<module>-format <format>             Set the format string to use for each specific module
                                             To see how a format string works, use "fastfetch -h format".
                                             To see help about a specific format string, use "fastfetch -h <module>-format"
      --<module>-key <key>                   Set the key to use for each specific module.
                                             For modules which print multiple lines, the string is parsed
                                             as a format string with the index as first character
      --<module>-key-color <color>           Override the global "--color-keys" option for each specific module
      --<module>-key-width <num>             Override the global "--key-width" option for each specific module


Parsing is not case sensitive. E.g. "--lib-PCI" is equal to "--Lib-Pci"
If a value starts with a ?, it is optional. An optional boolean value defaults to true if not specified.
More detailed help messages for each options can be printed with "-h <option_without_dash_prefix>"
All options can be made permanent with command "fastfetch <options> --gen-config"

See also

  • neofetch — a command-line system information tool that displays information about the operating system, software, and hardware in an aesthetic and visually pleasing way.