How to create custom theme for Windows Terminal

You can now create your very own custom theme to use on Windows Terminal, and here's how to get started.

Windows Terminal create theme

Starting with version 1.16 and later, the Windows Terminal adds support to create custom themes, but you will need some JSON skills to change the appearance because you will need to code the theme in the “settings.json” file.

It’s all possible because of the new “themes” global property, which you can use to create a theme with custom colors for tabs, the tab row, and the application window. Once the “settings.json” is updated with the code, the theme will be available in the “Theme” setting on the “Appearance” page.

This guide will teach you the steps to create a custom theme and apply it to the Windows Terminal on Windows 11.

Create custom theme for Windows Terminal

To create a custom theme that you can apply to the Terminal, use these steps:

  1. Open Windows Terminal.

  2. Click the menu (down-arrow) button and select the Settings option.

  3. Click on Open JSON file.

  4. In the “themes” object, open the brackets “[ ]” and code the custom theme. Here’s an example of the coding that builds a theme:

            "name": "My Theme",
                "background": "#ffff00",
                "showCloseButton": "always",
                "unfocusedBackground": null
                "background": "#fb0004",
                "unfocusedBackground": "#555555"
                "applicationTheme": "dark",

    Settings.json themes object

  5. Use the Ctrl + S keyboard shortcut to save the file.

  6. In the Terminal settings, click on Appearance.

  7. Select the custom theme from the “Theme” setting.

    Change custom theme

  8. Click the Save button.

When creating a custom theme, you are setting up custom colors for the window and tabs. If you want to customize the colors for the background, you can change the color scheme from the “Color schemes” section.

In the theme code, the tab object supports background, unfocusedBackground, and showCloseButton properties. background will set the color of the tab background when the tab is active and will always show colors at full opacity. The unfocusedBackground sets the color when the tab is inactive and showCloseButton toggles the appearance of the close button on the tab.

The tabRow object supports background and unfocusedBackground properties. background will set the color of the tab row background when the window is focused. The unfocusedBackground will set the color of the tab row background when unfocused.

Finally, it’s possible to modify settings applied to the window with the window object. The window object supports applicationTheme. The applicationTheme will apply the colors of the selected application theme to the terminal window unless other colors are specified.

If you want to create a second or third theme, you only need to write the code after the last curly bracket “{}” of the first theme and before the last bracket “[ ]” of the “themes” object.