Learn how to Customise the Linux terminal to make it look awe!

Overview: Whether you’re new to Linux or have been using it for a while, you’ll find some helpful advice for personalising the Bash shell to make it your own.

The Bash shell is likely to be pre-installed over other shells such as zshell, fish shell, alacritty, and so on, but you may find it quite unappealing when compared to other shells.

Some users ask us: “Which shell are you using?” What the font name is, how to add transparency, add emoji support, make the terminal window colourful rather than bland, and other similar questions have been raised, so I decided to write this article to address them.

With that question in mind, let’s move on to the next section, where you’ll learn about some of the most common customizations you can make to your Bash shell.

Linux Terminal Customizations

I’m excited to show you what customizations you can make to your Linux terminal, but first, let me say that I did all of the steps below in a GNOME-based terminal, so some of them may differ on your end, but you’ll understand them.

1: Create a profile

One thing I would recommend is that if you are going to do any kind of customization, always make a backup in case something unexpected happens, so you can easily restore the original state.

So before heading toward customization, first learn how to create a profile or multiple profiles in GNOME Terminal, which allows us to test the customization on the created profile, and if you are satisfied with the customization, then you can change the default profile in a blink.

First, open the terminal and go to Edit->Preferences.

Output: Preferences options in GNOME terminal
Preferences options in GNOME terminal

Click on the + icon that is next to Profiles, and enter the profile name that you want to assign. Then click on the Create button to complete the process.

Create Profile in Linux terminal
Create Profile in Linux (GNOME Terminal)

Once that’s finished, you can begin making changes to the profile without disturbing the terminal’s default settings; just make sure you’ve chosen the correct profile.

2: Make it easy on the eyes to read the text.

I have set the profile name to “TRENDOCEANS,” which is now available for making any changes to it. Therefore, I am greeted with a plethora of customization options, including text size, colour scheme, scrolling speed, command, and compatibility support.

So first, let’s get our hands dirty with the first “Text” option, which is divided into three sections: Text Appearance, Cursor, and Sound.

To test the changes on your terminal, you can set the preferences tab and terminal like this and change the terminal profile from Terminal->Change Profile->Select Profile.

Test the changes side by side
Test the changes side by side
  1. Text Appearance: You may have noticed that terminals always open at the same size. This happens because of the value “fixed” under the initial terminal size. If you want to change the default terminal size, then tweak the columns and rows, and if anything goes wrong, simply press the “Reset” button.
  2. Custom font: When you want to try some other font than the default one, then you need to check “Custom font,” and after that you will be allowed to choose a different kind of font from the available ones. One thing I like to add is that when you want to download a new font, make sure you download a monotype font for better compatibility.
  3. Cursor: If you don’t like the default block cursor, you can choose an I-beam or underline cursor type from the cursor shape, and you can also turn on and off the cursor blinking pattern.
Customize Text option in Linux terminal
Customize Text option in Linux terminal

3: Add some colour to your life

Change the tab to Colours, where you will find numerous options for changing the text and background colour of the terminal, whether you want to use system theme-based colours or not, and many other options for your convenience.

When you want to change the colours according to your taste, don’t forget to uncheck “Use colours from the system theme,” which will enable many options that were previously disabled.

After that, you can try out the available colours with respect to the available options. I would also suggest unchecking “Use transparency from the system theme” and checking “Use transparent background” to achieve the desired degree of transparency.

Customize Terminal Colors
Customize Terminal Colors

4: Remove the scrollbar from the side

If you don’t like the scrollbar that appears on the right side of the terminal window and want to disable it, switch to the Scrolling tab and uncheck “Show scrollbar” to disable the scrollbar in the GNOME terminal.

Uncheck to remove scroll bar
Uncheck to remove scroll bar

5: Set the theme variant

If you switch to the light theme but still see the dark theme around the terminal, then you need to change the theme variant. To change the theme, you need to select “General” from the left side and click on the Theme Variant drop-down menu to change the theme according to your requirements.

This is a global setting, so it won’t affect just one user profile.

Theme variant choose
Theme variant choose

6: Remove the terminal’s menu bar to simplify its appearance

