-
Notifications
You must be signed in to change notification settings - Fork 9.2k
Feature Request: Cascading settings (with a hardcoded default.json?) #754
Copy link
Copy link
Labels
Area-SettingsIssues related to settings and customizability, for console or terminalIssues related to settings and customizability, for console or terminalIssue-FeatureComplex enough to require an in depth planning process and actual budgeted, scheduled work.Complex enough to require an in depth planning process and actual budgeted, scheduled work.Product-TerminalThe new Windows Terminal.The new Windows Terminal.Resolution-Fix-CommittedFix is checked in, but it might be 3-4 weeks until a release.Fix is checked in, but it might be 3-4 weeks until a release.
Milestone
Metadata
Metadata
Assignees
Labels
Area-SettingsIssues related to settings and customizability, for console or terminalIssues related to settings and customizability, for console or terminalIssue-FeatureComplex enough to require an in depth planning process and actual budgeted, scheduled work.Complex enough to require an in depth planning process and actual budgeted, scheduled work.Product-TerminalThe new Windows Terminal.The new Windows Terminal.Resolution-Fix-CommittedFix is checked in, but it might be 3-4 weeks until a release.Fix is checked in, but it might be 3-4 weeks until a release.
Proposal
Include a default
profiles.jsonin the package, allow the user to override it and merge their settings into it.Questions
{... "thing": null, }?Child Work Items
Things that need to be done to accomplish Cascading Settings
Each
<h3>here is a single PR into master, broken into either sub-PRs or work for me to do as a part of that PR[x] Don't re-serialize settings on load (PR: #2475)
This should be done first and foremost. This is not really helping anyone. Old settings all migrate nicely, so whatever. Let's just pull it.
[_] Combine a defaults.json with a profiles.json (PR: #2515)
Json::Valueon top of an existing objectProfiles for a duplicate, and layer on that dupe or create a newProfileif no such dupe exists."unbound"nullnull(e.g."iconPath": null)[_] Add Dynamic Profile Generators
Provide DPG's withWe're not doing this anymore. We'll create the GUID for the profile when it's returned, if it has a GUID of {0}GetNamespaceGuidandGetGuidForNamefunctions fromAppsomehowguidandsource, not justguiddisabledProfileSourcesin user settings to hide dynamic profiles by namespaceguidandsourceguid that must both match. If a user profile with asourceset does not find a matching profile at load time, the profile should be ignored."table". Probably don't need to include in the diff keys that arestd::nulloptin both the base and derived.[_] Smart Serializing
This would be needed for a Settings UI, so we don't necessarily need it for 1.0