Why Use Windows Terminal?

Anyone who's used macOS iTerm2 or Linux GNOME Terminal, then gone back to Windows' built-in conhost.exe (the black window behind CMD), feels like they're from different eras. Windows Terminal mainly solves three problems:

  • Multi-Shell tabs: PowerShell, CMD, WSL Ubuntu, Azure Cloud Shell coexist in one window;
  • GPU-accelerated rendering: Smooth scrolling, supports ligatures, Unicode, emoji;
  • Modern configuration: JSON config file + GUI settings, with fine-grained control over themes, fonts, and shortcuts.

Combined with PowerShell 7 and WSL2, which have become standard for modern Windows command lines, the entire toolchain experience is now very close to macOS/Linux.

Installation and Basic Setup

Install from Microsoft Store by searching Windows Terminal, or use winget:

winget install Microsoft.WindowsTerminal

On first launch, you'll see PowerShell and CMD profiles by default. If WSL is installed, an Ubuntu profile appears automatically.

Settings: Click the dropdown arrow at the top → Settings (or Ctrl + ,). The first time, it'll recommend the JSON config file—but let's start with the GUI first, then cover JSON later.

Fonts: The Right Font Doubles the Experience

Windows Terminal's default font is Cascadia Mono, but it's recommended to switch to a font with ligature support and programmer-friendly design:

FontCharacteristics
Cascadia CodeMicrosoft's official font, supports ligatures, works out of the box
JetBrains MonoBy JetBrains, richest ligatures
Fira CodeClassic programmer font, complete ligatures
MesloLGS NFPaired with Powerlevel10k theme

Switch in Settings → Appearance → Font. Recommended: Regular weight, size 13–14, easy on the eyes for extended use.

Color Schemes

Windows Terminal includes several built-in color schemes:

  • Campbell Powershell: Default;
  • One Half Dark / Light: Classic Vim palette, looks great in dark mode;
  • Solarized Dark / Light: Familiar color temperatures for programmers;
  • Tango Dark / Light: Classic GNOME style;
  • Dracula: Purple-toned, trendy.

For more options, visit windowsterminalthemes.dev, which aggregates community themes—copy the JSON and paste it into settings.json.

Independent Configuration per Profile

Windows Terminal treats each Shell (PowerShell, CMD, WSL) as a profile with independent configuration:

  • Starting directory;
  • Font and size;
  • Color scheme;
  • Background image (supports opacity);
  • Icon (shown in the sidebar);
  • Command-line arguments (e.g., -NoExit -Command "...").

My PowerShell profile typically uses:

  • Starting directory: D:\workspace;
  • Font: JetBrains Mono Regular 13;
  • Color scheme: One Half Dark;
  • Background: Transparent + acrylic blur;
  • Icon: PowerShell official icon.

JSON Configuration: settings.json Details

Although the GUI covers most settings, fine customization still requires settings.json. Location:

%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json

Typical structure:

{
  "profiles": {
    "defaults": {
      "font": { "face": "JetBrains Mono", "size": 13 },
      "colorScheme": "One Half Dark",
      "useAcrylic": true,
      "acrylicOpacity": 0.85
    },
    "list": [
      {
        "guid": "{...}",
        "name": "PowerShell",
        "commandline": "pwsh.exe",
        "startingDirectory": "D:\\workspace"
      },
      {
        "guid": "{...}",
        "name": "Ubuntu",
        "commandline": "wsl.exe -d Ubuntu",
        "icon": "C:\\path\\to\\ubuntu.png"
      }
    ]
  },
  "schemes": [
    {
      "name": "Custom Dark",
      "background": "#1e1e1e",
      "foreground": "#d4d4d4",
      "cursorColor": "#ffffff"
    }
  ]
}

GUI settings sync to this file, so both approaches are synchronized. Editing JSON in an editor like Sublime Text is version-control and diff-friendly.

Split Panes

Windows Terminal supports horizontal / vertical split panes, running multiple Shells in one window.

Default shortcuts:

  • Alt + Shift + D: Auto split;
  • Alt + Shift + Plus: Vertical split;
  • Alt + Arrow: Switch focus between panes.

Split scenarios: Watch logs on the left, run commands on the right; run a server on top, debug the client below.

PowerShell 7: Worth Switching

Windows' built-in PowerShell 5.x is based on .NET Framework. PowerShell 7 (based on .NET Core) is significantly better in performance and features. Install:

winget install Microsoft.PowerShell

PowerShell 7 advantages:

  • Cross-platform (Linux, macOS too);
  • Significantly improved performance (startup ~3x faster);
  • Supports ??, ??= and other modern operators;
  • Better error messages;
  • Native for_each -Parallel support.

In Windows Terminal, change the PowerShell profile's command line to pwsh.exe to use version 7.

SSH and Remote Development

Turn SSH connections into profiles:

  1. Settings → New profile;
  2. Command line: ssh user@host;
  3. Icon: Add a server PNG.

Now the sidebar has a "My Server" icon—click to connect. With SSH config configured (in ~/.ssh/config), multiple servers stay clearly organized.

Git Bash Integration

After installing Git for Windows, you'll have a Git Bash profile. Configuration recommendations:

  • Command line: "C:\\Program Files\\Git\\bin\\bash.exe" --login -i;
  • Icon: Git official icon;
  • Color scheme: One Half Dark or Solarized Dark.

Git Bash provides a very Linux-like experience—paired with oh-my-bash, you get a beautiful prompt and completions.

Common Shortcuts

ShortcutAction
Ctrl + Shift + TNew tab
Ctrl + TabSwitch tabs (visual selection)
Ctrl + Shift + WClose current tab
Ctrl + Shift + 1/2/3Switch to specific profile
Alt + Shift + DAuto split pane
Alt + Shift + +Vertical split
Alt + ArrowSwitch focus between panes
Ctrl + Shift + ScrollAdjust font size
Ctrl + ,Open settings
Ctrl + Shift + FSearch

All shortcuts can be remapped in settings.json under keybindings.

Working with Other Tools

Windows Terminal + Clink + PowerShell 7 + WSL form my daily command-line workflow:

  • Find the target file in Everything → copy path → switch to Terminal → cd there;
  • CMD occasionally needed—enhanced with Clink;
  • Switch to WSL when Linux tools (grep, awk, sed) are needed;
  • SSH to servers directly from Terminal profiles.

Summary

Windows Terminal made the Windows command-line experience truly modern for the first time. It's not just "a prettier CMD"—it's a container that unifies PowerShell, CMD, WSL, and SSH.

If you're still using bare conhost.exe or cmd.exe, spend an hour installing and configuring Windows Terminal. After that, you won't want to go back.