Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run Scan×
FREEDOM251

Freedom251 › Blog › Command Line

Windows Terminal Customization: Build Settings That Stick

By Freedom251 Team · · 13 min read

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The most reliable way to customize Windows Terminal is to use Settings for quick changes, then use settings.json for repeatable defaults, profile-specific behavior, keyboard actions, and layouts. Start by identifying whether your copy is the packaged stable build, packaged Preview build, or an unpackaged install; each stores its configuration in a different place.

This guide builds a practical setup in layers: application appearance, shared profile defaults, individual shell profiles, and workflow actions such as panes and startup layouts. You can apply only the sections that solve a real annoyance instead of changing every option at once.

As an Amazon Associate I earn from qualifying purchases.

Choose the right configuration route first

Windows Terminal exposes the same configuration through two routes. The Settings interface is safest for one-off changes because controls validate values and show the available choices. The JSON file is better when you want to copy a setup to another machine, review all changes in one place, apply a value to every profile, or use features that are not exposed in the graphical interface.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Route Best use Trade-off
Settings UI Quick changes to startup, profiles, appearance, and actions; useful when you want visible controls and previews. Many repeated settings are slower to maintain and harder to copy or review as a single configuration.
settings.json Precise edits, shared defaults, custom themes, reusable profile definitions, and deliberate key bindings. JSON syntax and Windows paths require care, and the correct file location depends on how Terminal was installed.

Open Settings without hunting for the file

  1. Launch Windows Terminal.
  2. Open the tab menu and choose Settings. In some releases, the menu is opened from the down-arrow beside the new-tab button.
  3. Use the category list for ordinary changes. The Startup area controls launch behavior, Profiles contains shared defaults and individual shells, and profile Appearance contains visual settings.
  4. When you need the raw configuration, use the option in Settings that opens the JSON file. This avoids editing the wrong installation’s file.

Find the file for your installation type

Microsoft documents separate locations for the three supported installation routes. The package identity is part of the path, so copying a path for one route into another route will not work.

Installation route Typical settings file Important qualification
Packaged stable (for example, the Store release) %LOCALAPPDATA%PackagesMicrosoft.WindowsTerminal_8wekyb3d8bbweLocalStatesettings.json Use this only for the stable packaged identity.
Packaged Preview %LOCALAPPDATA%PackagesMicrosoft.WindowsTerminalPreview_8wekyb3d8bbweLocalStatesettings.json Preview has a different package folder and can expose features before stable.
Unpackaged installation %LOCALAPPDATA%MicrosoftWindows Terminalsettings.json Applies to builds installed outside the packaged Store identity, such as some GitHub, Windows Package Manager, Chocolatey, or Scoop routes.

If you are unsure which route you have, open Settings from the running app and use its JSON link rather than guessing. Windows Terminal can also be installed from the Store, GitHub, Windows Package Manager, Chocolatey, or Scoop; a GitHub build does not automatically update itself according to Microsoft’s installation guidance.

Do not edit defaults.json

Hold Alt while opening Settings to display the generated defaults.json view. It is useful for discovering available properties and their documented defaults, but Microsoft warns that edits to this generated file are ignored. Put your changes in settings.json instead.

Understand the settings hierarchy

Most confusing behavior comes from putting a valid setting at the wrong scope. Think of Terminal as three layers:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Application settings: affect the Terminal window as a whole, including the app theme and tab behavior.
  • profiles.defaults: shared profile appearance and behavior inherited by every shell.
  • Individual profile entries: overrides for one shell, such as its command line, starting directory, icon, or tab title.

An individual profile value wins over a value inherited from profiles.defaults. Keep genuinely universal choices—such as a font size that is readable everywhere—in the defaults block. Keep shell-specific paths and icons in that shell’s profile entry.

A minimal layered example

The following fragment illustrates the placement of common settings. It uses escaped backslashes because JSON treats a single backslash as an escape character.

