Skip to content

Repository files navigation

pwsh-terminal-setup logo: a folder with a terminal prompt glyph

pwsh-terminal-setup

A fast, good-looking PowerShell 7 + Windows Terminal setup, from a single command.

PowerShell 7+ Windows 10/11 License: MIT Latest release Docs

Documentation · Download · Install · Manual setup


It cuts shell startup from seconds to milliseconds by lazy-loading conda, installs a font with both ligatures and Nerd Font icons, adds a clean zsh-like prompt, and configures PSReadLine for syntax highlighting, smart history, and proper word navigation, all from one script, or a bundled installer with the font included.

Full documentation, including screenshots, a step-by-step manual guide, the complete command reference, and troubleshooting, lives on the documentation website. This README is the short version.

Preview

Prompt with git branch Syntax highlighting
Minimal prompt: path, conda env, and git branch (with branch glyph). Syntax highlighting: commands, parameters, strings, numbers, operators.
History prediction Ligatures and icons
History predictions: past commands suggested as a ListView dropdown. Ligatures + Nerd icons: ==> != -> join; branch/folder glyphs render.

Features

  • Fast startup: conda is loaded on first use instead of on every launch, taking startup from ~2.3 s to ~0.3 s. PowerShell telemetry and the update-check banner are disabled.
  • Ligatures + icons: installs LigaConsolas Nerd Font (a Consolas-style font with programming ligatures and Nerd Font glyphs) per-user, no admin.
  • Minimal zsh-like prompt: path, active conda env, and git branch. The branch is read straight from .git/HEAD, so rendering the prompt never spawns git (instant, even in big repos).
  • Great editing: PSReadLine with a dark syntax-highlighting palette, history-based predictions (ListView), prefix history search on ↑/↓, and Ctrl+←/→ word jumps that actually work in Windows Terminal.

Requirements

Install

Option A: Installer (recommended)

  1. Download the latest pwsh-terminal-setup-x.y.z-Setup.exe from the Releases page.
  2. Run it. It installs per-user (no admin needed), bundles the font so it works offline, and applies the whole setup.

The installer is unsigned, so Windows SmartScreen may warn on first launch. Click More info → Run anyway. PowerShell 7 must be installed first (the installer checks and tells you if not).

Option B: Script

git clone https://github.com/Abdullah-Masood-05/pwsh-terminal-setup.git
cd pwsh-terminal-setup
pwsh -ExecutionPolicy Bypass -File .\install.ps1

Then restart Windows Terminal, open a new PowerShell tab, and verify:

Write-Host "Icons: `u{e0a0}  `u{f07b}   Ligatures: ==> -> != >= <=   Emoji: 🚀 ✅"

You should see the branch/folder icons, joined operators, and color emoji. Try Ctrl+← / Ctrl+→ to jump word-by-word.

Customize from the command line

You don't have to hand-edit any file. The installer takes settings as parameters and applies them in one run:

# Font size, color scheme, prompt symbol, and prediction style in one shot
.\install.ps1 -FontSize 12 -ColorScheme "One Half Dark" -PromptSymbol "" -PredictionView InlineView

# Prompt + editing config only, skip conda and fonts
.\install.ps1 -SkipConda -SkipFont
Parameter What it changes
-FontSize <n> Windows Terminal font size
-ColorScheme <name> Windows Terminal color scheme (must already exist in settings.json)
-Opacity <0-100> Window background opacity (enables acrylic below 100)
-PromptSymbol <char> The prompt glyph (default )
-PredictionView <ListView|InlineView> PSReadLine prediction style
-FontFamily <name> Font family used in Windows Terminal
-SkipFont / -SkipTerminal / -SkipProfile / -SkipConda Skip a step

See the full installer options reference in the docs.

What it installs

Step Action Safety
1 Sets POWERSHELL_TELEMETRY_OPTOUT and POWERSHELL_UPDATECHECK at User scope env vars only
2 Installs LigaConsolas Nerd Font (per-user, registered in HKCU) reads the family name via .NET
3 Writes the profile to $PROFILE.CurrentUserAllHosts backs up to profile.ps1.bak; merges idempotently
4 Sets the font on Windows Terminal profiles.defaults and frees Ctrl+←/→ backs up settings.json.bak; JSON validated
5 Measures startup and confirms conda is a lazy placeholder n/a

Everything is idempotent (safe to re-run) and portable (paths resolved dynamically; conda is auto-detected across anaconda3 / miniconda3 / miniforge3 / PATH).

Prefer to configure it by hand?

The manual setup guide walks through every step (installing PowerShell 7, downloading and installing the Nerd Font, adding the profile, and patching Windows Terminal) with copy-able commands. The profile (profile.ps1) and the Windows Terminal fragments (windows-terminal/settings.partial.jsonc) are readable on their own.

Uninstall / restore

The installer never deletes, it backs up. To revert:

Copy-Item "$($PROFILE.CurrentUserAllHosts).bak" $PROFILE.CurrentUserAllHosts -Force
# and restore settings.json from its .bak next to the original

Credits

License

MIT

About

One-command setup for a fast PowerShell 7 + Windows Terminal: lazy-loaded conda, ligatures + Nerd Font icons, a minimal zsh-like prompt, and a full PSReadLine config.

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages