Hey Folks! 👋 If you’ve ever stared at a boring default terminal and thought “there has to be a better way” — you’re in the right place. Today I’m walking you through my entire Linux terminal setup, step by step. By the end of this post, your terminal is going to look stunning and feel super productive. Let’s go! 🚀
Why Bother Customizing Your Terminal? 🤔
Your terminal is where you live as a developer. Spending just a few hours making it beautiful and ergonomic pays back every single day. Here’s what a great setup gives you:
- Speed: Autocomplete, syntax highlighting, and smart suggestions mean fewer keystrokes.
- Clarity: A well-designed prompt tells you exactly where you are — branch, directory, exit status.
- Joy: Seriously. A terminal that looks great just feels better to work in.
Alright, let’s build it! 🛠️
Step 1: Install a Modern Terminal Emulator 💻
The default GNOME Terminal or xterm is fine, but we can do way better. I use Alacritty — a GPU-accelerated, blazing-fast terminal emulator written in Rust.
Installing Alacritty on Ubuntu/Debian
sudo add-apt-repository ppa:aslatter/ppa
sudo apt update
sudo apt install alacritty
Installing Alacritty on Arch / Manjaro
sudo pacman -S alacritty
Installing Alacritty on Fedora
sudo dnf install alacritty
Prefer Kitty? That works too!
sudo apt install kitty(Ubuntu) orsudo pacman -S kitty(Arch). The rest of this guide applies to both.
Step 2: Install Zsh 🐚
Bash is the default shell on most Linux distros, but Zsh is where the magic happens. It has better completion, history search, and plugin support.
# Ubuntu / Debian
sudo apt install zsh
# Arch / Manjaro
sudo pacman -S zsh
# Fedora
sudo dnf install zsh
Now make it your default shell:
chsh -s $(which zsh)
Log out and log back in. You’re now on Zsh! 🎉
Step 3: Install Oh My Zsh 🎩
Oh My Zsh is a community-driven framework for managing your Zsh configuration. It bundles hundreds of plugins and themes that would take ages to set up manually.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
This creates a ~/.zshrc config file and a ~/.oh-my-zsh directory. Easy!
Step 4: Install a Nerd Font 🔤
Before installing the theme, you need a Nerd Font — a patched font that includes thousands of icons and glyphs used by the prompt and plugins.
I recommend JetBrains Mono Nerd Font:
# Create the fonts directory if it doesn't exist
mkdir -p ~/.local/share/fonts
# Download JetBrains Mono Nerd Font
cd /tmp
curl -LO https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.zip
unzip JetBrainsMono.zip -d JetBrainsMono
cp JetBrainsMono/*.ttf ~/.local/share/fonts/
# Refresh the font cache
fc-cache -fv
Then open your terminal emulator settings and set the font to JetBrainsMono Nerd Font Mono.
Step 5: Install Powerlevel10k Theme ⚡
Powerlevel10k (p10k) is by far the most popular Zsh theme. It’s lightning fast and comes with an interactive wizard that walks you through customizing every part of your prompt.
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git \
${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
Now open your ~/.zshrc and set the theme:
# Find this line and change it
ZSH_THEME="powerlevel10k/powerlevel10k"
Reload your shell:
source ~/.zshrc
The p10k configuration wizard will launch automatically. Just follow the prompts — it shows you previews for each option and builds your perfect prompt. ✨
Want to re-run the wizard later? Just type
p10k configure.
Step 6: Add Powerful Zsh Plugins 🔌
This is where your terminal becomes genuinely smart. Let’s add the two most essential plugins:
zsh-autosuggestions
This plugin suggests commands as you type based on your history. Hit → to accept a suggestion.
git clone https://github.com/zsh-users/zsh-autosuggestions \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
zsh-syntax-highlighting
This plugin highlights commands in green (valid) or red (invalid) as you type — before you even hit Enter.
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
Enable Both Plugins
Open ~/.zshrc and find the plugins line. Add both plugins:
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
Reload:
source ~/.zshrc
Try typing part of a previous command — you’ll see the suggestion in grey. You’ll never go back! 😄
Step 7: Apply a Colorscheme 🎨
A great colorscheme ties everything together. I love Tokyo Night — it’s easy on the eyes for long coding sessions.
Alacritty Colorscheme
Create or edit ~/.config/alacritty/alacritty.toml:
[colors.primary]
background = "#1a1b26"
foreground = "#c0caf5"
[colors.normal]
black = "#15161e"
red = "#f7768e"
green = "#9ece6a"
yellow = "#e0af68"
blue = "#7aa2f7"
magenta = "#bb9af7"
cyan = "#7dcfff"
white = "#a9b1d6"
[colors.bright]
black = "#414868"
red = "#f7768e"
green = "#9ece6a"
yellow = "#e0af68"
blue = "#7aa2f7"
magenta = "#bb9af7"
cyan = "#7dcfff"
white = "#c0caf5"
Save and reopen Alacritty — gorgeous! 🌃
Step 8: Supercharge with tmux (Optional but Recommended) 🖥️
tmux is a terminal multiplexer that lets you split your terminal into panes, create multiple windows, and keep sessions alive even when you close the terminal.
# Ubuntu / Debian
sudo apt install tmux
# Arch / Manjaro
sudo pacman -S tmux
# Fedora
sudo dnf install tmux
Create a basic config at ~/.tmux.conf:
# Change prefix from C-b to C-a (easier to reach)
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix
# Split panes with | and -
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %
# Enable mouse support
set -g mouse on
# Start window numbering at 1
set -g base-index 1
# Enable 256 colors
set -g default-terminal "screen-256color"
Start tmux by typing tmux in your terminal. Split your screen with C-a | (vertical) or C-a - (horizontal). 🪄
Putting It All Together 🎯
Here’s a quick recap of everything we’ve set up:
| Tool | Purpose |
|---|---|
| Alacritty | Fast, GPU-accelerated terminal emulator |
| Zsh | Powerful shell with better UX than Bash |
| Oh My Zsh | Plugin & theme framework for Zsh |
| JetBrains Mono Nerd Font | Icon-rich font for glyphs in the prompt |
| Powerlevel10k | Beautiful, fast Zsh theme |
| zsh-autosuggestions | Smart command suggestions from history |
| zsh-syntax-highlighting | Live color feedback as you type |
| Tokyo Night | Eye-friendly colorscheme |
| tmux | Terminal multiplexer for multi-pane workflows |
Bonus: Handy Aliases to Add to ~/.zshrc 🚀
# Navigation
alias ..='cd ..'
alias ...='cd ../..'
alias ll='ls -alF --color=auto'
alias la='ls -A --color=auto'
# Git shortcuts
alias gs='git status'
alias ga='git add .'
alias gc='git commit -m'
alias gp='git push'
alias gl='git log --oneline --graph --decorate'
# Quick edit config files
alias zshconfig='$EDITOR ~/.zshrc'
alias reload='source ~/.zshrc && echo "Zshrc reloaded! ✅"'
# System
alias update='sudo apt update && sudo apt upgrade -y' # Change for your distro
alias ports='ss -tuln'
Final Thoughts 🎉
And that’s it! You’ve just built a terminal setup that would make any developer jealous. 😄 The combination of Alacritty, Zsh, Oh My Zsh, Powerlevel10k, and the right plugins turns your terminal from a plain black box into a powerful, beautiful productivity machine.
The best part? It’s your setup. Tweak the colors, change the prompt style, add more plugins — make it reflect the way you work. That’s the whole joy of it.
Happy terminal crafting, and keep on coding! 💻✨
Meanwhile we can connect over: