Transform your Linux terminal into a modern, beautiful shell — Zsh, Oh My Zsh, Starship prompt, Autosuggestions, Syntax Highlighting, and an automated setup script.
- Zsh — powerful shell that replaces Bash
- Oh My Zsh — plugin framework with 300+ plugins
- Starship — blazing-fast, cross-shell prompt written in Rust
- Autosuggestions — command suggestions as you type
- Syntax Highlighting — colors commands green/red as you type
| ⚡ Quick Start | Run one script and you're done. Recommended for most users. |
| 🛠 Manual Installation | Step-by-step guide if you want full control. |
- A supported distro: Ubuntu/Debian, Fedora, or Arch (and their derivatives)
gitandcurlinstalledsudoaccess (to install packages and change your default shell)
git clone https://github.com/giorgitchanturidze/style-linux-terminal.git
cd style-linux-terminal
chmod +x setup.sh
./setup.shThe script will:
- Detect your distro (Ubuntu/Debian, Fedora, Arch)
- Install Zsh, Oh My Zsh, Starship, and plugins
- Back up your existing configs
- Apply Gruvbox Rainbow preset and configure your shell
After the script finishes, restart your terminal or run:
exec zsh💡 The script asks before each step — you can skip anything you don't want.
If you prefer to set things up yourself, follow along below.
Zsh is a powerful shell that replaces Bash with better autocompletion, scripting, and plugin support.
Ubuntu / Debian:
sudo apt update && sudo apt install zsh -yFedora:
sudo dnf install zsh -yArch:
sudo pacman -S zshSet Zsh as your default shell:
chsh -s $(which zsh)Log out and back in (or restart your terminal) for the change to take effect.
💡 If
chshcomplains that zsh is not a valid shell, register it first:echo "$(which zsh)" | sudo tee -a /etc/shells
Oh My Zsh is a framework that manages your Zsh configuration and gives you access to hundreds of plugins and themes.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"Starship is a minimal, fast, and customizable prompt written in Rust. It works with any shell and shows useful info like Git branch, language versions, and command duration.
Install Starship:
curl -sS https://starship.rs/install.sh | shInstall a Nerd Font (required for icons):
Download and install MesloLGS NF or any Nerd Font you like. Then set it as your terminal's font in your terminal emulator's settings.
Enable Starship in Zsh:
In your ~/.zshrc:
-
Set the Oh My Zsh theme to empty so it doesn't override Starship:
ZSH_THEME="" -
Add the Starship init line at the very bottom of the file — it must come after
source $ZSH/oh-my-zsh.sh, otherwise Oh My Zsh will overwrite the prompt:eval "$(starship init zsh)"
Apply a preset:
mkdir -p ~/.config
starship preset gruvbox-rainbow -o ~/.config/starship.tomlSee Customization below for other presets.
Suggests commands as you type based on your history. Press → (right arrow) to accept.
git clone https://github.com/zsh-users/zsh-autosuggestions \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestionsColors your commands as you type — valid commands turn green, errors turn red.
git clone https://github.com/zsh-users/zsh-syntax-highlighting \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlightingEnable both plugins in ~/.zshrc:
Find the plugins=(git) line and replace it with:
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
)
⚠️ Order matters:zsh-syntax-highlightingmust be the last plugin in the list, otherwise it can interfere with widgets defined by other plugins.
source ~/.zshrcOr simply restart your terminal. You're done! 🎉
Browse all presets at starship.rs/presets:
starship preset gruvbox-rainbow -o ~/.config/starship.toml
starship preset nerd-font-symbols -o ~/.config/starship.toml
starship preset plain-text-symbols -o ~/.config/starship.tomlOr edit ~/.config/starship.toml directly — the Starship docs cover every option.
Your color scheme is set in your terminal emulator, not in the shell. Popular choices:
- Catppuccin — pastel colors, easy on the eyes
- Dracula — dark purple classic
- Tokyo Night — soft dark blue
- Gruvbox — warm retro tones
Search for your terminal + theme name (e.g., "Catppuccin Ghostty", "Dracula GNOME Terminal") to find install instructions.
You need a Nerd Font. Download one from nerdfonts.com (MesloLGS NF is a safe choice), install it, and set it as your terminal's font in your terminal emulator's preferences.
Make sure eval "$(starship init zsh)" is at the very end of your ~/.zshrc, after all other source/eval lines.
If you previously had Powerlevel10k installed, remove it:
rm -rf ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
rm -f ~/.p10k.zshThen make sure ZSH_THEME="" is set in your ~/.zshrc.
chsh -s $(which bash)Then log out and back in.
To remove everything and go back to a clean state:
# Switch back to bash
chsh -s $(which bash)
# Remove Oh My Zsh (this also removes plugins)
rm -rf ~/.oh-my-zsh
# Remove Starship
sudo rm -f "$(which starship)"
rm -f ~/.config/starship.toml
# Restore your most recent .zshrc backup (if setup.sh created one)
latest=$(ls -t ~/.zshrc.backup.* 2>/dev/null | head -1)
[ -n "$latest" ] && mv "$latest" ~/.zshrc && echo "Restored $latest → ~/.zshrc"If this helped you, consider giving the repo a star — it helps others find it!
Want to support the project? Buy me a coffee ☕
Found an issue or have a suggestion? Open an issue or submit a PR.
