Make Your Linux Terminal BEAUTIFUL In 2026

The terminal that ships with your Linux distro works, but it’s plain. Default font, default colours, a prompt that tells you almost nothing, and no autocomplete beyond tab.

This guide fixes all of that in about fifteen minutes. By the end you’ll have a terminal that is genuinely faster to use, not just better looking:

  • Ghostty — a fast, GPU-accelerated, natively built terminal emulator
  • Zsh as your default shell, with history that persists and syncs across windows
  • Oh My Posh driving a modern, informative prompt
  • JetBrains Mono Nerd Font so icons and glyphs render properly
  • Autosuggestions and syntax highlighting as you type
  • Optional background blur on GNOME

Every command is copy-paste ready. Examples use Ubuntu, but the process is identical on any distribution — only the package manager command changes.


Table of Contents

  1. Update your system and install dependencies
  2. Install the Ghostty terminal
  3. Install Zsh and make it your default shell
  4. Install JetBrains Mono Nerd Font
  5. Configure Ghostty
  6. Install Oh My Posh and a prompt theme
  7. Add Zsh plugins: autosuggestions and syntax highlighting
  8. Configure Zsh history
  9. Add system blur on GNOME
  10. Final config files
  11. Troubleshooting

What You’ll Need

  • A Linux machine (Ubuntu, Fedora, Arch, Debian — anything)
  • Around 15–20 minutes
  • sudo access
  • An internet connection

1. Update Your System and Install Dependencies

Before customizing anything, bring your packages up to date and install the handful of tools the rest of this guide relies on.

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git unzip fontconfig

What each package does: curl and wget download install scripts and font archives, git clones the Zsh plugins, unzip extracts the font pack, and fontconfig provides fc-cache for refreshing the font cache.

On other distros: swap apt for dnf (Fedora), pacman -S (Arch), or zypper (openSUSE).


2. Install the Ghostty Terminal

Ghostty is a GPU-accelerated terminal emulator written in Zig. It’s fast, uses native platform UI, and — importantly for this guide — is configured through a single readable text file.

On Debian and Ubuntu-based distros, the community installer handles everything:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/mkasberg/ghostty-ubuntu/HEAD/install.sh)"

For Fedora, Arch, NixOS and others, check the official Ghostty download page — most distros have it packaged.

Once it’s installed, close your old terminal and open Ghostty. It’s worth pinning it to your dock or taskbar now, since it’s about to become your daily driver.

Security note: piping a script from the internet straight into bash runs it with your privileges. If you’d rather inspect it first, download the script, read it, then run it.


3. Install Zsh and Make It Your Default Shell

Most distributions default to Bash. Zsh is a drop-in-compatible alternative with better completion, better globbing, and — critically — a huge plugin ecosystem.

sudo apt install -y zsh
chsh -s $(which zsh)

chsh changes your login shell, but the change only takes effect on a fresh login session. Log out and log back in, then open Ghostty and confirm:

echo $SHELL

You should see /usr/bin/zsh or /bin/zsh.

Now create the config file you’ll be editing throughout the rest of this guide:

touch ~/.zshrc

If Zsh greets you with its first-run configuration wizard, you can safely press q to quit it — you’re about to write a better config by hand.


4. Install JetBrains Mono Nerd Font

A Nerd Font is a normal programming font patched with thousands of extra icon glyphs. Without one, your fancy new prompt renders as a row of empty boxes.

# Create the user fonts directory
mkdir -p ~/.local/share/fonts

# Download the latest JetBrainsMono Nerd Font release
cd /tmp

wget -O JetBrainsMono.zip "https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.zip"

# Extract into the fonts folder
unzip -o JetBrainsMono.zip -d ~/.local/share/fonts/JetBrainsMono

# Refresh the font cache
fc-cache -fv

# Clean up
rm JetBrainsMono.zip

Verify the install:

fc-list | grep -i "JetBrainsMono"

If you see a list of font paths, you’re good. Prefer a different font? Any Nerd Font works — Fira Code, Hack, Caskaydia Cove and Meslo are all popular. Just change the download URL and the font name in the next step.


5. Configure Ghostty

Ghostty reads a single config file. Create it:

mkdir -p ~/.config/ghostty
nano ~/.config/ghostty/config

Paste in the following:

# ============================================
# Ghostty — Recommended Terminal Config
# Docs: https://ghostty.org/docs/config/reference
# ============================================

# --- Font ---
# Requires JetBrainsMono Nerd Font (Step 4)
font-family = JetBrainsMono Nerd Font
font-size = 20

# --- Theme ---
# Use one theme, or a light/dark pair that follows system preference
# List all available themes:  ghostty +list-themes
theme = light:Neobones Light,dark:Argonaut

# Single-theme alternatives:
# theme = Catppuccin Mocha
# theme = Dracula
# theme = TokyoNight
# theme = GruvboxDark
# theme = One Dark

# --- Transparency + blur ---
# background-opacity: 0.0 (invisible) to 1.0 (opaque)
background-opacity = 0.92
# Blur radius — Linux support depends on your compositor
background-blur-radius = 20

# --- Window padding ---
window-padding-x = 12
window-padding-y = 12

# --- Cursor ---
cursor-style = bar
cursor-style-blink = true

# --- Behaviour ---
mouse-hide-while-typing = true
confirm-close-surface = false

# Start maximized (optional)
maximize = true

# --- Optional extras ---
# window-decoration = true
# clipboard-paste-protection = false
# shell-integration = detect
# working-directory = home

Save with Ctrl+O, Enter, then exit with Ctrl+X.

Picking your theme

Ghostty ships with hundreds of built-in colour schemes. To browse them:

ghostty +list-themes

