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
.ttf
files 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
.zshrc
for 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.