{"profiles":{"defaults":{"fontFace":"Cascadia Mono","fontSize":12,"cursorShape":"bar"},"list":[{"name":"PowerShell work","commandline":"pwsh.exe","startingDirectory":"C:\Work","tabTitle":"Work PS","icon":"C:\Work\icons\powershell.png"}]}}

Here, every profile receives the font, size, and cursor shape. Only the named PowerShell profile starts in C:Work, uses a custom tab title, and displays the selected icon. If a later profile overrides fontSize, that profile uses its own value.

How to customize Windows Terminal profiles

Profiles are the practical boundary between shells. Microsoft includes Windows PowerShell, Command Prompt, and Azure Cloud Shell profiles by default. Installed Windows Subsystem for Linux distributions are automatically given profiles as they become available.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Set the default shell and launch behavior

  1. Open Settings and select Startup.
  2. Choose the profile that should open when a new Terminal window starts. Pick the shell you use most often rather than the one that happens to be listed first.
  3. Decide whether Terminal should open a single tab, restore a previous session where supported, or use a configured startup layout. The available controls vary by release.
  4. Save the change, open a new window, and confirm that the expected shell appears before changing more options.

Give each profile a clear identity

Open Profiles, select a shell, and edit its general properties. The useful fields are:

  • Name/display name: the label shown in the profile menu.
  • Command line: the executable and arguments used to start the shell or tool.
  • Starting directory: the folder opened when that profile launches. In JSON, use escaped backslashes such as C:\Projects\api.
  • Icon: a path to an image that makes the profile recognizable in the tab menu.
  • Tab title: the text shown on a tab, useful when several tabs use similar shells.
  • Order: the position of the profile in the menu and profile picker.

Use names that describe the task, not only the executable. “API PowerShell” and “Linux build” are easier to distinguish than two entries both labeled “PowerShell.” Keep the command line unchanged when you only need a different working directory; changing both at once makes troubleshooting harder.

Separate workspaces with dedicated profiles

A dedicated profile is worthwhile when the same shell always belongs to a particular repository, server environment, or toolchain. Give it a task-focused name, set its starting directory, and assign an icon or tab title. This turns a repeated sequence of typing a directory command and identifying a tab into a single menu selection.

Make the interface readable before making it decorative

Set the application theme

Application appearance applies to the Terminal window rather than one shell. The theme setting accepts system, dark, light, or a custom theme, with system documented as the default. Choose system if Terminal should follow Windows light/dark mode; choose a fixed value when a consistent appearance matters more than operating-system changes.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Open Settings and go to the application appearance area.
  2. Set the theme to System, Dark, or Light.
  3. Close and reopen Settings if the preview does not immediately reflect the change, then check a normal tab and a pane for adequate contrast.

Use profile appearance for visual separation

Profile appearance controls the shell’s colors and typography. Settings placed in profiles.defaults apply to all profiles, while a profile’s own appearance values override them.

  • Color scheme: select a scheme with enough contrast between command text, prompts, and output. Use distinct schemes for shells you commonly confuse.
  • Font face and size: choose a monospaced font that keeps punctuation distinct. Increase size until long sessions are comfortable rather than choosing a value solely because it fits more columns.
  • Cursor shape and color: a bar, underscore, or filled block can make the active insertion point easier to locate. Choose a cursor color that remains visible on both light and dark backgrounds.
  • Background: a solid color is easiest to read. If you use an image, reduce its visual competition with text by adjusting its opacity and choosing a low-detail image.
  • Opacity and acrylic effects: transparency can reveal another window beneath Terminal, but it can also reduce contrast. Treat it as an optional effect, not a readability improvement.

Apply a shared font and cursor in profiles.defaults, then override only the color scheme or background for profiles that need stronger identification. This keeps the configuration small and prevents one profile from drifting away from the rest.

Configure custom window and tab themes in JSON

