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.

  1. Download a font
  2. Unzip the downloaded .zip file
  3. Right-click the .ttf files inside → click Install

Set Ubuntu Font in Windows Terminal

  1. Open Windows Terminal
  2. Click the arrow ▾ → ⚙️ Settings
  3. On the left panel, under Profiles select Ubuntu
  4. In Additional settings, click on Appearance
  5. Set Font face to JetBrainsMono Nerd Font Mono
  6. 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

FeatureBashZshOh My ZshPowerlevel10k
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.