Skip to main content

Command Palette

Search for a command to run...

Setting Up Windows Terminal for a Productive Workflow

Updated
3 min read
Setting Up Windows Terminal for a Productive Workflow

A well-configured terminal is the heart of a developer's productivity. Here is my personal guide to transforming the standard Windows Terminal into a high-performance environment using PowerShell Core and modern CLI tools.

1. Prerequisites

First, ensure you have the latest versions of the essential components installed:

  • Windows Terminal (available via Microsoft Store or GitHub).

  • PowerShell Core (pwsh): The cross-platform version of PowerShell is faster and more feature-rich than the built-in Windows PowerShell.

2. Profile Configuration

Organize your profiles in the Windows Terminal settings (Settings > Startup).

  • Set Default Profile: Set PowerShell Core as your default.

  • Ordering: Place your most-used environments at the top. For instance, I keep PowerShell Core first and my WSL distribution (openSUSE Tumbleweed) second. This allows for quick access via Ctrl+Shift+1, Ctrl+Shift+2, etc.

3. Typography and Nerd Fonts

To render icons and glyphs correctly in the terminal, you need a Nerd Font (patched fonts containing extra symbols).

  1. Download a font from Nerd Fonts. My personal favorites are Cascadia Code and JetBrains Mono.

  2. Install the font and set it in Windows Terminal: Settings > Profiles > PowerShell > Appearance > Font face.


4. Essential PowerShell Plugins

Run these commands in PowerShell Core to install the core productivity stack:

a) Oh-My-Posh (Theming engine)

winget install JanDeDobbeleer.OhMyPosh

b) Posh-Git (Git status in your prompt)

Install-Module posh-git -Confirm:$False -Force

c) Terminal-Icons (Adds icons to ls / dir outputs)

Install-Module Terminal-Icons -Confirm:$False -Force

d) PSFzf (Fuzzy search for files and history)

winget install junegunn.fzf
Install-Module PSFzf -Confirm:$False -Force

e) Zoxide (A smarter cd command)

winget install ajeetdsouza.zoxide

5. Configuring Oh-My-Posh

Initialize Oh-My-Posh to see available themes:

oh-my-posh init pwsh | Invoke-Expression
Get-PoshThemes

You can choose from dozens of built-in styles. Personally, I use a custom modified version of the "hotstick.minimal" theme.

6. Finalizing Your Profile Script

The PowerShell profile is a script that runs every time you start the terminal. Open it by typing:

notepad $PROFILE

Paste your configuration into this file. You can use my reference profile here as a template. Make sure to update the theme initialization line:

# Example theme initialization
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/mytheme.omp.json" | Invoke-Expression

# Add your custom aliases here
Set-Alias v nvim

Key Benefits of This Setup

By following these steps, your terminal will support:

  • Rich Visuals: A prompt showing Git branch status and execution time.

  • Visual File Navigation: Colorful icons in file listings.

  • Intelligence: Suggestions based on your command history.

  • Speed: Fuzzy search for files (Ctrl+F) and history (Ctrl+R).

  • Efficiency: Smart directory jumping with the z command and custom aliases.