Prerequisites
- Installed WSL with Ubuntu
- Using Windows Terminal
Install a Nerd Font
Powerlevel10k uses special icons (glyphs) — to display them properly, you’ll need a patched Nerd Font.
I use JetBrainsMono Nerd Font, but you can choose any from nerdfonts.com.
- Download a font
- Unzip the downloaded .zip file
- Right-click the
.ttffiles inside → click Install
Set Ubuntu Font in Windows Terminal
- Open Windows Terminal
- Click the arrow ▾ → ⚙️ Settings
- On the left panel, under Profiles select Ubuntu
- In Additional settings, click on Appearance
- Set Font face to
JetBrainsMono Nerd Font Mono - Click Save, then restart the terminal
💡 You can further customize options like transparency and background settings.
Install Zsh
sudo apt update && sudo apt install zsh -y
Then make Zsh your default shell (replacing Bash):
chsh -s $(which zsh)
If you run zsh now for the first time, and it doesn’t find a .zshrc or other config files, you’ll see:
This is the Z Shell configuration function for new users,
zsh-newuser-install.
...
You can:
(q) Quit and do nothing.
(0) Exit, creating the file ~/.zshrc containing just a comment.
(1) Continue to the main menu.
(2) Populate your ~/.zshrc with the configuration recommended...
👉 Type 0 and press Enter.This skips the wizard and creates a basic (empty) .zshrc file so it doesn’t ask you again.
💡 If you install Oh My Zsh right away, you won’t even see this screen — because Oh My Zsh will create
.zshrcfor you automatically.
Install Oh-My-Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
This command installs the Oh My Zsh framework, which:
- Creates and configures your .zshrc file
- Sets a default theme and enables useful plugins
- Loads (sources) the Oh My Zsh framework automatically
Install Powerlevel10k
Powerlevel10k is a fast, beautiful, and highly customizable Zsh theme. To install:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
Then, open your ~/.zshrc and replace the theme line with:
ZSH_THEME="powerlevel10k/powerlevel10k"
Finally, reload your shell:
exec zsh
This will launch the Powerlevel10k configuration wizard, where you’ll be guided through choosing your prompt style, icons, colors, and useful features with live previews.
💡 You can re-run the wizard later anytime with:
p10k configure
My Powerlevel10k Settings
Here’s what I picked in the Powerlevel10k wizard for the look above:
🔠 Testing glyphs
- Diamond prompt test: should be
Yes(glyphs render properly) - Lock icon test: should be
Yes - Arrow test: should be
Yes - Glyph alignment test: should be
Yes(icons fit between markers)
🧑🎨 Prompt Style
- Prompt Style:
Classic - Character Set:
Unicode - Prompt Color:
Dark - Show current time:
No
🎨 Visual Elements
- Prompt Separators:
Angled - Prompt Heads:
Flat - Prompt Tails:
Blurred - Prompt Height:
Two lines - Prompt Connection:
Disconnected - Prompt Frame:
No frame - Prompt Spacing:
Compact
💎 Enhancements
- Icons:
Many icons - Prompt Flow:
Concise - Transient Prompt:
Yes - Instant Prompt Mode:
Verbose - Overwrite
~/.p10k.zsh:Yes(new config saved)
Feature Breakdown
Now that Powerlevel10k is up and running, let’s take a look at what makes it so good.
These features don’t just make your terminal prettier — they make it faster, smarter, and easier to use.
Git Integration:
See your current branch and repo status (e.g. uncommitted changes) right in the prompt — no need for git status.
Exit Status Indicator:
Displays whether the last command failed or succeeded, so you can instantly spot errors.
Context-Aware Segments:
Automatically displays info like Python virtualenvs, Node versions, or Kubernetes context — only when relevant.
Autosuggestions:
Get real-time command suggestions from your history. Less typing, fewer mistakes.
Syntax Highlighting:
Highlights commands before execution, helping you catch typos, bad quotes, or syntax errors on the spot.
Async Git Info:
Fetches Git status in the background, keeping your prompt fast even in large repos.
Instant Prompt:
Shows your prompt instantly on shell startup — even while configs are still loading.
Transient Prompt:
Hides most of the prompt on previous lines to keep your command history clean and readable.
… and a little comparison
| Feature | Bash | Zsh | Oh My Zsh | Powerlevel10k |
|---|---|---|---|---|
| Git Integration | ❌ | ❌ | ✅ Branch only | ✅ Full |
| Exit Status Indicator | ❌ | ❌ | ❌ | ✅ Built-in |
| Context-Aware Segments | ❌ | ❌ | 🔧 Manual | ✅ Built-in |
| Autosuggestions | ❌ | 🔧 Plugin | 🔧 Plugin | 🔧 Plugin |
| Syntax Highlighting | ❌ | 🔧 Plugin | 🔧 Plugin | 🔧 Plugin |
| Async Git Info | ❌ | ❌ | ❌ | ✅ Built-in |
| Instant Prompt | ❌ | ❌ | ❌ | ✅ Built-in |
| Transient Prompt | ❌ | ❌ | ❌ | ✅ Default |
Conclusion
Powerlevel10k gives WSL a slick, info‑rich prompt, but if you want one theme that works everywhere (Bash, Zsh, Fish, PowerShell, etc.), take a look at Starship. It packs similar smart features into a tiny, cross‑shell binary.
