Windows Terminal is Microsoft's open-source, GPU-accelerated terminal host for Windows, replacing older shells like conhost.exe as the modern front-end for PowerShell, Command Prompt, WSL, Azure Cloud Shell, and any custom command-line application. It is driven by a single settings.json file whose layered structure β global defaults, per-profile overrides, actions, color schemes, and themes β means understanding that hierarchy unlocks almost every customization without touching any other configuration surface. The key mental model: anything placed in profiles.defaults applies to every shell automatically, so you set base preferences once and override only where a specific profile truly needs to differ.
What This Cheat Sheet Covers
This topic spans 21 focused tables and 188 indexed concepts. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
Table 1: settings.json File Structure and Location
The settings.json file is the single source of truth for all Windows Terminal customization. Every setting lives in a well-defined section of this JSON file, and understanding the top-level sections and where the file lives on disk is the prerequisite for all other configuration work.
| Setting | Example | Description |
|---|---|---|
%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json | β’ Path for the Microsoft Store (stable) release β’ open with Ctrl+, or the dropdown β Settings | |
%LOCALAPPDATA%\Microsoft\Windows Terminal\settings.json | Path when installed via Scoop, Chocolatey, or direct download instead of the Store. | |
Ctrl+, β lower-left "Open JSON file" | β’ Opens settings.json in your default .json editorβ’ Ctrl+Shift+, opens it directly without the Settings UI | |
"$schema": "https://aka.ms/terminal-profiles-schema" | β’ Enables IntelliSense and validation in VS Code β’ place at the top of the file | |
defaultProfile, profiles, schemes, themes, actions, keybindings | β’ The six main top-level keys β’ profiles contains both defaults and list sub-objects |