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:
| Font | Characteristics |
|---|---|
| Cascadia Code | Microsoft's official font, supports ligatures, works out of the box |
| JetBrains Mono | By JetBrains, richest ligatures |
| Fira Code | Classic programmer font, complete ligatures |
| MesloLGS NF | Paired 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 -Parallelsupport.
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:
- Settings → New profile;
- Command line:
ssh user@host; - 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
| Shortcut | Action |
|---|---|
Ctrl + Shift + T | New tab |
Ctrl + Tab | Switch tabs (visual selection) |
Ctrl + Shift + W | Close current tab |
Ctrl + Shift + 1/2/3 | Switch to specific profile |
Alt + Shift + D | Auto split pane |
Alt + Shift + + | Vertical split |
Alt + Arrow | Switch focus between panes |
Ctrl + Shift + Scroll | Adjust font size |
Ctrl + , | Open settings |
Ctrl + Shift + F | Search |
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 →
cdthere; - 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.