- Official Post
A small refreshed video for 2025 about creating a new personalised profile for PowerShell.
Here is also the written guide:
First check that you have Terminal installed and PowerShell 7.x - pay attention to better user the latest version and not the pre release version.
Open a PowerShell window as administrator and change to your download folder and install the latest Terminal version.
cd c:\users\username\Downloads
Add-AppPackage -path .\Microsoft.WindowsTerminal_1.23.13503.0_8wekyb3d8bbwe.msixbundle
Then, for the PowerShell version, you can download the msi file and simply install it by double clicking on it and follow the instructions.
Installing Chocolatey
Check out their website for further instructions.
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
Basic Terminal Settings
Open now Terminal and go here into the settings and put PowerShell (the one with the black icon) as default - normally Windows PowerShell (the own with the blue icon is by default) - don't forget to save.
Now reopen Terminal and you should see that PowerShell 7.x is now used.
Reopen the settings and swap to the Appearance Tab and look for the option "use acrylic material in the tab row" and turn that one on.
Swap now to the Color schemes tab and choose here the "One Half Dark" Theme. Here take the option to make a copy of this theme so we can adapt it for our needs.
Simply then scroll down on the page and choose "rename color scheme" and type in your wanted name.
Now we are changing the default settings under the "defaults" tab.
Navigate to "Appearance" and choose under "color scheme" the one you just created/copied. Here you would also change the font but this will be done later after we installed the correct fonts.
Scroll down on that tab until you reach the transparency header where you can also find an option to enable acrylic material which of course you are doing. But here you need to pay attention to move the slider for the "background opacity" to as example 50%.
As I prefer another background color we are going to change this one to but for that you need to open the JSON file (button at the bottom left of the Terminal window).
Search here for the profiles section and look for your profile name you have chosen earlier on. Look than for the "background" part and enter the new color as a hex value - #001B26
Here my file as example:
{
"$help": "https://aka.ms/terminal-documentation",
"$schema": "https://aka.ms/terminal-profiles-schema",
"actions": [],
"copyFormatting": "none",
"copyOnSelect": false,
"defaultProfile": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
"keybindings":
[
{
"id": "Terminal.CopyToClipboard",
"keys": "ctrl+c"
},
{
"id": "Terminal.FindText",
"keys": "ctrl+shift+f"
},
{
"id": "Terminal.PasteFromClipboard",
"keys": "ctrl+v"
},
{
"id": "Terminal.DuplicatePaneAuto",
"keys": "alt+shift+d"
}
],
"newTabMenu":
[
{
"type": "remainingProfiles"
}
],
"profiles":
{
"defaults":
{
"colorScheme": "ISeeTWizard",
"font":
{
"face": "MesloLGM Nerd Font"
},
"opacity": 50,
"useAcrylic": true
},
"list":
[
{
"commandline": "%SystemRoot%\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
"hidden": false,
"name": "Windows PowerShell"
},
{
"commandline": "%SystemRoot%\\System32\\cmd.exe",
"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
"hidden": false,
"name": "Eingabeaufforderung"
},
{
"guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
"hidden": false,
"name": "Azure Cloud Shell",
"source": "Windows.Terminal.Azure"
},
{
"guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
"hidden": false,
"name": "PowerShell",
"opacity": 50,
"source": "Windows.Terminal.PowershellCore"
},
{
"guid": "{2ece5bfe-50ed-5f3a-ab87-5cd4baafed2b}",
"hidden": false,
"name": "Git Bash",
"source": "Git"
}
]
},
"schemes":
[
{
"background": "#001B26",
"black": "#282C34",
"blue": "#61AFEF",
"brightBlack": "#5A6374",
"brightBlue": "#61AFEF",
"brightCyan": "#56B6C2",
"brightGreen": "#98C379",
"brightPurple": "#C678DD",
"brightRed": "#E06C75",
"brightWhite": "#DCDFE4",
"brightYellow": "#E5C07B",
"cursorColor": "#FFFFFF",
"cyan": "#56B6C2",
"foreground": "#DCDFE4",
"green": "#98C379",
"name": "ISeeTWizard",
"purple": "#C678DD",
"red": "#E06C75",
"selectionBackground": "#FFFFFF",
"white": "#DCDFE4",
"yellow": "#E5C07B"
}
],
"themes": [],
"useAcrylicInTabRow": true
}
Display More
Save the file and close the Terminal window and reopen it.
Installing different tools
#Change Execution Policy
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
#Install Scoop
iwr -useb get.scoop.sh | iex
#Install curl sudo and jq
scoop install curl sudo jq
#Test curl - answer should be ok
curl 'https://api.inkdrop.app/' | jq .
#Install Git
winget install -e --id Git.Git
#Install neovim and gcc
scoop install neovim gcc
#Test nvim by simply entering nvim and see if it opens - with :q you close nvim again
#Create a working directoy und your username
mkdir .config/PowerShell
#Edit the user profile PowerShell script file
nvim .config/powershell/user_profile.ps1
Display More
If you miss any runtime for example for neovim you can download this AiO package from here ans install it.
Here is the full user_profile.ps1 file - you'll get errors if you directly copy/paste everything in it and not step by step like in the video. But you can ignore those errors - it's just easier for debugging if you run into an error if you move on step by step.
#Load Modules
Import-Module -Name Terminal-Icons
#Load Aliases
Set-Alias -Name vim -Value nvim
Set-Alias ll ls
Set-Alias g git
Set-Alias grep findstr
Set-Alias tig 'C:\Program Files\Git\usr\bin\tig.exe'
Set-Alias less 'C:\Program Files\Git\usr\bin\less.exe'
#Set Prompt
oh-my-posh init pwsh --config "$HOME\.config\PowerShell\config.omp.json" | Invoke-Expression
# PSReadLine
Set-PSReadLineOption -EditMode Emacs
Set-PSReadLineOption -BellStyle None
Set-PSReadLineKeyHandler -Chord 'Ctrl+d' -Function DeleteChar
Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle ListView
# Fzf
Import-Module PSFzf
Set-PsFzfOption -PSReadlineChordProvider 'Ctrl+f' -PSReadlineChordReverseHistory 'Ctrl+r'
# Env
$env:GIT_SSH = "C:\Windows\system32\OpenSSH\ssh.exe"
# Utilities
function which ($command) {
Get-Command -Name $command -ErrorAction SilentlyContinue |
Select-Object -ExpandProperty Path -ErrorAction SilentlyContinue
}
Display More
:wq is used to quit nvim and save the file!
#Edit the default PowerShell profile file
nvim $PROFILE.CurrentUserAllHosts
#Text to enter in that file - load our personal PowerShell profile script file - pay attention to upercase text as it is case sensitive!
$env:USERPROFILE\.config\powershell\user_profile.ps1
#Install Oh My Posh - After Installing restart the Terminal window
winget install JanDeDobbeleer.OhMyPosh --source winget
#Install the Nerd Fonts - Show List
oh-my-posh font install
#Install the Meslo Nerd Fonts - Example
oh-my-posh font install meslo
Here is the link to their site to find more information.
For the Font I use by default the MesloLGM Nerd Font - change this in the Terminal settings like mentioned earlier (already set in my example JSON file.
Oh My Posh Configuration
{
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
"blocks": [
{
"type": "prompt",
"alignment": "left",
"segments": [
{
"properties": {
"cache_duration": "none"
},
"leading_diamond": "\u256d\u2500\ue0b6",
"template": " {{ .Name }} ",
"foreground": "#ffffff",
"background": "#0077c2",
"type": "shell",
"style": "diamond"
},
{
"properties": {
"cache_duration": "none",
"root_icon": "\uf292"
},
"template": "<parentBackground>\ue0b0</> \uf0e7 ",
"foreground": "#FFFB38",
"background": "#ef5350",
"type": "root",
"style": "diamond"
},
{
"properties": {
"cache_duration": "none",
"style": "full"
},
"template": " {{ .Path }} ",
"foreground": "#E4E4E4",
"powerline_symbol": "\ue0b0",
"background": "#444444",
"type": "path",
"style": "powerline"
},
{
"properties": {
"branch_icon": "\ue725 ",
"cache_duration": "none",
"fetch_status": true,
"fetch_upstream_icon": true
},
"template": " {{ .HEAD }} {{ if .Working.Changed }}{{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }}<#ef5350> \uf046 {{ .Staging.String }}</>{{ end }} ",
"foreground": "#011627",
"powerline_symbol": "\ue0b0",
"background": "#FFFB38",
"type": "git",
"style": "powerline",
"background_templates": [
"{{ if or (.Working.Changed) (.Staging.Changed) }}#ffeb95{{ end }}",
"{{ if and (gt .Ahead 0) (gt .Behind 0) }}#c5e478{{ end }}",
"{{ if gt .Ahead 0 }}#C792EA{{ end }}",
"{{ if gt .Behind 0 }}#C792EA{{ end }}"
]
}
]
},
{
"type": "prompt",
"alignment": "right",
"segments": [
{
"properties": {
"cache_duration": "none",
"fetch_package_manager": true,
"npm_icon": " <#cc3a3a>\ue5fa</> ",
"yarn_icon": " <#348cba>\uf61a</>"
},
"leading_diamond": " \ue0b6",
"trailing_diamond": "\ue0b4",
"template": "\ue718 {{ if .PackageManagerIcon }}{{ .PackageManagerIcon }} {{ end }}{{ .Full }}",
"foreground": "#3C873A",
"background": "#303030",
"type": "node",
"style": "diamond"
},
{
"properties": {
"cache_duration": "none"
},
"leading_diamond": " \ue0b6",
"trailing_diamond": "\ue0b4",
"template": " \uf073 {{ .CurrentDate | date .Format }} ",
"foreground": "#ffffff",
"background": "#40c4ff",
"type": "time",
"style": "diamond",
"invert_powerline": true
}
]
},
{
"type": "prompt",
"alignment": "left",
"segments": [
{
"properties": {
"cache_duration": "none"
},
"template": "\u2570\u2500",
"foreground": "#21c7c7",
"type": "text",
"style": "plain"
},
{
"properties": {
"always_enabled": true,
"cache_duration": "none"
},
"template": "❯{{ if gt .Code 0 }}\uf00d{{ else }}\uf42e{{ end }} ",
"foreground": "#e0f8ff",
"type": "exit",
"style": "plain",
"foreground_templates": [
"{{ if gt .Code 0 }}#ef5350{{ end }}"
]
}
],
"newline": true
}
],
"version": 3
}
Display More
That is the complete JSON file for Oh My Posh.
Install the rest of the maybe once needed tools
#Install nvm
scoop install nvm
#Install the current Node version
nvm install 24.12.0
nvm use 24.12.0
#Install the Terminal Icons
Install-Module -Name Terminal-Icons -Repository PSGallery -Force
#Install z
Install-Module -Name z -Force
#Install PSReadLine
Install-Module -Name PSReadLine
#Install fzf
scoop install fzf
Install-Module -Name PSFzf -Scope CurrentUser -Force
Display More
Please check here what the current LTS node version is.