FR: Defining a default color scheme for all terminals #14756

Closed
opened 2026-01-31 04:18:38 +00:00 by claunia · 7 comments
Owner

Originally created by @torgeros on GitHub (Aug 1, 2021).

Description of the new feature/enhancement

Allow the user to set the color scheme for all (or some) profiles.

I personally use the new terminal (only) for working with the WSL. I have different profiles that load different .bashrc-files according to what I am planning to work with.

I would like to be able to set the color schemes of those in one quick action. That is especially important as I switch between light and dark themes for my OS very often, sometimes even time-of-day-depoendent. Having to switch the color schemes for each profile individually is very annoying.

Proposed technical implementation details (optional)

  1. A dropdown menu to set the default color scheme to one of the defined schemes
  2. For each profile: an option in the dropdown that selects the theme that points to "Default scheme"

An even better solution could be to be able to set a default light-mode theme and a default dark-mode theme. That would change the colors of a console tab from light to dark when toggling light/dark mode in WIndows System Settings.

Originally created by @torgeros on GitHub (Aug 1, 2021). <!-- 🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨 I ACKNOWLEDGE THE FOLLOWING BEFORE PROCEEDING: 1. If I delete this entire template and go my own path, the core team may close my issue without further explanation or engagement. 2. If I list multiple bugs/concerns in this one issue, the core team may close my issue without further explanation or engagement. 3. If I write an issue that has many duplicates, the core team may close my issue without further explanation or engagement (and without necessarily spending time to find the exact duplicate ID number). 4. If I leave the title incomplete when filing the issue, the core team may close my issue without further explanation or engagement. 5. If I file something completely blank in the body, the core team may close my issue without further explanation or engagement. All good? Then proceed! --> # Description of the new feature/enhancement Allow the user to set the color scheme for all (or some) profiles. I personally use the new terminal (only) for working with the WSL. I have different profiles that load different `.bashrc`-files according to what I am planning to work with. I would like to be able to set the color schemes of those in one quick action. That is especially important as I switch between light and dark themes for my OS very often, sometimes even time-of-day-depoendent. Having to switch the color schemes for each profile individually is very annoying. <!-- A clear and concise description of what the problem is that the new feature would solve. Describe why and how a user would use this new functionality (if applicable). --> # Proposed technical implementation details (optional) 1. A dropdown menu to set the default color scheme to one of the defined schemes 2. For each profile: an option in the dropdown that selects the theme that points to "Default scheme" --- An even better solution could be to be able to set a default light-mode theme and a default dark-mode theme. That would change the colors of a console tab from light to dark when toggling light/dark mode in WIndows System Settings. <!-- A clear and concise description of what you want to happen. -->
Author
Owner

@j4james commented on GitHub (Aug 2, 2021):

An even better solution could be to be able to set a default light-mode theme and a default dark-mode theme.

There's already an issue open for that feature. See #4066.

@j4james commented on GitHub (Aug 2, 2021): > An even better solution could be to be able to set a default light-mode theme and a default dark-mode theme. There's already an issue open for that feature. See #4066.
Author
Owner

@torgeros commented on GitHub (Aug 2, 2021):

There's already an issue open for that feature. See #4066.

Okay but then in addition to that, the main point of this issue should be to be able to set a default theme that applies to all profiles

@torgeros commented on GitHub (Aug 2, 2021): > There's already an issue open for that feature. See #4066. Okay but then in addition to that, the main point of this issue should be to be able to set a default theme that applies to all profiles
Author
Owner

@zadjii-msft commented on GitHub (Aug 2, 2021):

You could always try setting the colorScheme in profiles.defaults.

"profiles": {
  "defaults": {
    "colorScheme": "Campbell"
  }
  "list": [...]
}

You can also quickly switch schemes with the Command palette and the "select color scheme..." action