Windows Terminal supports custom themes that can define window, tab-row, tab, and color components. Microsoft marks the theme documentation as Preview, and these settings are configured directly in settings.json rather than through every control in the graphical interface.

  1. Back up settings.json before adding a custom theme.
  2. Open the theme section described by the current Microsoft documentation and add a uniquely named theme object.
  3. Set only the components you understand, then select the custom theme through the application theme setting.
  4. Restart Terminal and inspect inactive tabs, active tabs, pane separators, and text contrast. Preview features can change between releases.

Do not assume that a theme property available in the JSON schema also has a matching Settings control. If a custom theme disappears after an update, compare the file with the current documentation and remove obsolete properties rather than editing generated defaults.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Speed up repeated work with actions and key bindings

Actions map a command to a key combination. Open the command palette with Ctrl+Shift+P to search for commands without memorizing every shortcut. The Actions page in Settings lets you inspect existing bindings and add or change mappings.

Choose bindings that do not fight your shell

  1. Open Settings and select Actions.
  2. Search for the action you want, such as opening a new tab, moving focus, splitting a pane, or searching scrollback.
  3. Assign a key combination that is not already used by your shell, editor, remote session, or accessibility software.
  4. Save, open a normal profile, and invoke the action once. Then test it inside a pane and while a different profile is active.

Microsoft’s documented examples include Ctrl+Shift+P for the command palette and Alt+Shift++ or Alt+Shift+- for vertical or horizontal pane splits. Bindings can change as Terminal evolves, so check the live Actions list in your release before publishing a large shortcut chart or relying on a shortcut you have not verified.

Keep JSON actions understandable

When you edit actions manually, keep each action on its own object and use the action names shown in the current documentation. A representative split binding has this shape:

{"actions":[{"command":{"action":"splitPane","split":"vertical"},"keys":"alt+shift++"},{"command":{"action":"splitPane","split":"horizontal"},"keys":"alt+shift+-"}]}

If your installed version displays a different action schema, use the generated action entry from Settings as the model. A syntactically valid object with an obsolete action name will not perform the operation you expect.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How to split panes and move between them

Splitting panes lets you keep related commands visible in one tab, such as a server process beside its logs or a build shell beside a test shell. Use the documented split shortcuts, the command palette, or an action you assign yourself.

Split vertically or horizontally

  1. Focus the pane that should remain visible after the split.
  2. Press Alt+Shift++ for a vertical split or Alt+Shift+- for a horizontal split when those defaults are active.
  3. Start the desired profile in the new pane, or use the profile picker if your version presents one during splitting.
  4. Resize the divider by dragging it. Keep enough width for prompts and error messages; a narrow pane is counterproductive for long commands.

Move focus without touching the mouse

Terminal provides configurable moveFocus actions for left, right, up, and down movement. Assign those directions to a consistent set of keys, then use them to jump among panes. The exact default bindings can differ, so inspect Actions and the current pane documentation before changing them.

When a shortcut is ignored, first click the target pane and retry. If it still fails, search Actions for duplicate assignments, remove the conflict, and test the binding in a fresh window.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Design a startup layout that matches the task

Startup settings determine what appears when a new Terminal window opens. A single profile is simplest for focused work; multiple tabs or panes are useful when the same group of shells is opened repeatedly.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use the Settings UI for a simple startup choice

  1. Open Settings > Startup.
  2. Choose the default profile and the launch mode offered by your release.
  3. If your version exposes startup actions or a layout editor, add only the tabs and panes you need every day.
  4. Open a new window and verify profile order, working directories, and pane orientation.

Do not create a large layout merely because Terminal can display one. Every extra pane consumes width and attention. A reliable two-pane arrangement is usually easier to maintain than a grid that leaves each shell too small to read.

Match the layout to a repeatable workflow

  • Web or API development: one pane for the application process, one for tests or logs, and a separate tab for version-control commands.
  • Remote administration: one tab per environment with unmistakable names and colors; avoid placing production and test shells beside each other without visual differences.
  • Linux tooling on Windows: a WSL profile with its project directory, plus a Windows shell profile for file-management or build commands that must run on the host.

