How to Customize Fish Shell’s Prompt for a Personalized Terminal Experience

## Introduction

Fish shell is a popular command-line interface that offers dynamic auto-completion, syntax highlighting, and other helpful features that make terminal use more enjoyable. One of the most notable features of the Fish shell is its customizable prompt. The prompt is the information displayed in the terminal, such as the current directory, hostname, and username. With Fish, users have complete control over the prompts displayed in their terminal. This article will guide you through the process of customizing your Fish shell prompt in order to personalize your terminal experience.

## Understanding the Prompt

The Fish prompt consists of several parts, each of which can be customized according to your preferences. The primary components of the prompt are:

– The user name: This is your username on the system.
– The host name: This is the name of the machine or server that you are logged into.
– The current working directory: This is the directory you are currently working in.
– The prompt symbol: This is the symbol that marks the beginning of a new command line.

By default, the Fish prompt displays the current working directory, followed by the prompt symbol. However, you can customize the prompt to display whatever information you want, in any order you choose.

## Customizing the Prompt

To begin customizing the Fish prompt, you’ll need to open your Fish configuration file. This file is located at `~/.config/fish/config.fish`. If you don’t have this file, you’ll need to create it. Open the file in your text editor of choice.

### Adding Colors and Formatting

One of the easiest ways to customize your prompt is to change the colors and formatting. Fish shell uses escape codes to define colors and formatting. These codes can be added to the prompt to make it more visually pleasing and easier to read.

Here’s an example of how to add colors and formatting to your prompt:


set fish_color_cwd blue
set fish_color_normal green
set fish_color_error red

This code sets the color of the current working directory to blue, the normal text color to green, and the error color to red. You can modify these colors to your liking.

### Customizing the Prompt

To customize the prompt itself, you’ll need to modify the `fish_prompt` function. This function defines the prompt that is displayed in the terminal.

Here’s an example of how to modify the `fish_prompt` function:


function fish_prompt
    set -g fish_prompt_pwd (prompt_pwd)
    set_ps1 "[$fish_color_cwd$fish_prompt_pwd$fish_color_normal] $fish_color_error>%$fish_color_normal "
end

This code sets the prompt to display the current working directory in blue, followed by the prompt symbol in green. You can modify this code to display any information you want, including the user name and host name.

### Adding Custom Icons

You can add custom icons to your prompt to make it more visually appealing. Fish shell supports Unicode characters, so you can use any Unicode icon in your prompt.

Here’s an example of how to add an icon to your prompt:


function fish_prompt
    set -g fish_prompt_pwd (prompt_pwd)
    set_ps1 "[$fish_color_cwd$fish_prompt_pwd$fish_color_normal] $fish_color_error>\Ue0a0 $fish_color_normal "
end

This code sets the prompt to display the current working directory in blue, followed by the prompt symbol in green and a custom icon. You can modify this code to display any Unicode icon you want.

## Conclusion

Customizing your Fish shell prompt is a great way to personalize your terminal experience. By modifying the colors, formatting, and content of the prompt, you can create a terminal that reflects your personality and preferences. With these tips and examples, you can customize your Fish prompt in no time and enjoy a more personalized command-line experience.