Everyone has their own personal taste, so I’ll show you the end result, and if you like it, you can follow the instructions below to get the same effect on your own computer.

Terminal without menubar and scrollbar
Terminal without menubar and scrollbar

To replicate this on your terminal, go to the General tab option, which is on the left side of the preferences, and you will find the first check box with the message “Show menubar by default in new terminals.”

You can remove the terminal’s menubar by unchecking the box, and you can restore it by doing the same.

To test this, do not close the preferences window; otherwise, you will have difficulty finding it. So, I suggest that you keep the preferences window open and switch to the new terminal, where the result will be.

Uncheck to disable menubar from terminal
Uncheck to disable menubar from terminal

If you would like to keep this setting all the time, then I would suggest that you assign a shortcut key to enable or disable the menu bar in the terminal, which you will find in the next section.

7: Assign a shortcut key

You can assign shortcut keys to your terminal by clicking the Shortcuts tab (which can be found below the General tab) and then toggling the shortcuts on if they are currently off.

I’m not sure whether you have read our article on Bash Keyboard Shortcuts for the Pro! or not, but I’ll suggest you bookmark that page for future reference to handle Bash like a pro.

Anyway, let’s return to the context where I’ll demonstrate how to use shortcut keys to hide and show menubar options with a combination of keystrokes.

Go to the View menu and click on the first option, “Hide and Show Menubar.” Then, assign the keystroke you want to use to use this feature.

If you prefer the same shortcut that I use, “Ctrl+Alt+M,” then that’s fine with me.

Enable Shortcut keys to terminal in Linux
Enable Shortcut keys to terminal in Linux

There are plenty of other cool things you can do with the right combination of keys, so experiment to see what works best for you.

8: Set a custom margin or padding setting

The image below clearly shows that the second image is far superior to the first. Agree? If yes, then it has happened because I have increased the margin or padding of the terminal by 20px.

To do the same in a GNOME terminal, click here, and if you’re using a Konsole terminal, click here.

9: Put in a ZSH shell or fish shell

The default Bash shell in the terminal lacks many features that are present in other popular shells like ZSH and Fish.

It offers features like tab completion, custom aliases, plugin support, git support, emoji, custom functions, 100+ themes that you can use according to your preferences, and many more intriguing features that you will discover once you start using it.

I’m sure once you get used to it, you won’t want to go back to the Bash shell.

There are separate articles that go into detail about how to install and set up ZSH and Fish Shell on Linux. You can get to those articles by clicking on the links provided.

After you install the custom theme, please send me a screenshot of your terminal so that our readers can get more ideas.

10: Set the colour palette as per the wallpaper

One of the Python-based tools that will change the terminal’s colour scheme to match the background wallpaper is called Pywal, and I’d like to show it to you before I wrap up this article. I find that very intriguing.

It’s true that the tool will handle everything for you, but before you can use it, you’ll need to install PyWAL on your computer.

I recommend that you follow the installation instructions from this link, which include instructions for all major Linux distributions.

Once everything has been installed, you can adjust the colour scheme to match your preferred image by running the following command:

$ wal -i /wallpaper-path

To demonstrate how it works, I chose an image from the /usr/share/wallpapers/ directory, which contains a large collection of images that can be set as the wallpaper.

$ wal -i /usr/share/wallpapers/Winding\ Road\ Vanessa/contents/images/3992x2992.jpg

Voila! The original colour scheme has been replaced with one that is much more pleasing to the eye.

Pallete Color as per the wallpaper
Palette colour as per the wallpaper

To learn more about how to make the theme persistent after a reboot, click here.

Wrap up

There’s more to add, but right now it’s too much, and if I shared it with everyone, it would be too much information for anyone to process, and I don’t want you to get lost somewhere in the middle of changes.

I would recommend you play with ZSH or fish shell to optimise the terminal for your daily use.

Anyway, if there is something I need to consider, please use the space below to provide any additional information or feedback.

This Post Has 2 Comments

  1. James

    I just go with the green letters on a black background. That is all the customization I need.

    1. Gagan Mishra

      Indeed!

Leave a Reply