The light:...,dark:... syntax above makes Ghostty follow your system’s light/dark preference automatically — switch your desktop to dark mode and the terminal follows. If you only ever use one mode, a single theme = Catppuccin Mocha line is simpler.

Reload the config with Ctrl+Shift+, or by opening a new Ghostty window. Font size 20 is generous — good for screen recording, possibly large for daily use. Drop it to 12–14 if you want more on screen.

Version note: Ghostty’s option names have shifted between releases. If background-blur-radius or maximize throw an error on startup, run ghostty +show-config --default to see the names your version uses (background-blur is the newer spelling on some builds).


6. Install Oh My Posh and a Prompt Theme

Oh My Posh is a cross-platform prompt engine. It renders git status, exit codes, execution time, language versions and more, all driven by a single JSON file.

curl -s https://ohmyposh.dev/install.sh | bash -s

The installer drops the binary in ~/.local/bin, which isn’t always on your PATH. Add it permanently, then create your theme file:

echo 'export PATH=$PATH:$HOME/.local/bin' >> ~/.zshrc
nano ~/theme.json

Head to the Oh My Posh themes gallery, pick a theme you like, open its raw JSON, and paste the contents into theme.json. Save and exit.

Now tell Zsh to use it. Add this line to ~/.zshrc:

eval "$(oh-my-posh init zsh --config ~/theme.json)"

Reload your shell to see it:

source ~/.zshrc

Your prompt should transform immediately. If you see boxes or question marks instead of icons, your terminal isn’t using the Nerd Font — recheck Step 4 and the font-family line in your Ghostty config.


7. Add Zsh Plugins: Autosuggestions and Syntax Highlighting

These two plugins do more for day-to-day speed than anything else in this guide.

  • zsh-autosuggestions suggests full commands from your history as you type. Press the right arrow key to accept.
  • zsh-syntax-highlighting colours commands green when they’re valid and red when they’re not — before you hit Enter.
mkdir -p ~/.zsh

cd ~/.zsh

git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.zsh/zsh-syntax-highlighting

Now add these lines to ~/.zshrc:

source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

Order matters. zsh-syntax-highlighting must be sourced last in your .zshrc — after every other plugin and after the Oh My Posh line. Sourcing it earlier breaks highlighting in ways that are annoying to debug.

Reload with source ~/.zshrc and start typing a command you’ve run before. You’ll see the greyed-out suggestion appear.

Updating the plugins later

Since these are plain git clones, updating is just a pull:

git -C ~/.zsh/zsh-autosuggestions pull
git -C ~/.zsh/zsh-syntax-highlighting pull

8. Configure Zsh History

Out of the box, Zsh’s history is limited and doesn’t share between windows. This block fixes that — persistent history, shared across every open terminal, with duplicates filtered out.

Add to ~/.zshrc:

# ============================================
# ZSH History
# ============================================

# History file location
HISTFILE=~/.zsh_history

# Commands stored in memory (per session)
HISTSIZE=10000

# Commands saved to disk
SAVEHIST=10000

# Save history immediately, don't wait for the shell to exit
setopt INC_APPEND_HISTORY

# Share history between multiple terminal windows and tabs
setopt SHARE_HISTORY

# Append instead of overwriting the history file
setopt APPEND_HISTORY

# Skip consecutive duplicate commands
setopt HIST_IGNORE_DUPS

# Don't record commands that start with a space — useful for secrets
setopt HIST_IGNORE_SPACE

# Store a timestamp with each command
setopt EXTENDED_HISTORY

# Quality-of-life extras
setopt HIST_REDUCE_BLANKS          # strip superfluous whitespace
setopt HIST_VERIFY                 # show expanded history before running
setopt HIST_FIND_NO_DUPS           # skip duplicates when searching
setopt HIST_EXPIRE_DUPS_FIRST      # drop oldest duplicates first when trimming

HIST_IGNORE_SPACE is the underrated one here: prefix any command with a space and it never touches your history file. Handy when a command contains a token or password.


9. Add System Blur on GNOME (Optional)

Ghostty’s background-opacity makes the window translucent, but on most Linux compositors that means you see your wallpaper sharply through it. Blur makes it look intentional.

On GNOME:

  1. Install Extension Manager from your software centre, or run sudo apt install gnome-shell-extension-manager
  2. Open it, search for Blur my Shell, and install
  3. Open the extension’s settings and enable blur for applications
  4. Reopen Ghostty

On KDE Plasma, blur is built in — enable it under System Settings → Window Management → Window Rules, or it may just work. On tiling window managers, you’ll need a compositor like Picom with blur enabled.


Final Config Files

Here’s what everything looks like when it’s finished.

The complete ~/.zshrc

Order matters in this file. Keep syntax highlighting at the bottom.

# ============================================
# PATH
# ============================================
export PATH=$PATH:$HOME/.local/bin

# ============================================
# ZSH History
# ============================================
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000

setopt INC_APPEND_HISTORY
setopt SHARE_HISTORY
setopt APPEND_HISTORY
setopt HIST_IGNORE_DUPS
setopt HIST_IGNORE_SPACE
setopt EXTENDED_HISTORY
setopt HIST_REDUCE_BLANKS
setopt HIST_VERIFY
setopt HIST_FIND_NO_DUPS
setopt HIST_EXPIRE_DUPS_FIRST

# ============================================
# Prompt — Oh My Posh
# ============================================
eval "$(oh-my-posh init zsh --config ~/theme.json)"

# ============================================
# Plugins
# ============================================
source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh

# Keep this line LAST
source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
Leave a Reply

Your email address will not be published. Required fields are marked *

Previous Post

10 Essential Things to Do After Installing Fedora 44

Related Posts