Edit - ⚠️ With the newer version of oh-my-posh, and significant changes from V2, this article is outdated. Note that this will still work perfectly fine with V2 of oh-my-posh.
The Windows Terminal is a modern, fast, efficient, powerful, and productive terminal application for users of command-line tools and shells like Command Prompt, PowerShell, and WSL.
Lets start with windows Terminal installation -
- Install the Windows Terminal from the Microsoft Store. This allows you to always be on the latest version when we release new builds with automatic upgrades.
-
Alternative Way (Via Chocolately)
-
choco install microsoft-windows-terminal
-
Alternative Way (Via Chocolately)
-
Next Step is to modify Windows Terminal settings.
Fire up your installed windows terminal, and open up its settings, which will open settings.json in your default editor.
- Under profiles list update the powershell profile to -
{
// Make changes here to the powershell.exe profile.
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
"name": "Linnea",
"commandline": "powershell.exe -NoLogo -NoExit",
"hidden": false,
"colorScheme": "Blue Matrix",
"fontFace": "Cascadia Code PL",
"fontSize": 10,
"icon": "xxxxxxxxxxxxxxxxxxxxxx",
"backgroundImage": "xxxxxxxxxxxxxxxxxxx",
"backgroundImageOpacity": 0.2,
"acrylicOpacity": 0.8,
"useAcrylic": true,
"startingDirectory": "Q:\\Development"
},
Properties - name-[ Appears as title in top bar ]
acrylicOpacity-[ its just the opacity of window ]
useAcrylic-[ to use acrylicOpacity it must be true]
icon-[ appears as favicon to window ]
(Note 1- make sure to update icon and background image to your personal liking)
(Note 2- make sure to that your defaultProfile has the guid of your powershell)
- Next step is to update our schemes list -
"schemes": [
{
"name": "Blue Matrix",
"black": "#101116",
"red": "#ff5680",
"green": "#00ff9c",
"yellow": "#fffc58",
"blue": "#00b0ff",
"purple": "#d57bff",
"cyan": "#76c1ff",
"white": "#c7c7c7",
"brightBlack": "#686868",
"brightRed": "#ff6e67",
"brightGreen": "#5ffa68",
"brightYellow": "#fffc67",
"brightBlue": "#6871ff",
"brightPurple": "#d682ec",
"brightCyan": "#60fdff",
"brightWhite": "#ffffff",
"background": "#1d2342",
"foreground": "#b8ffe1"
}
],
More themes at - atomcorp.github.io/themes/
That's pretty much for the windows Terminal Settings , lets move to add some cool plugins 🔥.
PowerLine Setup ⚡
Edit - ⚠️ With the newer version of oh-my-posh, and significant changes from V2. this article needs update. Note that this will still work perfectly fine with V2 of oh-my-posh.
Prerequisites -
- Install Cascadia code PL font. (Otherwise you might some gibberish on your terminal )
- Git for windows
- Install Posh-git and Oh-my-posh ( use powershell )
Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser
Customize your PowerShell prompt 🔨
- Open your PowerShell profile with
notepad $PROFILE
or the text editor of your choice. This is not your Windows Terminal profile. Your PowerShell profile is a script that runs every time PowerShell starts. - If your powershell doesn't already have a profile, create one ->
if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path ROFILE -Force }
- Now go ahead and add the following code to your powershell profile -
Import-Module posh-git
Import-Module oh-my-posh
Set-Theme Paradox
More themes at - oh-my-posh themes
( ⚠️ if your powershell gives module not found error ) add the following code with default module location, to the top of your Powershell Profile.
$env:PSModulePath = $env:PSModulePath + "$([System.IO.Path]::PathSeparator)C:\Users\xxxx\Documents\WindowsPowerShell\Modules"
Still facing error - Visit https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles?view=powershell-7
Modifying Oh-my-posh theme ( 🦄🔥🚀 Emojis )
Remember we set our default oh-my-posh theme to paradox, lets head over to customize it.
-
Navigate to your PSmodules directory, then into oh-my-posh themes directory
Documents\WindowsPowerShell\Modules\oh-my-posh\2.0.412\Themes
Open Paradox file, scroll down to the bottom and update following lines -
$sl.PromptSymbols.StartSymbol = [char]::ConvertFromUtf32(0x01F984) + [char]::ConvertFromUtf32(0x0001F525) + ' '
$sl.PromptSymbols.PromptIndicator = [char]::ConvertFromUtf32(0x01F680) +[char]::ConvertFromUtf32(0x276F)
(This lines will add cool emojis just before your StartSymbol & PromptIndicator)
Adding custom banner to your Powershell 🏳️🌈
This is quite tedious task if you want to add complex images in the banner.
( There is easier way Neofetch for windows, but it comes with its own lag overhead whenever you open your windows terminal )
-
Tedious but way less overhead Method
- Change your powershell file to add your custom ascii art.
- In my case, I changed my Profile Image to Ascii Art via https://www.topster.net/ascii-generator/.
- Next problem is color support, by default powershell doesn't allow you to write multipler colored text on a single line.
- ( You could proceed without this ) If want the above function install Write color module.
Install-Module -Name PSWriteColor
- Now just below your $psenvmodule path add the following lines to display your customized banner .
Write-Color -Text " /@ " -Color Cyan
Write-Color -Text " @(","@ " -Color Blue,Cyan
Write-Color -Text " @@/"," @* " -Color Blue, Cyan
Write-Color -Text " @#/"," @@* " -Color Blue, Cyan
Write-Color -Text " @@(/"," @@,, " -Color Blue, Cyan
Write-Color -Text " @%(/ @@","@@@@@@","@@@@ " -Color Blue, DarkCyan, Cyan
Write-Color -Text " @@#","#"," " -Color Blue, DarkCyan, Cyan
Write-Color -Text " @@##","#(((/","///**","****,,,,,@ " -Color Blue, DarkBlue, DarkCyan, Cyan
Write-Color -Text " @@%%#","##(((/","///**","****,,,,,,@ " -Color Blue, DarkBlue, DarkCyan, Cyan
Write-Color -Text "@@@@@W","@@@@@@","@@@@@@","@@@@@@@@@@@ " -Color Blue, DarkBlue, DarkCyan, Cyan
Write-Color -Text " "
(Note - the number of colors you can choose from is somewhat limited: Black, DarkBlue, DarkGreen, DarkCyan, DarkRed, DarkMagenta, DarkYellow, Gray, DarkGray, Blue, Green, Cyan, Red, Magenta, Yellow, and White )
Edit 1. - Your Powershell Profile should look like this - pastebin.com/JAX3Ce23
Edit 2. - Background Image source - facets.la
Edit 3. - With the new version of oh-my-posh, few commands (ex- set-theme ) have been depreciated. I'm planning to update the article with the specifics, till then use their documentation for updated syntax - Repo Link
Latest comments (54)
Is it possible to modify the Oh-my-posh theme in 2023?
Hi, for anyone have issue with "Set-Theme Paradox"
The term 'Set-Theme' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
see it here: github.com/microsoft/terminal/issu...
I love it the post but i couldn't set the emojis in the prompt, i have only themes :(
i have problem to set the paradox theme config emoji, because the file is a json and mark syntaxis error, is there someone that help me to set emoji in the prompt terminal?
My guess would be that updated version of oh-my-posh is cause of the problem.
As someone reported, they have depreciated set-theme command in the latest version. You could read their docs for newer syntax - github.com/JanDeDobbeleer/oh-my-posh
Anyways, Were you able to locate and edit oh-my-posh theme configuration file to add emojis as start symbol?
Did you add the following lines in paradox theme file?
'
$sl.PromptSymbols.StartSymbol = [char]::ConvertFromUtf32(0x01F984) + [char]::ConvertFromUtf32(0x0001F525) + ' '
$sl.PromptSymbols.PromptIndicator = [char]::ConvertFromUtf32(0x01F680) +[char]::ConvertFromUtf32(0x276F)
'
Looked at their documentation, transition from V2 to v3 of oh-my-posh is quite significant.
It would take some time for me to update the article.
i think same, i have the "3.147.0 oh-my-posh", i tried to follow lines in paradox theme file but the json gave me syntax error :(. Could be the file to set emojis have changed
That's paradox json screenshot
dev-to-uploads.s3.amazonaws.com/up...
I am having the same error please share if you get the solution
FYI some of these commands are no longer supported, for example
Set-Theme
is deprecatedWith new oh-my-posh version we need an article review :(.
PS: can you share your bg wallpaper? Thank you
Sorry but I don't have enough time to rewrite the article.
Image source - facets.la
what-a-life-what-a-meme.lifes-a-me...
I'm getting this for some reason, any particular reason why?
I guess ASCII art text is throwing error.
Test if there is still the same error if text I used in the post is used.
I recommend this tool -
topster.net/ascii-generator/
How do I add emojis to Oh My Posh V3?
When I try to edit the theme, its a JSON file, and the lines you specified are not valid JSONs
can u share the pic in your terminal background?
Check out this facets.la/. Some cool collection of images.
thank you so much
thank you! I love it :)
As far as I know it is not possible for cmd, but should be much easier for wsl, and there are many articles for the same.
How can get rid of this weird message?
dev-to-uploads.s3.amazonaws.com/i/...
Make sure in your settings.json ...you have -noLogo flag.
"commandline": "powershell.exe -NoLogo -NoExit",
Where are the settings.json located.? I can't find this, BTW I'm using
PowerShell 7.1.0
notWindowsPowerShell
I'm talking about windows terminal settings, which can be accessed from the terminal dropdown.
yah.! it's gone from
Windows Terminal
😊 but still, have onPowerShell
andWindowsPowerShell
😢The message will be gone in powershell.
This is so amazing, thank you thank you thank you!!! I thought the only way I could achieve a somewhat aesthetic terminal was using WSL and installing oh-my-zsh and whatnot. Massive thanks for real! 💙
Hi! love the article. But i was wondering how to change the emojis?
The hexcodes (0x...) you see in this snippet represents emojis. Just google hex code of emojis you like and replace the above code.
ohh okay, thanks Anup!
Some comments may only be visible to logged-in visitors. Sign in to view all comments.