Fastfetch Configuration: Complete Guide to Customizing Your Terminal
Fastfetch lets you control what appears in your terminal and how the output is arranged. Choose the details you need, adjust the layout, and create a setup that fits your preferences from the config file to logos, display options, modules, and presets.

What Is Fastfetch Configuration?
Fastfetch configuration controls how the tool builds and displays system information in the terminal. It uses a configuration file to define the settings for your Fastfetch output.
Configuration Options
Several parts of the terminal output can be customized, including:
- Logo: Use a built-in logo, hide it, or add your own.
- Display: Change the way text and values are presented.
- Modules: Select which system details appear and set their order.
- Presets: Use ready-made layouts or create your own.
Where Is the Configuration File Located?
Fastfetch uses a JSONC file to store its settings. On Linux and other Unix-like systems, the main configuration file is normally located at:
~/.config/fastfetch/config.jsonc
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.
Fastfetch Configuration Example
The following example combines logo, display, and module settings in one configuration file.
A Complete config.jsonc Example
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
{
"$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"
]
}
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.

Adam Bennett
Adam Bennett writes the Fastfetch guides on this site, researching and testing each one against official Fastfetch documentation and other reliable technical sources to keep instructions accurate and up to date. Guides are reviewed and updated as Fastfetch continues to evolve, covering everything from installation and configuration to troubleshooting and comparisons with other terminal tools.
