Specific theme for profile #22337

Closed
opened 2026-01-31 08:10:10 +00:00 by claunia · 2 comments
Owner

Originally created by @pwsandoval on GitHub (Oct 2, 2024).

Windows Terminal version

1.21.2701.0

Windows build number

10.0.22621.0

Other Software

No response

Steps to reproduce

I know I can create multiple themes and define which one to use like this:

"theme": "dark"
"themes":
[
    {
      "name": "dark",
      "window": {
          "applicationTheme": "dark"
      },
      "tab": {
          "background": "terminalBackground",
          "unfocusedBackground": "#00000000"
      },
      "tabRow": {
          "unfocusedBackground": "#333333FF"
      }
  }
]

But how do I assign a different theme to a profile (as I do with the colorScheme), I want the window color to be integrated, if this is in WSL everything should be orange and if I am in PowerShell Black, I have not achieved it, but I think it is possible because in this link, there is a gif that does exactly this:

https://learn.microsoft.com/en-us/windows/terminal/custom-terminal-gallery/theme-gallery

image

Expected Behavior

In Powershell the tabs and windows are blue, in Ubuntu purple, and in cmd black.

Actual Behavior

My config is as follows

"profiles": {
    "defaults": { "colorScheme": "Everblush" }
"list": [
{
        "commandline": "pwsh.exe -nologo",
        "guid": "{59e30915-7255-4c37-aac8-65e9eb49caa6}",
        "hidden": false,
        "icon": "ms-appx:///ProfileIcons/pwsh.png",
        "name": "PowerShell",
        "startingDirectory": "%USERPROFILE%"
      },
{
        "guid": "{10e14319-4cbb-4efc-95f8-4d48fdafdb75}",
        "name": "Plex",
        "icon": "%USERPROFILE%\\Pictures\\icons\\plex.ico",
        "hidden": false,
        "commandline": "ssh -i %USERPROFILE%\\.ssh\\private pw@localhost",
        "colorScheme": "Plex",
        "theme": "Plex" // This line has no effect, I want use only for this profile
      },
{
...
"themes": [
    {
      "name": "Everblush", // This is global theme
      "tab": {
        "background": "#141B1EFF",
        "iconStyle": "default",
        "showCloseButton": "always",
        "unfocusedBackground": "#232A2DFF"
      },
      "tabRow": {
        "background": "#232A2DFF",
        "unfocusedBackground": "#232A2DFF"
      },
      "window": {
        "applicationTheme": "dark",
        "experimental.rainbowFrame": false,
        "frame": null,
        "unfocusedFrame": null,
        "useMica": false
      }
    },
    {
      "name": "Plex", // Theme for only Plex profile
      "tab": {
        "background": "#141B1EFF",
        "iconStyle": "default",
        "showCloseButton": "always",
        "unfocusedBackground": "#232A2DFF"
      },
      "tabRow": {
        "background": "#232A2DFF",
        "unfocusedBackground": "#232A2DFF"
      },
      "window": {
        "applicationTheme": "dark",
        "experimental.rainbowFrame": false,
        "frame": null,
        "unfocusedFrame": null,
        "useMica": false
      }
    }
}
Originally created by @pwsandoval on GitHub (Oct 2, 2024). ### Windows Terminal version 1.21.2701.0 ### Windows build number 10.0.22621.0 ### Other Software _No response_ ### Steps to reproduce I know I can create multiple themes and define which one to use like this: ```json "theme": "dark" "themes": [ { "name": "dark", "window": { "applicationTheme": "dark" }, "tab": { "background": "terminalBackground", "unfocusedBackground": "#00000000" }, "tabRow": { "unfocusedBackground": "#333333FF" } } ] ``` But how do I assign a different theme to a profile (as I do with the colorScheme), I want the window color to be integrated, if this is in WSL everything should be orange and if I am in PowerShell Black, I have not achieved it, but I think it is possible because in this link, there is a gif that does exactly this: https://learn.microsoft.com/en-us/windows/terminal/custom-terminal-gallery/theme-gallery ![image](https://learn.microsoft.com/en-us/windows/terminal/images/seamless-theme-example.gif) ### Expected Behavior In Powershell the tabs and windows are blue, in Ubuntu purple, and in cmd black. ### Actual Behavior My config is as follows ```json "profiles": { "defaults": { "colorScheme": "Everblush" } "list": [ { "commandline": "pwsh.exe -nologo", "guid": "{59e30915-7255-4c37-aac8-65e9eb49caa6}", "hidden": false, "icon": "ms-appx:///ProfileIcons/pwsh.png", "name": "PowerShell", "startingDirectory": "%USERPROFILE%" }, { "guid": "{10e14319-4cbb-4efc-95f8-4d48fdafdb75}", "name": "Plex", "icon": "%USERPROFILE%\\Pictures\\icons\\plex.ico", "hidden": false, "commandline": "ssh -i %USERPROFILE%\\.ssh\\private pw@localhost", "colorScheme": "Plex", "theme": "Plex" // This line has no effect, I want use only for this profile }, { ... "themes": [ { "name": "Everblush", // This is global theme "tab": { "background": "#141B1EFF", "iconStyle": "default", "showCloseButton": "always", "unfocusedBackground": "#232A2DFF" }, "tabRow": { "background": "#232A2DFF", "unfocusedBackground": "#232A2DFF" }, "window": { "applicationTheme": "dark", "experimental.rainbowFrame": false, "frame": null, "unfocusedFrame": null, "useMica": false } }, { "name": "Plex", // Theme for only Plex profile "tab": { "background": "#141B1EFF", "iconStyle": "default", "showCloseButton": "always", "unfocusedBackground": "#232A2DFF" }, "tabRow": { "background": "#232A2DFF", "unfocusedBackground": "#232A2DFF" }, "window": { "applicationTheme": "dark", "experimental.rainbowFrame": false, "frame": null, "unfocusedFrame": null, "useMica": false } } } ```
claunia added the Needs-TriageIssue-Bug labels 2026-01-31 08:10:10 +00:00
Author
Owner

@ketan270 commented on GitHub (Oct 6, 2024):

To address the issue you're encountering with assigning different themes to profiles in Windows Terminal, follow these steps:

1.Check the Configuration: Ensure your configuration is correctly formatted. Your JSON should be valid, and all brackets should match. Pay attention to commas between objects.

2.Profile-Specific Theme: The theme property is not currently supported for profiles in Windows Terminal. Instead, you should use the colorScheme property to define colors for each profile. Themes are global and cannot be assigned per profile directly.

3.Define Color Schemes: You can create specific color schemes that reflect the desired colors for each profile. Here’s an example of how to define a color scheme for your PowerShell and Plex profiles:

"schemes": [
    {
        "name": "PowerShell",
        "background": "#000000",
        "foreground": "#FFFFFF",
        "black": "#000000",
        "red": "#FF0000",
        "green": "#00FF00",
        "yellow": "#FFFF00",
        "blue": "#0000FF",
        "purple": "#800080",
        "cyan": "#00FFFF",
        "white": "#FFFFFF",
        "brightBlack": "#808080",
        "brightRed": "#FF5555",
        "brightGreen": "#50FA7B",
        "brightYellow": "#F1FA8C",
        "brightBlue": "#BD93F9",
        "brightPurple": "#FF79C6",
        "brightCyan": "#8BE9FD",
        "brightWhite": "#FFFFFF"
    },
    {
        "name": "Plex",
        "background": "#141B1EFF",
        "foreground": "#FFFFFF",
        // Define other colors as needed
    }
],

4.Assign Color Schemes to Profiles: Then, assign these color schemes to your profiles like this:

"profiles": {
    "list": [
        {
            "guid": "{59e30915-7255-4c37-aac8-65e9eb49caa6}",
            "name": "PowerShell",
            "commandline": "pwsh.exe -nologo",
            "colorScheme": "PowerShell",
            "hidden": false,
            "icon": "ms-appx:///ProfileIcons/pwsh.png",
            "startingDirectory": "%USERPROFILE%"
        },
        {
            "guid": "{10e14319-4cbb-4efc-95f8-4d48fdafdb75}",
            "name": "Plex",
            "commandline": "ssh -i %USERPROFILE%\\.ssh\\private pw@localhost",
            "colorScheme": "Plex",
            "hidden": false,
            "icon": "%USERPROFILE%\\Pictures\\icons\\plex.ico"
        }
    ]
}

5.Testing: After making these changes, save your settings and restart Windows Terminal to see if the profiles reflect the correct colors.

6.Creating an Issue on GitHub: If you believe this functionality (assigning themes per profile) should be supported, you can create an issue on the Windows Terminal GitHub repository. Provide a clear description of your use case, the current behavior, and your expected behavior.

7.Follow Up: Engage with any responses on the GitHub issue to provide additional context or answer questions from the maintainers.

@ketan270 commented on GitHub (Oct 6, 2024): To address the issue you're encountering with assigning different themes to profiles in Windows Terminal, follow these steps: 1.***Check the Configuration***: Ensure your configuration is correctly formatted. Your JSON should be valid, and all brackets should match. Pay attention to commas between objects. 2.***Profile-Specific Theme***: The theme property is not currently supported for profiles in Windows Terminal. Instead, you should use the colorScheme property to define colors for each profile. Themes are global and cannot be assigned per profile directly. 3.***Define Color Schemes***: You can create specific color schemes that reflect the desired colors for each profile. Here’s an example of how to define a color scheme for your PowerShell and Plex profiles: ``` "schemes": [ { "name": "PowerShell", "background": "#000000", "foreground": "#FFFFFF", "black": "#000000", "red": "#FF0000", "green": "#00FF00", "yellow": "#FFFF00", "blue": "#0000FF", "purple": "#800080", "cyan": "#00FFFF", "white": "#FFFFFF", "brightBlack": "#808080", "brightRed": "#FF5555", "brightGreen": "#50FA7B", "brightYellow": "#F1FA8C", "brightBlue": "#BD93F9", "brightPurple": "#FF79C6", "brightCyan": "#8BE9FD", "brightWhite": "#FFFFFF" }, { "name": "Plex", "background": "#141B1EFF", "foreground": "#FFFFFF", // Define other colors as needed } ], ``` 4.***Assign Color Schemes to Profiles***: Then, assign these color schemes to your profiles like this: ``` "profiles": { "list": [ { "guid": "{59e30915-7255-4c37-aac8-65e9eb49caa6}", "name": "PowerShell", "commandline": "pwsh.exe -nologo", "colorScheme": "PowerShell", "hidden": false, "icon": "ms-appx:///ProfileIcons/pwsh.png", "startingDirectory": "%USERPROFILE%" }, { "guid": "{10e14319-4cbb-4efc-95f8-4d48fdafdb75}", "name": "Plex", "commandline": "ssh -i %USERPROFILE%\\.ssh\\private pw@localhost", "colorScheme": "Plex", "hidden": false, "icon": "%USERPROFILE%\\Pictures\\icons\\plex.ico" } ] } ``` 5.***Testing***: After making these changes, save your settings and restart Windows Terminal to see if the profiles reflect the correct colors. 6.***Creating an Issue on GitHub***: If you believe this functionality (assigning themes per profile) should be supported, you can create an issue on the Windows Terminal GitHub repository. Provide a clear description of your use case, the current behavior, and your expected behavior. 7.***Follow Up***: Engage with any responses on the GitHub issue to provide additional context or answer questions from the maintainers.
Author
Owner

@DHowett commented on GitHub (Oct 9, 2024):

"tabRow": {
       "background": "#232A2DFF",

If you set the background to terminalBackground, just like in your first post, it will use the same color as the profile.

@DHowett commented on GitHub (Oct 9, 2024): > ``` > "tabRow": { > "background": "#232A2DFF", > ``` If you set the `background` to `terminalBackground`, just like in your first post, it will use the same color as the profile.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#22337