@zadjii-msft commented on GitHub (Aug 2, 2021): You could always try setting the colorScheme in [`profiles.defaults`](https://docs.microsoft.com/en-us/windows/terminal/customize-settings/profile-advanced). ```json "profiles": { "defaults": { "colorScheme": "Campbell" } "list": [...] } ``` You can also quickly switch schemes with the [Command palette](https://docs.microsoft.com/en-us/windows/terminal/command-palette) and the ["select color scheme..."](https://github.com/microsoft/terminal/pull/9794) action
Author
Owner

@torgeros commented on GitHub (Aug 2, 2021):

You could always try setting the colorScheme in profiles.defaults.

"profiles": {
  "defaults": {
    "colorScheme": "Campbell"
  }
  "list": [...]
}

You can also quickly switch schemes with the Command palette and the "select color scheme..." action

That is good to know, but the existing "default-scheme" is only used when creating a new profile, isn't it? The problem that I cant change the color theme for multiple open tabs with different profiles remains.

@torgeros commented on GitHub (Aug 2, 2021): > > > You could always try setting the colorScheme in [`profiles.defaults`](https://docs.microsoft.com/en-us/windows/terminal/customize-settings/profile-advanced). > > ```json > "profiles": { > "defaults": { > "colorScheme": "Campbell" > } > "list": [...] > } > ``` > > You can also quickly switch schemes with the [Command palette](https://docs.microsoft.com/en-us/windows/terminal/command-palette) and the ["select color scheme..."](https://github.com/microsoft/terminal/pull/9794) action That is good to know, but the existing "default-scheme" is only used when creating a new profile, isn't it? The problem that I cant change the color theme for multiple open tabs with different profiles remains.
Author
Owner

@zadjii-msft commented on GitHub (Aug 2, 2021):

is only used when creating a new profile, isn't it?

Nope, it's used whenever a profile doesn't have another scheme set. So in this example:

"profiles": {
  "defaults": {
    "colorScheme": "Campbell"
  },
  "list": [
    {
      "name": "foo",
      "colorScheme": "Solarized"
    },
    {
      "name": "bar"
    }
  ]
}

foo's color scheme would be "Solarized", but bar's would fall back to "Campbell". Change "Campbell" to "Monokai" in the profiles.defaults section, and now bar's scheme would automatically change to "Monokai"

@zadjii-msft commented on GitHub (Aug 2, 2021): > is only used when creating a new profile, isn't it? Nope, it's used whenever a profile doesn't have another scheme set. So in this example: ```json "profiles": { "defaults": { "colorScheme": "Campbell" }, "list": [ { "name": "foo", "colorScheme": "Solarized" }, { "name": "bar" } ] } ``` `foo`'s color scheme would be "Solarized", but `bar`'s would fall back to "Campbell". Change "Campbell" to "Monokai" in the `profiles.defaults` section, and now `bar`'s scheme would automatically change to "Monokai"
Author
Owner

@torgeros commented on GitHub (Aug 3, 2021):

Thank you, that is good to know!

If I understand correctly, there are two things missing to create the wanted behaviour:

First one is an option to unset the used theme from the GUI-settings, which could be done by inserting an option "default" to the theme-dropdown and making it remove the line "colorScheme": "..." from the JSON file when it is selected.

Second one is an option under "Appearance" that select a default color scheme as that is currently only possible through JSON.
After this has been implemented it could be used to make fixing #4066 a little easier..

That sounds sufficiently easy to fix, if I find time to do it, I will fix it myself.

@torgeros commented on GitHub (Aug 3, 2021): Thank you, that is good to know! If I understand correctly, there are two things missing to create the wanted behaviour: First one is an option to unset the used theme from the GUI-settings, which could be done by inserting an option `"default"` to the theme-dropdown and making it remove the line `"colorScheme": "..."` from the JSON file when it is selected. Second one is an option under "Appearance" that select a default color scheme as that is currently only possible through JSON. After this has been implemented it could be used to make fixing #4066 a little easier.. That sounds sufficiently easy to fix, if I find time to do it, I will fix it myself.
Author
Owner

@zadjii-msft commented on GitHub (Aug 3, 2021):

@torgeros You actually don't need to worry about that! We're already working on bringing the "Defaults" back to the SUI. That'll have a separate page for the defaults, and little buttons to revert individual profile settings back to the value in the defaults:

image
image

IIRC that's in 1.10 Preview (#10588)

@zadjii-msft commented on GitHub (Aug 3, 2021): @torgeros You actually don't need to worry about that! We're already working on bringing the "Defaults" back to the SUI. That'll have a separate page for the defaults, and little buttons to revert individual profile settings back to the value in the defaults: ![image](https://user-images.githubusercontent.com/18356694/128031286-e0bed851-e361-46cf-a4d5-fb86175a4dd7.png) ![image](https://user-images.githubusercontent.com/18356694/128031332-b1e2c3e2-cc8d-4011-8a01-45882b8393af.png) IIRC that's in 1.10 Preview (#10588)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#14756