Windows Terminal gets more and more my standard-tool to interact with PowerShell. Beneath all the cool built-in-features, it allows pretty fonts, characters and therefor a very unique prompt, supported by oh-my-posh and posh-git.
During the setup of those 2 great tools, i figured out that oh-my-posh doesnt work with the standard pwsh.exe prompt. Special characters dont get rendered correctly. So i found a way to decide which prompt to use depending on beeing started in Windows Terminal or not.
The magic differnec is that in Windows Terminal exists a variable called WSLENV with the value WT_SESSION:.
So in my profile i added this little piece of code.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
if ($env:WSLENV -eq 'WT_SESSION:') { import-Module posh-git Import-Module oh-my-posh Set-Theme Agnoster Set-Prompt } else { function prompt { $m = 30 # maximum prompt length $str = $pwd.Path if ($str.length -ge $m) { # reading from the end of the path. $str = "..." + $str.substring($str.length - $m + 4) } "C-"+"$str> " } } |
Now i have the correct prompt in native pwsh.exe and Windows Terminal.
Cheers / Roman