profiles.defaults should be default values, not override values, or make a new section for overridable defaults #17171

Open
opened 2026-01-31 05:34:15 +00:00 by claunia · 0 comments
Owner

Originally created by @DJackman123 on GitHub (Apr 6, 2022).

Originally assigned to: @lhecker on GitHub.

The current implementation of Terminal applies the settings found in profiles.default to all profiles, regardless of whether the individual profile has its own value for any of those settings. Unfortunately, this behavior is unexpected and confusing. The only reasoning I can come up with is that profiles.default was meant to override settings from automatic profiles that aren't defined in settings.json at all. For profiles defined in settings.json, the expectation for profiles.default would be that any setting not defined in an individual profile would get its value from profiles.default, but if a setting is provided in the individual profile the corresponding setting in profiles.default would be ignored.

Please change Terminal so profiles.default behaves in an expected way, providing default values and not override values. If an overriding section is really needed, then create a new profiles.overrides section for this. With the current implementation, it is not possible to define several profiles and have most of them use a common value for some settings, while one or two exception profiles do something different without copying that setting to every individual profile. profiles.default has very little value when it forces itself onto every profile.
If profiles.default can't change for some reason, then consider creating a new section (maybe profiles.fallback) for overridable defaults or fallback values that individual profiles can override if they provide a value for that setting in the profile.

Originally created by @DJackman123 on GitHub (Apr 6, 2022). Originally assigned to: @lhecker on GitHub. The current implementation of Terminal applies the settings found in profiles.default to all profiles, regardless of whether the individual profile has its own value for any of those settings. Unfortunately, this behavior is unexpected and confusing. The only reasoning I can come up with is that profiles.default was meant to override settings from automatic profiles that aren't defined in settings.json at all. For profiles defined in settings.json, the expectation for profiles.default would be that any setting not defined in an individual profile would get its value from profiles.default, but if a setting *is* provided in the individual profile the corresponding setting in profiles.default would be ignored. Please change Terminal so profiles.default behaves in an expected way, providing default values and not override values. If an overriding section is really needed, then create a new profiles.overrides section for this. With the current implementation, it is not possible to define several profiles and have most of them use a common value for some settings, while one or two exception profiles do something different without copying that setting to every individual profile. profiles.default has very little value when it forces itself onto every profile. If profiles.default can't change for some reason, then consider creating a new section (maybe profiles.fallback) for overridable defaults or fallback values that individual profiles can override if they provide a value for that setting in the profile.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#17171