Three practical customization recipes

A consistent multi-shell setup

  1. Set the application theme to System so it follows Windows.
  2. In profiles.defaults, set one readable font, size, and cursor shape.
  3. Give PowerShell, Command Prompt, Azure Cloud Shell, and each WSL distribution distinct color schemes.
  4. Set a descriptive tab title for each profile and confirm that the titles remain recognizable when several tabs are open.

A project-focused profile

  1. Duplicate or add a profile entry for the shell you already use.
  2. Change its display name to the project or role, such as “Billing API PowerShell.”
  3. Set startingDirectory to the project folder with escaped backslashes.
  4. Assign an icon and tab title, then make only this profile’s color scheme different from the shared default.

A pane-oriented operations setup

  1. Choose a default profile that has access to the commands used for the operation.
  2. Bind vertical and horizontal splits to keys you can press with one hand while keeping the other on the keyboard.
  3. Configure directional moveFocus actions for the four pane directions.
  4. Open the command palette and search for actions instead of adding a shortcut for an operation you use only occasionally.

Verify the configuration before depending on it

Use a short verification loop after every meaningful change. This catches wrong-file and wrong-scope problems before they interrupt a real task.

  • Open a new Terminal window and confirm the intended default profile.
  • Open every customized profile and check its command line, starting directory, icon, and tab title.
  • Read several lines of normal output and an error message to verify contrast, font size, cursor visibility, and transparency.
  • Split a tab both vertically and horizontally, move focus in every direction, and close a pane.
  • Open the command palette with Ctrl+Shift+P and confirm that your custom actions appear or that conflicting keys have been removed.
  • Close and reopen Terminal to ensure the settings persist.

Fix common Windows Terminal customization problems

My changes have no effect

The most likely cause is editing the wrong installation’s file. Check whether the running copy is stable packaged, Preview packaged, or unpackaged, then open its JSON file from Settings. Also confirm that you edited settings.json, not the generated defaults.json, whose changes are ignored.

Terminal reports invalid JSON

Look for a missing comma, an extra comma after the final property, mismatched braces, or an unescaped backslash in a Windows path. Restore the last working copy, make one change, save, and reopen Settings. Keep paths such as C:\Users\Sam in JSON rather than writing single backslashes.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A profile starts in the wrong folder

Check the profile’s own startingDirectory first; it overrides the shared default. Make sure the directory exists and that the path is quoted and escaped. If the profile launches a shell that changes directories during startup, inspect that shell’s startup script as a separate cause.

A shortcut does nothing

Open Settings > Actions and search for the key combination. Remove duplicate bindings, check that the action name matches your installed version, and test outside an application that may capture the same keys. Use the command palette as a fallback while diagnosing the binding.

The interface looks attractive but is hard to read

Reduce opacity, remove a busy background image, increase font size, or choose a higher-contrast color scheme. Check inactive tabs and pane borders as well as the active prompt. A profile that is instantly recognizable but makes error text difficult to read needs a readability change, not another decorative effect.

A custom theme breaks after an update

Custom themes are documented as Preview and can change between releases. Compare the theme object with the current documentation, remove properties that are no longer recognized, and keep a backup of the last working file. Do not copy edits into generated defaults.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Keep the setup maintainable

Make one deliberate change at a time and keep a dated backup of settings.json before large edits. Prefer shared defaults for genuinely shared behavior and profile overrides for exceptions. Use descriptive names and avoid duplicate profiles that differ only by an invisible setting. When moving to another computer, copy the intentional parts of the JSON rather than blindly replacing the entire file; package-specific paths, icons, and installed WSL distributions may not exist there.

The result should be measurable in ordinary use: the correct shell opens, the correct folder is ready, profiles are recognizable at a glance, panes can be reached without hunting, and text remains comfortable to read. If a customization does not improve one of those outcomes, leave the documented default in place.

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.

Command LinePowerShellproductivityterminal profilesWindows customizationWindows TerminalWSL

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.