Customize Your Arch Linux Terminal with Zsh and Starship

Arch Linux Terminal

A useful Arch Linux terminal setup changes the shell behavior you use every day, then adds a prompt that exposes useful context without hiding the command line. Start with Zsh, Starship, and a font that can render your chosen symbols.

I refreshed the package names and startup commands against the current Arch package listings and Starship documentation. The screenshots below show the existing Zsh and font-selection steps that still match the workflow.

Choose the parts you want to change

Your terminal emulator draws the window. Your shell reads and runs commands. Your prompt is the text shown before each command, so you can replace it without changing the terminal emulator.

PartUse it forCurrent choice
ShellCompletion, history, and interactive behaviorZsh
PromptGit state, directory, exit status, and language contextStarship
Terminal emulatorTabs, key bindings, colors, and renderingKeep yours or use Alacritty
FontOptional symbols in the promptA Nerd Font

Install Zsh, Starship, and a terminal emulator

Run pacman to update your system and install Zsh with Starship.

sudo pacman -Syu
sudo pacman -S zsh starship
# Optional: install a terminal emulator
sudo pacman -S alacritty

Add Alacritty only when you want a separate GPU-accelerated terminal emulator. Keep Konsole, GNOME Terminal, kitty, or another emulator when it already suits your workflow.

Make Zsh your login shell

Check the installed Zsh path and pass that path to chsh, then log out and back in.

command -v zsh
chsh -s "$(command -v zsh)"
echo "$SHELL"

Echoing SHELL shows the recorded login shell. Inspect the terminal profile if it starts a different shell.

Zsh shown as the active shell in a terminal
The screenshot shows the expected shell change. Your path can differ, so command -v zsh belongs in the setup.

Initialize Starship in Zsh

Starship reads its configuration from ~/.config/starship.toml and starts through your shell startup file.

printf '\neval "$(starship init zsh)"\n' >> ~/.zshrc
exec zsh

Add the initialization line, then start a fresh Zsh session. Starship works without a custom file, so confirm the integration before tuning modules.

mkdir -p ~/.config
starship preset plain-text-symbols -o ~/.config/starship.toml

Use the plain-text preset when you do not want icon-font dependencies. Remove that file later to return to Starship defaults.

Use a Nerd Font only when you want icons

A Nerd Font adds glyphs that themes and prompts can display as icons.

Font installation dialog for an Arch Linux terminal setup
Select the font in your terminal emulator profile before enabling an icon-heavy configuration. Installing a font alone does not change the characters your terminal renders.

Add syntax highlighting and history suggestions

Install the two Zsh extensions for interactive command entry.

sudo pacman -S zsh-autosuggestions zsh-syntax-highlighting
printf '\nsource /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh\nsource /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh\n' >> ~/.zshrc
exec zsh

Source syntax highlighting last, after the other startup work, because it needs the completed command line.

Autosuggestions draw from command history, while syntax highlighting changes recognized commands and arguments before execution.

Keep the startup file small

Your ~/.zshrc runs for every interactive Zsh session. Add integrations one at a time and start a new Zsh session after each change, so a broken line has one obvious source.

  1. Install packages with pacman.
  2. Set Zsh as the login shell and log in again.
  3. Add Starship initialization, then run exec zsh.
  4. Add a font only if your prompt configuration uses icons.
  5. Add one plugin integration at a time and reopen Zsh.

Troubleshoot a terminal that does not change

If your prompt does not appear, run zsh -n ~/.zshrc to find shell syntax errors. If symbols render as empty boxes, select a compatible Nerd Font in the terminal profile or return to the plain-text preset.

  • Use echo $0 to see the shell running in the current terminal.
  • Use command -v starship to confirm that Starship is on your PATH.
  • Use grep starship ~/.zshrc to confirm that the initialization line is present once.
  • Keep zsh-syntax-highlighting as the final sourced plugin.
  • Do not run multiple prompt frameworks from the same startup file.

Continue with the next Arch Linux task

Once the terminal is ready, use the Linux command line gives you concrete commands to practice. If this is a new desktop, install Arch Linux with archinstall covers the setup path first.

If you need to reason about Zsh startup behavior, understand shell startup files. For terminal-based editing, set up Vim completion is the next useful step, and compare Linux shell types puts the shell choice in context.

What this setup changes

Zsh changes interactive shell behavior. Starship changes the prompt shown by that shell. Your terminal emulator and font remain separate choices, which makes it easy to keep the parts that help and remove the rest.