Feature Request: stable UUIDs for default profiles #1180

Closed
opened 2026-01-30 22:18:14 +00:00 by claunia · 3 comments
Owner

Originally created by @DHowett-MSFT on GitHub (May 17, 2019).

Originally assigned to: @DHowett-MSFT on GitHub.

Summary of the new feature/enhancement

This feature will ensure that the default profiles created by Windows Terminal always have the same GUIDs. This is necessary for us to move to cascading settings (#754), as it will allow the user to override some of the default profiles and for us to re-map their overrides back to the original profile.

Proposed technical implementation details

I propose that we use a version 5 UUID as outlined in RFC 4122, section 4.3: Algorithm for Creating a Name-Based UUID.

Namespace: {2BDE4A90-D05F-401C-9492-E40884EAD1D8} (voted most random at local county fair)
Canonical Form: Name of profile encoded in BOM-less UTF-8 BOM-less UTF-16LE

Originally created by @DHowett-MSFT on GitHub (May 17, 2019). Originally assigned to: @DHowett-MSFT on GitHub. # Summary of the new feature/enhancement This feature will ensure that the default profiles created by Windows Terminal _always have the same GUIDs_. This is necessary for us to move to cascading settings (#754), as it will allow the user to override some of the default profiles and for us to re-map their overrides back to the original profile. # Proposed technical implementation details I propose that we use a version 5 UUID as outlined in [RFC 4122, section 4.3: Algorithm for Creating a Name-Based UUID](https://tools.ietf.org/html/rfc4122#section-4.3). **Namespace**: `{2BDE4A90-D05F-401C-9492-E40884EAD1D8}` (voted _most random_ at local county fair) **Canonical Form**: Name of profile encoded in ~BOM-less UTF-8~ BOM-less UTF-16LE
claunia added the Issue-FeatureArea-SettingsNeeds-Tag-FixProduct-Terminal labels 2026-01-30 22:18:15 +00:00
Author
Owner

@DHowett-MSFT commented on GitHub (May 17, 2019):

Justification for 0.2 (@cinnamon-msft, @bitcrazed)

This is required for 0.2 because it will be our first out-in-the-wild release. If we change the GUIDs after that point, we risk damaging user settings.

@DHowett-MSFT commented on GitHub (May 17, 2019): ### Justification for **0.2** (@cinnamon-msft, @bitcrazed) This is required for 0.2 because it will be our first out-in-the-wild release. If we change the GUIDs after that point, we risk damaging user settings.
Author
Owner

@DHowett-MSFT commented on GitHub (May 17, 2019):

(This is assigned to me because I am working on it. It's not up for grabs!)

@DHowett-MSFT commented on GitHub (May 17, 2019): (This is assigned to me because I am working on it. It's not up for grabs!)
Author
Owner

@DHowett-MSFT commented on GitHub (May 21, 2019):

I've switched the suggested name format from BOMless UTF-8 to BOMless UTF-16LE because I wanted to have fewer string conversions back and forth at runtime.

@DHowett-MSFT commented on GitHub (May 21, 2019): I've switched the suggested name format from BOMless UTF-8 to BOMless UTF-16LE because I wanted to have fewer string conversions back and forth at runtime.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#1180