Windows Terminal is a single host for PowerShell, Command Prompt, Azure Cloud Shell, Windows Subsystem for Linux (WSL), and other command-line applications. The fastest way to make it useful is to combine profiles and shared defaults, learn the command palette, arrange work with panes, and save repeatable layouts as wt commands. This guide shows how to customize those features, edit settings.json safely, recover from focus mode, and build a keyboard-driven terminal that fits your daily work.
What Windows Terminal does
Terminal is a host, not a shell itself. A profile tells Terminal which command-line program to start and how that program should look. The default installation includes profiles for Windows PowerShell, Command Prompt, and Azure Cloud Shell. Installed WSL distributions can be added automatically as profiles. You can open profiles in separate tabs, split a tab into panes, and move between sessions without opening several application windows.
As an Amazon Associate I earn from qualifying purchases.
This distinction matters when troubleshooting: a shortcut, font, color, or pane action belongs to Terminal, while commands such as cd, clear, or package-manager syntax are interpreted by the shell running inside the selected profile.
Start with profiles and shared defaults
Open the settings interface
- Open Windows Terminal.
- Select the drop-down arrow beside the new-tab button.
- Choose Settings to use the visual editor, or choose Open JSON file to edit the configuration directly.
The visual editor is safer for occasional changes because it exposes valid controls and writes the JSON for you. Direct editing is more powerful when you need custom actions, imported fragments, or settings that are easier to copy between machines.
#1 Best Overall
Use profiles.defaults for values shared by every profile
Place common settings in the profiles.defaults object instead of repeating them in every profile. For example, a shared font can be defined once:
{
"profiles": {
"defaults": {
"fontFace": "Cascadia Mono"
}
}
}
The exact font name must be installed on the computer. A profile-specific value overrides the default, so you can keep one general appearance while giving a particular shell a different font, color scheme, starting directory, or tab color.
Know which profile settings are local
Profile-level settings can control colors, background images or opacity, fonts, tab colors, starting directories, environment variables, and other behavior. Keep shell-specific choices in that profile: a development profile might set NODE_ENV, while a general PowerShell profile should not change the environment used by unrelated sessions.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Use the command palette before memorizing shortcuts
Press Ctrl+Shift+P to open the command palette. Microsoft describes it plainly: “The command palette shows you which actions you can run inside Windows Terminal.” It is both an action launcher and a shortcut reference. Type a word such as pane, focus, resize, search, or theme to filter the available commands, then press Enter.
The palette is particularly useful after an update, when a command name or default key combination differs from what you remember. It also exposes actions that have no convenient default shortcut. If a command works from the palette, you can usually bind it to a key in the actions array.
Create a shortcut that sends shell input
A sendInput action can send text and an Enter keystroke to the active shell. This example binds Ctrl+Alt+L to clear the visible terminal:
{
"actions": [
{
"command": {
"action": "sendInput",
"input": "clearr"
},
"keys": "ctrl+alt+l"
}
]
}
Use the command appropriate to the shell. clear is common in Unix-like shells, while cls is the conventional Command Prompt command. The r sends Enter; without it, the text may only be inserted at the prompt.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Resolve shortcut conflicts deliberately
Before assigning a key, open the command palette and test the combination in your normal workflow. A binding can conflict with a shell shortcut, an application running in the pane, or an existing Terminal action. Keep frequently used actions on combinations that are easy to press with one hand, and leave familiar text-editing shortcuts available inside the shell.
Arrange parallel work with panes
Panes let one tab hold several live sessions. A practical layout might keep a log stream visible on one side, an editor or build command on the other, and an interactive shell below. Each pane has its own process and scrollback, but the tab keeps them together as one workspace.
Split, duplicate, and close panes
- Use a vertical split for side-by-side work such as logs and a shell.
- Use a horizontal split for a main session above a short monitoring or test session.
- Duplicate the current environment when you need another pane with the same profile and working context.
- Close the active pane when its process is finished; closing the tab closes all panes in that tab.
The command palette lists the exact split and duplicate actions available in your build. You can assign your own keys in settings.json if the defaults do not suit your keyboard.
Move focus and resize without touching the mouse
Directional focus actions move between panes to the left, right, up, or down. Resize actions change the active pane’s boundary. Bind these commands to a consistent modifier-plus-arrow scheme if you frequently work in a grid. When a pane is too small to read, use zoom rather than repeatedly dragging dividers.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsZoom a pane for detailed work
Zoom temporarily expands the active pane to fill the tab while leaving the other panes intact. This is useful for reading a long compiler error or editing a file. Toggle zoom again to restore the layout. It is different from maximizing the entire Terminal window: tabs and the rest of the tab’s pane arrangement remain available.
Use read-only panes for monitoring
A read-only pane prevents accidental input while you watch logs, a status command, or a production readout. Set it through the available pane action or command palette entry. This is a safety measure, not a security boundary: users who can change the Terminal configuration or process can still alter the environment.
Launch a repeatable workspace with wt
Manual layouts are quick for one-off work. The wt command is better when the same set of tabs and panes is needed repeatedly. It chains commands with semicolons; each command can choose a profile, starting directory, and title.
Rank #3
Example multi-tab, multi-pane command
wt -p "Windows PowerShell" ; sp -p "Command Prompt" ; new-tab -p "Ubuntu" ; sp -H -p "Ubuntu" ; focus-tab -t 0
This opens a Windows PowerShell tab, splits it with Command Prompt, creates an Ubuntu tab, splits that tab horizontally, and returns focus to tab index 0. The exact profile names must match the names shown in your Terminal profile list.
Options that make layouts predictable
-pselects a profile by name.-dsets the starting directory for a new tab or pane.--titlesupplies an initial tab title, making several similar sessions easier to identify.new-tabcreates another tab.split-pane, abbreviated assp, creates a pane;-Hrequests a horizontal split.focus-tab -t 0moves focus to the tab at index 0.
Put a tested command in a shortcut, a script, or a task launcher. Quote profile names and paths containing spaces. If a command fails, first run each segment separately; a misspelled profile name or invalid directory can make the full chain appear to fail even when the syntax is otherwise correct.
Search and preserve useful scrollback
Press Ctrl+Shift+F to search the terminal’s scrollback. Search can cover the full buffer and supports case-sensitive matching and regular expressions. This is useful for locating an error in a long build, finding a request identifier in logs, or checking whether a command printed a warning several screens earlier.
The amount of retained history is controlled by historySize. Microsoft uses 20000 as an example value. A larger buffer makes older output searchable but consumes more memory and can make very long sessions harder to navigate. Set a value appropriate to the output volume you actually inspect, and redirect durable logs to a file when the output must be retained beyond a terminal session.
Customize appearance at the right level
Window themes
The window-level theme accepts system, dark, light, or a custom theme. Window-level choices affect Terminal’s chrome, while profile-level settings can change the shell’s colors, background, font, and tab color. Separating the two lets you keep a consistent application frame while using distinct colors to prevent commands from being run in the wrong environment.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Make important profiles recognizable
Use a deliberate tab color and title for profiles that represent different environments. A production-monitoring profile should not look identical to a local-development profile. Titles supplied through --title apply when launching a workspace; profile settings provide a persistent visual identity.
Keep readability ahead of decoration
Choose a font with clear distinctions between characters such as zero and capital O, and test contrast with the commands and log formats you use most. Background images, transparency, and elaborate themes can reduce legibility, especially when panes are narrow.
Edit settings.json without making it fragile
Use the stable settings file, not defaults.json
The settings file opened from the Settings menu is the editable configuration. defaults.json is generated automatically to show available options; changes made there are ignored. If you need to restore a setting, copy the relevant structure into the stable settings file and edit it there.
Organize actions and profiles for maintenance
Keep shared values in profiles.defaults, profile-specific values in each profile object, and keyboard actions together in the actions array. Remove obsolete bindings rather than allowing a long list of overrides to accumulate. After every significant edit, save the file and reopen Settings if the interface does not immediately reflect the change.
Free tools Windows power users keep installed
One-click scans. No signup required.
Split large configurations with JSON fragments
JSON fragment imports let you keep reusable actions and themes in separate files. This is useful when several computers share the same shortcuts or when a team maintains a common visual theme. Treat imported fragments as code: keep backups, use valid JSON, and verify that action IDs and profile names still exist on the target machine.
Control generated profiles and environment variables
Hide profiles you do not use
Some profiles are generated dynamically by installed components. The disabledProfileSources setting can hide unused generated profile sources, reducing clutter without uninstalling the underlying software. Re-enable the source if you later need one of those profiles.
Set environment variables per profile
A profile’s environment object can add variables only to shells started from that profile. For example:
{
"name": "Node development",
"commandline": "pwsh.exe",
"environment": {
"NODE_ENV": "development"
}
}
This avoids changing the entire Windows environment for a value that belongs to one project. Remember that child processes inherit the profile’s variables, so tools launched from that shell will see them.
Use focus mode and quake mode intentionally
Focus mode
Focus mode hides the tabs and title bar so the terminal content occupies the window. Toggle it from the command palette, or select it as a startup launch mode when you want a distraction-free session. Because the normal chrome is hidden, use the command palette shortcut or your configured action to get back to the standard interface.
Best Value
How to get out of focus mode
- Press Ctrl+Shift+P.
- Type focus mode.
- Select the toggle action to restore the tabs and title bar.
If the palette does not appear because a custom key binding replaced the default, open the Terminal menu with the mouse and choose the focus-mode command there, then review the conflicting action in settings.json.
Quake mode
Run wt -w _quake to create a quake window. It snaps to the top half of the monitor and enters focus mode, making it suitable for a quick command without covering the rest of the desktop. Use it as a separate window when you want a transient terminal, not as a replacement for a carefully arranged project workspace.
Choose the right workflow
| Workflow need | Best Terminal feature | Why it fits |
|---|---|---|
| Discover an unfamiliar action | Command palette | Searches available actions instead of relying on memorized keys. |
| Repeat the same layout each day | wt command |
Creates named tabs and panes from one launch command. |
| Watch several live outputs | Panes | Keeps logs, shells, and tools visible in one tab. |
| Share shortcuts or themes | JSON fragment imports | Separates reusable configuration from the main settings file. |
| Work without visual distractions | Focus mode | Hides tabs and the title bar while preserving the session. |
| Open a quick terminal from the desktop edge | Quake mode | Uses wt -w _quake to open a top-half window. |
Troubleshoot common problems
A shortcut does nothing
- Open the command palette and run the action directly. If it works there, inspect the key binding for a spelling or modifier error.
- Check for duplicate bindings in the
actionsarray. - Test the key outside the shell; an application running in the pane may consume it.
A workspace command opens the wrong profile
Compare the -p value with the profile’s displayed name, including spaces and capitalization. If several profiles have similar names, assign explicit titles and run each command segment independently.
Settings changes are ignored
Confirm that you edited the stable settings file rather than defaults.json. Validate commas, quotation marks, and braces, then reopen Settings. A malformed JSON file can prevent new values from loading; restore the last known-good backup and reapply one change at a time.
The terminal history is too short
Increase historySize, then start a new session if the existing buffer does not expand. For output that must survive a restart, redirect the command to a log file instead of relying solely on scrollback.
Focus mode seems to hide the controls
Use Ctrl+Shift+P and search for the focus-mode toggle. If that shortcut was customized, use the application menu or temporarily remove the conflicting binding from the stable settings file.
A practical setup sequence
- Open Settings and identify the profiles you actually use.
- Set shared font and appearance values in
profiles.defaults. - Give important profiles distinct colors, titles, or environment variables.
- Open the command palette and test pane, focus, resize, zoom, search, and tab actions.
- Add only the custom key bindings you use repeatedly, including any
sendInputactions. - Build a small
wtcommand for your most common multi-tab workspace. - Increase
historySizeonly when your normal work requires more scrollback. - Back up the stable settings file before experimenting with JSON fragments or large layout changes.
This sequence keeps configuration understandable: defaults handle consistency, profiles handle context, actions handle control, and wt handles repeatable startup.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Frequently Asked Questions
How do I open the Windows Terminal command palette?
Press Ctrl+Shift+P. Type an action name such as pane, focus, resize, or search, then press Enter.
How do I split a Windows Terminal window?
Use a split-pane action from the command palette or bind one in the actions array. Choose a vertical split for side-by-side sessions or a horizontal split for stacked sessions.
Where should I edit Windows Terminal settings?
Open Settings and choose Open JSON file to edit the stable settings file. Do not edit defaults.json; it is generated automatically and ignores changes.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.
Recommended Free Tools

