Frequently Asked Questions
Common questions about setting up and customizing your Fastfetch configuration.
How to Generate and Edit a Configuration File
You can create a basic configuration and then edit it to change how the tool works.
Generate a Default Setup
Create a basic configuration file by running the command below. This opens an interactive prompt where you can choose a minimal or full configuration.
● ● ●
fastfetch --gen-config
In a script or non-interactive terminal, Fastfetch automatically falls back to a default minimal config without prompts.
Open and Edit the Configuration File
Open the configuration file with a text editor, find the setting you want to change, edit its value, then save and close the editor.
● ● ●
nano ~/.config/fastfetch/config.jsonc
Use a Custom File Path
If your configuration file is stored somewhere else, tell Fastfetch which file to use. Replace the path with your fileu2019s actual location.
● ● ●
fastfetch --config /path/to/config.jsonc
Test Your Changes
After saving the file, run fastfetch again. The updated settings will be applied and appear in your terminal.
● ● ●
fastfetch
When the result is not as expected, check the setting you changed.
Understanding the Configuration File Structure
Settings are organized using a JSONC format with an available JSON Schema for editor support.
What Is the JSONC Format?
Configuration files use JSONC, which is JSON with support for comments. Settings are written as keys and values, and comments can explain what each setting does. For example:
{
"logo": {
"type": "auto"
}
}
Here, logo identifies the setting, while type defines its value. Keeping the structure properly formatted is important because Fastfetch needs to read these settings correctly.
Does It Support a JSON Schema for Editors?
Yes — a JSON schema helps code editors understand the structure and available options in the configuration file. It can provide suggestions, setting descriptions, and warnings when a value doesnu2019t match the expected format, making editing easier when working with many available settings.
How to Customize the Logo
You can customize the logo by choosing a built-in logo, hiding it, or adding custom text or an image.
Change or Disable the Logo
Different built-in logos are available. To see the available options, run:
fastfetch --print-logos
To hide the logo, use:
{
"logo": {
"type": "none"
}
}
Use a Custom or ASCII Logo
You can add your own ASCII logo by saving it in a text file, then setting that file as the logo source:
{
"logo": {
"source": "~/.config/fastfetch/logo.txt"
}
}
You can also use an image as your logo by adding its file path. Replace the example path with the actual location of your file.
{
"logo": {
"source": "/path/to/logo.png"
}
}
Adjust Size, Position, and Colors
You can add extra settings to change how the logo appears. For example, padding adds space around the logo. You can adjust these values to move the logo and create more space around it.
{
"logo": {
"source": "~/.config/fastfetch/logo.txt",
"padding": {
"top": 1,
"left": 2
}
}
}
What Display Settings Can You Customize?
Colors, spacing, separators, and other display options can be adjusted to change how information appears in the terminal.
Change Colors and Separators
Different colors can be used for the text, and the symbol between a label and its value can be changed. For example:
{
"display": {
"separator": " ➔ ",
"color": {
"keys": "magenta",
"title": "blue"
}
}
}
You can use different separators such as :, |, or → to give the output the look you want.
Adjust Key Width and Spacing
Key width controls the space used by labels such as CPU, Memory, and Disk.
{
"display": {
"key": {
"width": 12
}
}
}
A higher number gives the labels more space, while a lower number makes the output more compact.
Customize Percentage Bars and Formatting
Some modules can show information as percentage bars — you can change how these bars look through their module settings. You can also adjust how values such as memory, battery, and disk usage are displayed, keeping the terminal output simple and easy to read.
What Can You Customize in Modules?
System details can be selected, reordered, and adjusted to control how module information appears in the output.
Add, Remove, and Reorder Modules
Fastfetch keeps the modules in a list inside the modules section. Each module represents a type of system information, such as the OS, CPU, or memory. To see the available modules, run:
fastfetch --list-modules
You can add a module by placing its name in the list. Remove a module by deleting it, or move it to a different position to change the order. For example:
{
"modules": [
"title",
"os",
"cpu",
"memory"
]
}
The modules appear in the same order as they are listed in the configuration.
Customize Module Output With Format Strings
Format strings let you control how a moduleu2019s information is displayed. You can use placeholders to decide which details appear and how they are arranged. For example:
{
"type": "os",
"format": "{name} (Build {version})"
}
This changes the OS output so the name and version appear together in a custom format.
How to Use Fastfetch Presets
Presets are ready-made configuration files that provide a specific display style. You can use them as-is or change them to match your needs.
Run a Preset
Preset files let you use a configuration without building one from scratch. They are usually stored in locations such as /usr/share/fastfetch/presets/ and ~/.local/share/fastfetch/presets/. To use a preset, pass its name with the -c option:
fastfetch -c all
You can also run a specific preset, such as:
fastfetch -c examples/neofetch
Customize an Existing Preset
You do not have to keep a preset exactly as it is — you can copy it and make your own changes:
cp /usr/share/fastfetch/presets/neofetch.jsonc ~/.config/fastfetch/config.jsonc
After copying it, open the file in a text editor and change the settings you want. This is useful when you like the basic style of a preset but want a few changes.
Create Your Own Preset
You can also create a preset from your own configuration. Save the settings you want in a .jsonc file and keep it in a preset directory, for example:
~/.local/share/fastfetch/presets/my-preset.jsonc
You can then run it with:
fastfetch -c my-preset
This gives you a separate preset that you can reuse whenever you want the same Fastfetch setup.
How to Reset the Configuration
Removing the current settings restores a fresh configuration without the previous custom changes.
Back Up Your Current Configuration
Before resetting, save a copy of your current configuration. This backup lets you restore your previous settings if needed.
cp ~/.config/fastfetch/config.jsonc ~/.config/fastfetch/config.jsonc.bak
Remove the Old Configuration
Remove the existing configuration file.
rm ~/.config/fastfetch/config.jsonc
Generate a Fresh Configuration
Run the same command used to create a configuration. The interactive prompt will also let you confirm overwriting your existing file.
fastfetch --gen-config
Verify the Reset
Run Fastfetch to check the new configuration. Fastfetch will now use the fresh configuration.
fastfetch
Fastfetch Configuration Example
The following example combines logo, display, and module settings in one configuration file.
A Complete config.jsonc Example
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "auto",
"source": "arch",
"padding": {
"top": 1,
"left": 2,
"right": 2
}
},
"display": {
"separator": " ➔ ",
"color": {
"keys": "magenta",
"title": "blue"
}
},
"modules": [
"title",
"separator",
"os",
"kernel",
"uptime",
"shell",
"terminal",
"break",
"cpu",
"gpu",
"memory",
"disk",
"break",
"colors"
]
}
Save this as config.jsonc and adjust the supported settings to create your preferred layout.
Loading a Specific Config File
You can test another configuration without replacing your main setup by loading its file directly:
fastfetch --config /path/to/custom_config.jsonc
Tips for Better Fastfetch Configuration
Frequently Asked Questions
Common questions about setting up and customizing your Fastfetch configuration.
Conclusion
Fastfetch Configuration and Customization gives you simple ways to create a terminal display that suits your needs. You can choose the information you want to see, adjust the layout, and keep different setups for different uses. With a few small changes, you can keep your terminal output clean, useful, and easy to manage.
