-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Epic: Settings UI v2 #10000
Labels
Area-Settings UI
Anything specific to the SUI
Issue-Scenario
Product-Terminal
The new Windows Terminal.
Comments
carlos-zamora
added
Product-Terminal
The new Windows Terminal.
Issue-Scenario
Area-Settings UI
Anything specific to the SUI
and removed
⛺ Reserved
For future use
labels
Jun 27, 2022
A few notes from sync today:
|
Other SUI epics: and vaguely: |
carlos-zamora
added
the
Needs-Discussion
Something that requires a team discussion before we can proceed
label
Jul 6, 2022
zadjii-msft
removed
the
Needs-Discussion
Something that requires a team discussion before we can proceed
label
Jul 11, 2022
7 tasks
As requested from Carlos. We should consider updating Color Scheme in the profile appearance settings UI to now be two dropdown selections, "Dark Color Scheme" and "Light Color Scheme", to align with the changes made in PR #14064 This allows users to be able to configure their profiles to change when the application or system theme changes. |
7 tasks
5 tasks
4 tasks
microsoft-github-policy-service bot
pushed a commit
that referenced
this issue
Feb 29, 2024
## Summary of the Pull Request Allow editing of font features and axes in the SUI to get the UI closer towards JSON parity The allowed font axes are obtained directly from the currently selected font, and their display names are presented to the user in the user's current locale (if it exists). Otherwise, we just display the axis tag to the user. ## References and Relevant Issues #10000 ## Validation Steps Performed - [x] Font Axes can be added/changed/removed from the Settings UI ![image](https://github.com/microsoft/terminal/assets/26824113/b1c3ed57-e329-4893-9f15-7b60154b5ea0) ![image](https://github.com/microsoft/terminal/assets/26824113/e1f1ea22-857d-4392-8a15-f81539fe9257) ## PR Checklist - [ ] Closes #xxx - [ ] Tests added/passed - [ ] Documentation updated - If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx - [ ] Schema updated (if necessary)
microsoft-github-policy-service bot
pushed a commit
that referenced
this issue
Feb 29, 2024
## Summary of the Pull Request **Targets #16104** Same as #16104, but for font features ## References and Relevant Issues #10000 ## Validation Steps Performed Font features are detected correctly and can be set in the settings UI ![image](https://github.com/microsoft/terminal/assets/26824113/054c30fa-c584-4b71-872d-d956526c373b) ![image](https://github.com/microsoft/terminal/assets/26824113/484a20eb-abe9-478c-99cf-f63939ab4c5b) ## PR Checklist - [ ] Closes #xxx - [ ] Tests added/passed - [ ] Documentation updated - If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx - [ ] Schema updated (if necessary)
DHowett
pushed a commit
that referenced
this issue
Aug 23, 2024
Adds functionality throughout the settings model to keep track of which settings have been set. There are two entry points: - AppLogic.cpp: this is where we perform a settings reload by loading the JSON - MainPage.cpp: this is where the Save button is clicked in the settings UI Both of these entry points call into `CascadiaSettings::LogSettingChanges()` where we aggregate the list of changes (specifically, _which_ settings changed, not _what_ their value is). Just about all of the settings model objects now have a `LogSettingChanges(std::set& changes, std::string_view context)` on them. - `changes` is where we aggregate all of the changes to. In it being a set, we don't need to worry about duplicates and can do things like iterate across all of the profiles. - `context` prepends a string to the setting. This'll allow us to better identify where a setting was changes (i.e. "global.X" are global settings). We also use this to distinguish between settings set in the ~base layer~ profile defaults vs individual profiles. The change log in each object is modified via two ways: - `LayerJson()` changes: this is useful for detecting JSON changes! All we're doing is checking if the setting has a value (due to inheritance, just about everything is an optional here!). If the value is set, we add the json key to the change log - `INHERITABLE_SETTING_WITH_LOGGING` in IInheritable.h: we already use this macro to define getters and setters. This new macro updates the setter to check if the value was set to something different. If so, log it! Other notes: - We're not distinguishing between `defaultAppearance` and `unfocusedAppearance` - We are distinguishing between `profileDefaults` and `profile` (any other profile) - New Tab Menu Customization: - we really just care about the entry types. Handled in `GlobalAppSettings` - Font: - We still have support for legacy values here. We still want to track them, but just use the modern keys. - `Theme`: - We don't do inheritance here, so we have to approach it differently. During the JSON load, we log each setting. However, we don't have `LayerJson`! So instead, do the work in `CascadiaSettings` and store the changes there. Note that we don't track any changes made via setters. This is fine for now since themes aren't even in the settings UI, so we wouldn't get much use out of it anyways. - Actions: - Actions are weird because we can have nested and iterable actions too, but `ActionsAndArgs` as a whole add a ton of functionality. I handled it over in `Command::LogSettingChanges` and we generally just serialize it to JSON to get the keys. It's a lot easier than dealing with the object model. Epic: #10000 Auto-Save (ish): #12424
This was referenced Sep 6, 2024
carlos-zamora
added a commit
that referenced
this issue
Sep 25, 2024
Adds the following settings to the Interaction page under a Warnings subsection: - ConfirmCloseAllTabs - InputServiceWarning - WarnAboutLargePaste - WarnAboutMultiLinePaste This also changes the JSON keys of those settings to be in the `warning` namespace as a QOL change for JSON users. We still handle the legacy keys, don't worry 😉. #10000
This was referenced Sep 26, 2024
DHowett
pushed a commit
that referenced
this issue
Oct 10, 2024
## Summary of the Pull Request Adds the following settings to the settings UI: - $profile.RainbowSuggestions - $profile.CellWidth - $global.SearchWebDefaultQueryUrl - $global.EnableColorSelection - $global.ShowAdminShield - $global.EnableUnfocusedAcrylic Additionally, the following settings have graduated from experimental 🎓: - $profile.rightClickContextMenu Part of #10000
DHowett
pushed a commit
that referenced
this issue
Oct 10, 2024
## Summary of the Pull Request Adds a global Compatibility page to the settings UI. This page exposes several existing settings and introduces a few new settings: - compatibility.allowHeadless - compatibility.isolatedMode - compatibility.textMeasurement - debugFeatures This also adds a Terminal subpage for profiles in the settings UI. This page includes: - suppressApplicationTitle - compatibility.input.forceVT - compatibility.allowDECRQCRA - answerbackMessage Several smaller changes were accomplished as a part of this PR: - `experimental.input.forceVT` was renamed to `compatibility.input.forceVT` - introduced the `compatibility.allowDECRQCRA` setting - updated the schema for these new settings and `compatibility.allowHeadless` (which was missing) - add `Feature_DebugModeUI` feature flag to control if debug features should be shown in the SUI Verified accessible via Accessibility Insights A part of #10000 Closes #16672
DHowett
pushed a commit
that referenced
this issue
Oct 22, 2024
## Summary of the Pull Request Improves the UI for the Profile.Icon setting by adding an "Icon Type" combo box. This allows the user to pick from multiple options: - None: sets the icon to "none" which is interpreted as no icon - Built-in Icon: presents a combo box that enumerates the Segoe MDL 2 assets - Emoji: presents a text box with a hint to open the emoji picker - File: presents a text box to input the path of the image to use Additionally, the rendered icon is displayed in the setting container. If "none", "none" is presented to the user (localized). ✅ Verified as accessible using Accessibility Insights #10000
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Area-Settings UI
Anything specific to the SUI
Issue-Scenario
Product-Terminal
The new Windows Terminal.
The goal of this issue is to track work on the settings UI to achieve (1) parity with the JSON experience and (2) experiences that are generally expected of a standard settings UI. Work items included here are not final, and can be removed/added at any time.
JSON Parity
All of these settings exist in the JSON, but not the SUI. For the most part, these require some kind of design to make it a good experience. A few notes I want to point out...
Startup page
Launch position
SUI controls not active unless X/Y values are entered first. #14156startupActions
to Settings UI #8802)Interaction page
minimizeToNotificationArea
alwaysShowNotificationIcon
focusFollowMouse
Appearance page
experimental.useBackgroundImageForWindow
Appearance > Themes page
Extensions page
Compatibility page
experimental.input.forceVT
experimental.rendering
settingsexperimental.useBackgroundImageForWindow
Profile settings
adjustIndistinguishableColors
experimental.pixelShaderPath
bellSound
(supports one or multiple sound file paths)experimental.connection.passthroughMode
experimental.showMarksInScrollbar
experimental.autoMarkPrompts
icon
setting should have a cool emoji picker OR file picker OR some preset icons OR whatever, you get it. Dustin has ~ t h o u g h t s ~ on thisWarnings
- [ ]
largePasteWarning
- [ ]
multiLinePasteWarning
- [ ]
confirmCloseAllTabs
(see also Add the setting "confirmCloseAllTabs" to the UI #14413)Actions
Profile reordering / Dropdown Menu
hidden
Command palette
Features
These are SUI features that just make sense to have. They're experiences that are kind of expected in any SUI.
Tasks
experimental.detectUrls
experimental.retroTerminalEffects
experimental.pixelShaderPath
experimental.showMarksInScrollbar
experimental.autoMarkPrompts
TabBase
#8452Follow-ups from actions page...
switchToTab
towin+shift+q
. Save. EditswitchToTab
toctrl+shift+t
."unbound": "win+shift+q"
appears but doesn't need to exist.Actions::_GetContainerIndexByKeyChord
optimizationGetActionByKeyChord()
to get theCommand
Command::Name()
(assuming it has a name)The text was updated successfully, but these errors were encountered: