A theme engine for Powershell in ConEmu inspired by the work done by Chris Benti on PS-Config and Oh-My-ZSH on OSX and Linux (hence the name).
More information about why I made this can be found on my blog.
Features:
- Easy installation
- Awesome prompt themes for PowerShell in ConEmu
- Git status indications (powered by posh-git)
- Failed command indication
- Admin indication
- Current session indications (admin, failed command, user)
- Configurable
- Easily create your own theme
- Separate settings for oh-my-posh and posh-git
- Does not mess with the default Powershell console
You should use ConEmu to have a brilliant terminal experience on Windows. You can install it using Chocolatey:
choco install ConEmuThe fonts I use are Powerline fonts, there is a great repository containing them.
I use Meslo LG M Regular for Powerline Nerd Font in my ConEmu setup together with custom colors. You can find my theme here.
You need to use the the PowerShell Gallery to install oh-my-posh.
Install posh-git and oh-my-posh:
Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUserList the current configuration:
$ThemeSettingsYou can tweak the settings by manipulating $ThemeSettings.
This example allows you to tweak the branch symbol using a unicode character:
$ThemeSettings.GitSymbols.BranchSymbol = [char]::ConvertFromUtf32(0xE0A0)Also do not forget the Posh-Git settings itself (enable the stash indication for example):
$GitPromptSettingsSet-Theme: set a theme from the Themes directory. If no match is found, it will not be changed. Autocomplete is available to list and complete available themes.
Set-Theme paradoxShow-ThemeColors: display the colors used by the theme
Show-Colors: display colors configured in ConEmu
If you want to create a theme it can be done rather easily by adding a mytheme.psm1 file in the folder indicated in $ThemeSettings.MyThemesLocation (the folder defaults to ~\Documents\WindowsPowerShell\PoshThemes, feel free to change it).
The only required function is Write-Theme. You can use the following template to get started:
#requires -Version 2 -Modules posh-git
function Write-Theme
{
param(
[bool]
$lastCommandFailed,
[string]
$with
)
# enter your prompt building logic here
}
$sl = $global:ThemeSettings #local settingsFeel free to use the public helper functions Get-VCSStatus, Get-VcsInfo, Get-Drive, Get-ShortPath, Set-CursorForRightBlockWrite, Save-CursorPosition, Pop-CursorPosition, Set-CursorUp or add your own logic completely.
To test the output in ConEmu, just switch to your theme:
Set-Theme mythemeIf you want to include your theme in oh-my-posh, send me a PR and I'll try to give feedback ASAP.
Happy theming!










