Personal PowerShell configuration using Oh My Posh, posh-git, and quality-of-life modules for a modern dev workflow.
Designed for Windows + PowerShell 7.
If you’re on legacy Windows PowerShell, expect pain.
- Custom Oh My Posh prompt (
thomas.omp.json) - Git status integration
- Node.js version + package manager detection
- Icons, fuzzy finding, history-based autocomplete
- Minimal aliases, no magic nonsense
You need the following installed before this works:
winget install Microsoft.PowerShellVerify:
pwsh --versionSet-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iexVerify:
scoop --versionscoop install gitVerify:
git --versionInstall all required tools with Scoop:
scoop install `
oh-my-posh `
fzf `
z `
neovimPowerShell modules:
Install-Module posh-git -Scope CurrentUser -Force
Install-Module Terminal-Icons -Scope CurrentUser -Force
Install-Module PSReadLine -Scope CurrentUser -Force
Install-Module PSFzf -Scope CurrentUser -ForceRestart PowerShell after installing modules.
This setup requires a Nerd Font, or icons will break.
Recommended:
scoop bucket add nerd-fonts
scoop install Hack-NFThen set your terminal font to:
Hack Nerd Font
(Windows Terminal → Settings → Profile → Appearance)
git clone https://github.com/<your-username>/<repo-name>.git $HOME\.dotfilesNew-Item -ItemType SymbolicLink `
-Path $HOME\thomas.omp.json `
-Target $HOME\.dotfiles\thomas.omp.json `
-ForceCheck your profile path:
$PROFILEThen:
New-Item -ItemType SymbolicLink `
-Path $PROFILE `
-Target $HOME\.dotfiles\user_profile.ps1 `
-ForceIf symlinks fail, run PowerShell as Administrator once.
- Loads Oh My Posh with
thomas.omp.json - Enables posh-git branch + status info
- Adds Terminal-Icons for file listings
- Configures PSReadLine:
- History-based predictions
- Emacs keybindings
- Disabled bell
- Enables fzf for:
- Ctrl+F → provider search
- Ctrl+R → reverse history
- Adds common aliases:
g→ gitll→ lsvim→ nvimtig,less,grep
No telemetry. No startup bloat. No shell hijacking.
- You didn’t set a Nerd Font
- Restart the terminal after changing fonts
oh-my-posh --versionIf that fails, Oh My Posh isn’t installed correctly.
Import-Module posh-gitIf that errors, reinstall the module.
- This setup assumes Node.js is installed for the Node segment to appear
- If Node isn’t present, that segment silently hides (by design)
- Works best in Windows Terminal
Use it, fork it, break it, improve it.
Just don’t blame me if you can’t go back to the default prompt.