Windows Git Prompt for WSL (Bash) and PowerShell
Michael Crump
Posted on January 21, 2020
AMA - Send me a text at +14252246702. I'll wrap up the Q&A into a dev.to blog post.
In this tutorial, we aim to bring life to our boring old PowerShell and Bash prompt by adding a colorful Git prompt. Kinda like this one!
PowerShell is steps 1-5 and WSL (Bash) steps 6-10. Many thanks to Gaurav Kamath for pointing this out.
Let's GOOOOO!!!
0.) Install WSL if you wish to have a Bash prompt.
1.) Install Windows Terminal for a productive terminal application and shells like Command Prompt, PowerShell, and WSL. Its main features include multiple tabs, Unicode and UTF-8 character support, a GPU accelerated text rendering engine, and custom themes, styles, and configurations.
2.) Install Git for Windows so that you can use git from the command line.
3.) Run these two commands in your PowerShell Window to install posh-git which is a PowerShell module that integrates Git and PowerShell by providing Git status summary information that can be displayed in the PowerShell prompt and oh-my-posh which is a theme engine for Powershell
Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser
4.) Within PowerShell, run notepad $PROFILE
and add these lines to ensure the modules and theme is loaded upon startup.
Import-Module posh-git
Import-Module oh-my-posh
Set-Theme Paradox
Close and reopen the PowerShell prompt and the changes should be applied. Simply navigate over to a Git repo to see changes.
5.) Set the Execution Policy to Unrestricted if you are unable to see the new theme or if it provides an error.
Set ExecutionPolicy Unrestricted
6.) Install GoLang (or if you prefer Python for the Powerline add-in).
sudo apt install golang-go
Run sudo apt update -y && sudo apt upgrade -y
if it 404s during installation
7.) Add Powerline for a beautiful and useful low-latency prompt for your shell, written in go.
go get -u github.com/justjanne/powerline-go
8.) Edit ~./bashrc
with VS Code or Nano (ex. code ~./bashrc or nano ~./bashrc) and add the following information (source
GOPATH=$HOME/go
function _update_ps1() {
PS1="$($GOPATH/bin/powerline-go -error $?)"
}
if [ "$TERM" != "linux" ] && [ -f "$GOPATH/bin/powerline-go" ]; then
PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
fi
9.) Install a compatible Font for the terminal.
10.) Inside of the Windows Terminal, go to Settings and add the fontFace line to your profile.json under the Ubuntu and PowerShell section. Below is a snippet of my Ubuntu section.
{
"guid": "{123-38b7-51cf-b940-2309a097f518}",
"hidden": false,
"name": "Ubuntu",
"source": "Windows.Terminal.Wsl",
"fontFace": "Delugia Nerd Font"
},
Finished!
Did you like this? I streamed this live on Twitch. Follow me for upcoming developer streams.
Recap, What did we do today?
- [x] Install Windows Terminal
- [x] Install Git for Windows
- [x] Install Posh-Git and Oh-My-Posh
- [x] Import PowerShell Modules and Set Theme
- [x] Change Execution Policy to All
- [x] Install GoLang for Windows
- [x] Run “sudo apt update” if it 404’s
- [x] Install Powerline
- [x] Edit ~/bashrc
- [x] Install Font
- [x] Add Font to Terminal Profile
- [x] Closing
Things we learned
- Installed the necessary Windows Terminal and Git for Windows applications, and why you would want to create a Git Prompt for WSL (Bash) and PowerShell
- Installed modules and theme for PowerShell
- Installed GoLang and Powerline (Git Prompt color)
- Install font to and configure our Terminal Profile
Results
- A brand new Git prompt for PowerShell and Bash
Sources
- Based on Scott Hanselman's and Junseo Park Blog Post, Installation docs and this Awesome-WSL repo.
Posted on January 21, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.