5 Tweaks to Customize the Look of Your Linux Terminal

Want a beautiful-looking Linux terminal? Here are several ways to tweak the look and feel of your current terminal and make it look beautiful.

The terminal emulator or simply the terminal is an integral part of any Linux distribution.

When you change the theme of your distribution, the terminal often gets a makeover automatically. But that doesn’t mean you cannot customize the terminal further.

Many It’s FOSS readers have asked us how come the terminal in our screenshots or videos look so cool, what fonts do we use, etc.

To answer this frequent question, I’ll show you some simple and some complex tweaks to change the appearance of the terminal. You can compare the visual difference in the image below:

Customizing Linux Terminal

📋
This tutorial utilizes a GNOME terminal on Pop!_OS to customize and tweak the look of the terminal. But, most of the advice should apply to other terminals as well.

For most elements like color, transparency, and fonts, you can utilize the GUI to tweak it without requiring you to enter any special commands.

Open your terminal. In the top right corner, look for the hamburger menu. Here, click on “Preferences” as shown in the screenshot below:

Linux Terminal Preferences

This is where you’ll find all the settings to change the appearance of the terminal.

Tip 0: Use separate terminal profiles for your customization

I would advise you to create a new profile for your customization. Why? Because this way, your changes won’t impact the main terminal profile. Suppose you make some weird changes and cannot recall the default value. Profiles help separate the customization.

As you can see, Abhishek has separate profiles for taking screenshots and making videos.

Terminal Profiles
Terminal Profiles

You can easily change the terminal profiles and open a new terminal window with the new profile.

Change Terminal Profile
Change Terminal Profile

That was the suggestion I wanted to put forward. Now, let’s see those tweaks.

Tip 1: Use a dark/light terminal theme

You may change the system theme and the terminal theme gets changed. Apart from that, you may switch between the dark or light theme, if you do not want to change the system theme.

Once you head into the preferences, you will notice the General options to change the theme and other settings.

Terminal Theme

Tip 2: Change the font and size

Select the profile that you want to customize. Now you’ll get the option to customize the text appearance, font size, font style, spacing, cursor shape, and toggle the terminal bell sound as well.

For changing the terminal font, you can only change to what’s available on your system. If you want something different, download and install the font on your Linux system first.

💡
One more thing! Use monospaced fonts otherwise, fonts might overlap and the text may not be clearly readable. If you want suggestions, go with Share Tech Mono (open source) or Larabiefont (not open source).

Under the Text tab, select Custom font and then change the font and size (if required).

Terminal Customization 1

Tip 3: Change the color pallet and transparency

Apart from the text and spacing, you can access the “Colors” tab and change the color of the text and background of your terminal. You can also adjust the transparency to make it look even cooler.

As you can notice, you can change the color palette from a set of pre-configured options or tweak it yourself.

Terminal Color Customization

If you want to enable transparency just like I did, you click on “Use transparent background” option.

You can also choose to use colors from your system theme if you want a similar color setting to your theme.

Linux Terminal

Tip 4: Tweaking the bash prompt variables

Usually, you will see your username and hostname (your distribution) as the bash prompt when launching the terminal without any changes.

For instance, it would be “ankushdas@pop-os:~$” in my case. However, I permanently changed the hostname to “itsfoss“, so now it looks like this:

Itsfoss Hostname

To change the hostname, you can type in the following:

hostname CUSTOM_NAME

However, this will be applicable only to the current sessions. So, when you restart, it will revert to the default. To permanently change the hostname, you need to type in the following:

sudo hostnamectl set-hostname CUSTOM_NAME

Similarly, you can also change your username, but it requires some additional configuration that includes killing all the current processes associated with the active username, so we’ll avoid it to change the look/feel of the terminal.

Tip 5: Changing the font and color of the bash prompt (for advanced users)

🚧
This is a bit complicated and not recommended for beginners.

You can tweak the font and color of the bash prompt ([email protected]:~$) using commands.

You will need to utilize the PS1 environment variable which controls what is being displayed as the prompt. You can learn more about it on the man page.

For instance, when you type in:

echo $PS1

The output in my case is:

\[\e]0;\[email protected]\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[email protected]\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$

We need to focus on the first part of the output:

\[\e]0;\[email protected]\h: \w\a\]$

Here, you need to know the following:

  • \e is a special character that denotes the start of a color sequence
  • \u indicates the username followed by the @ symbol
  • \h denotes the hostname of the system
  • \w denotes the base directory
  • \a indicates the active directory
  • $ indicates non-root user

The output in your case can be different, but the variables will be the same, so you need to play with the commands mentioned below depending on your output.

Before you do that, keep these in mind:

  • Codes for text format: 0 for normal text, 1 for bold, 3 for italic and 4 for underline text
  • Color range for background colors: 40-47
  • Color range for text color: 30-37

You just need to type in the following to change the color and font:

PS1="\e[41;3;32m[\[email protected]\h:\w\a\$]"

This is how your bash prompt will look like after typing the command:

Terminal Bash Prompt Customization

If you notice the command properly, as mentioned above, \e helps us assign a color sequence.

In the command above, I’ve assigned a background color first, then the text style, and then the font color followed by “m“.

Here, “m” indicates the end of the color sequence.

So, all you have to do is, play around with this part:

41;3;32

The rest of the command should remain the same, you just need to assign different numbers to change the background color, text style, and text color.

Do note that this is in no particular order; you can assign the text style first, background color next, and the text color at the end as “3;41;32“, where the command becomes:

PS1="\e[3;41;32m[\[email protected]\h:\w\a\$]"
Linux Terminal Customization 1s

As you can notice, the color customization is the same no matter the order. So, keep the codes for customization in mind and play around with it until you’re sure you want this as a permanent change.

The above command that I mentioned temporarily customizes the bash prompt for the current session. If you close the session, you will lose the customization.

So, to make this a permanent change, you need to add it to .bashrc file (this is a configuration file that loads up every time you load up a session).

Bashrch Customization Terminal

You can access the file by simply typing:

nano ~/.bashrc

Unless you’re sure what you’re doing, do not change anything. And, just for the sake of restoring the settings back, you should keep a backup of the PS1 environment variable (copy-paste what’s in it by default) to a text file.

So, even if you need the default font and color, you can again edit the .bashrc file and paste the PS1 environment variable.

Bonus Tip: Change the terminal color pallet based on your wallpaper

If you want to change the terminal's background and text color but are unsure which colors to pick, you can use a Python-based tool, Pywal. It automatically changes the color of the terminal based on your wallpaper or the image you provide to it.

Change Linux terminal color based on wallpaper

If you are interested in using this tool, I have written about it in detail.

Wrapping Up

Of course, it is easy to customize using the GUI while getting better control of what you can change. But, knowing the commands is also necessary in case you start using WSL or access a remote server using SSH; you can customize your experience no matter what.

If you are not much into customizing, you can try using other Linux terminals like Tilix or Terminator.

Top 14 Terminal Emulators for Linux (With Extra Features or Amazing Looks)
Want a terminal that looks cool or has extra features? Here are the best Linux terminal emulators you can get.

How do you customize the Linux terminal? Share your secret ricing recipe with us in the comments.

Become a Better Linux User

With the FOSS Weekly Newsletter, you learn useful Linux tips, discover applications, explore new distros and stay updated with the latest from Linux world

It's FOSS

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to It's FOSS.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.