From 8841f6533f6a97589d7534f8d764172f92a57cf9 Mon Sep 17 00:00:00 2001 From: Carlos Zamora Date: Thu, 11 Jun 2026 18:22:20 -0700 Subject: [PATCH] Add sections & groupings to global settings --- .../TerminalSettingsEditor/Compatibility.cpp | 1 + .../TerminalSettingsEditor/Compatibility.h | 3 + .../TerminalSettingsEditor/Compatibility.idl | 5 + .../TerminalSettingsEditor/Compatibility.xaml | 65 ++- .../GlobalAppearance.xaml | 218 +++++---- .../TerminalSettingsEditor/Interaction.xaml | 312 ++++++++----- .../TerminalSettingsEditor/Launch.xaml | 441 ++++++++--------- .../TerminalSettingsEditor/MainPage.cpp | 7 - .../TerminalSettingsEditor/MainPage.xaml | 5 - ...Microsoft.Terminal.Settings.Editor.vcxproj | 22 - ...t.Terminal.Settings.Editor.vcxproj.filters | 2 - .../TerminalSettingsEditor/NavConstants.h | 2 - .../ProfileViewModel.cpp | 15 +- .../TerminalSettingsEditor/ProfileViewModel.h | 1 + .../ProfileViewModel.idl | 1 + .../TerminalSettingsEditor/Profiles_Base.cpp | 6 +- .../TerminalSettingsEditor/Profiles_Base.xaml | 268 ++++++----- .../TerminalSettingsEditor/Rendering.cpp | 31 -- .../TerminalSettingsEditor/Rendering.h | 25 - .../TerminalSettingsEditor/Rendering.idl | 13 - .../TerminalSettingsEditor/Rendering.xaml | 49 -- .../RenderingViewModel.cpp | 21 - .../RenderingViewModel.h | 28 -- .../RenderingViewModel.idl | 19 - .../Resources/en-US/Resources.resw | 442 +++++++++++++----- 25 files changed, 1090 insertions(+), 912 deletions(-) delete mode 100644 src/cascadia/TerminalSettingsEditor/Rendering.cpp delete mode 100644 src/cascadia/TerminalSettingsEditor/Rendering.h delete mode 100644 src/cascadia/TerminalSettingsEditor/Rendering.idl delete mode 100644 src/cascadia/TerminalSettingsEditor/Rendering.xaml delete mode 100644 src/cascadia/TerminalSettingsEditor/RenderingViewModel.cpp delete mode 100644 src/cascadia/TerminalSettingsEditor/RenderingViewModel.h delete mode 100644 src/cascadia/TerminalSettingsEditor/RenderingViewModel.idl diff --git a/src/cascadia/TerminalSettingsEditor/Compatibility.cpp b/src/cascadia/TerminalSettingsEditor/Compatibility.cpp index 82e39190c5..dd2bfca8b3 100644 --- a/src/cascadia/TerminalSettingsEditor/Compatibility.cpp +++ b/src/cascadia/TerminalSettingsEditor/Compatibility.cpp @@ -17,6 +17,7 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation { INITIALIZE_BINDABLE_ENUM_SETTING(TextMeasurement, TextMeasurement, winrt::Microsoft::Terminal::Control::TextMeasurement, L"Globals_TextMeasurement_", L"Text"); INITIALIZE_BINDABLE_ENUM_SETTING(AmbiguousWidth, AmbiguousWidth, winrt::Microsoft::Terminal::Control::AmbiguousWidth, L"Globals_AmbiguousWidth_", L"Text"); + INITIALIZE_BINDABLE_ENUM_SETTING(GraphicsAPI, GraphicsAPI, winrt::Microsoft::Terminal::Control::GraphicsAPI, L"Globals_GraphicsAPI_", L"Text"); } bool CompatibilityViewModel::DebugFeaturesAvailable() const noexcept diff --git a/src/cascadia/TerminalSettingsEditor/Compatibility.h b/src/cascadia/TerminalSettingsEditor/Compatibility.h index 2fd057758e..73c183a519 100644 --- a/src/cascadia/TerminalSettingsEditor/Compatibility.h +++ b/src/cascadia/TerminalSettingsEditor/Compatibility.h @@ -25,8 +25,11 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation PERMANENT_OBSERVABLE_PROJECTED_SETTING(_settings.GlobalSettings(), AllowHeadless); PERMANENT_OBSERVABLE_PROJECTED_SETTING(_settings.GlobalSettings(), DebugFeaturesEnabled); + PERMANENT_OBSERVABLE_PROJECTED_SETTING(_settings.GlobalSettings(), DisablePartialInvalidation); + PERMANENT_OBSERVABLE_PROJECTED_SETTING(_settings.GlobalSettings(), SoftwareRendering); GETSET_BINDABLE_ENUM_SETTING(TextMeasurement, winrt::Microsoft::Terminal::Control::TextMeasurement, _settings.GlobalSettings().TextMeasurement); GETSET_BINDABLE_ENUM_SETTING(AmbiguousWidth, winrt::Microsoft::Terminal::Control::AmbiguousWidth, _settings.GlobalSettings().AmbiguousWidth); + GETSET_BINDABLE_ENUM_SETTING(GraphicsAPI, winrt::Microsoft::Terminal::Control::GraphicsAPI, _settings.GlobalSettings().GraphicsAPI); private: Model::CascadiaSettings _settings; diff --git a/src/cascadia/TerminalSettingsEditor/Compatibility.idl b/src/cascadia/TerminalSettingsEditor/Compatibility.idl index 7f94b780fd..c30ff5c634 100644 --- a/src/cascadia/TerminalSettingsEditor/Compatibility.idl +++ b/src/cascadia/TerminalSettingsEditor/Compatibility.idl @@ -23,6 +23,11 @@ namespace Microsoft.Terminal.Settings.Editor IInspectable CurrentAmbiguousWidth; Windows.Foundation.Collections.IObservableVector AmbiguousWidthList { get; }; + + IInspectable CurrentGraphicsAPI; + Windows.Foundation.Collections.IObservableVector GraphicsAPIList { get; }; + PERMANENT_OBSERVABLE_PROJECTED_SETTING(Boolean, DisablePartialInvalidation); + PERMANENT_OBSERVABLE_PROJECTED_SETTING(Boolean, SoftwareRendering); } [default_interface] runtimeclass Compatibility : Windows.UI.Xaml.Controls.Page diff --git a/src/cascadia/TerminalSettingsEditor/Compatibility.xaml b/src/cascadia/TerminalSettingsEditor/Compatibility.xaml index c05f132402..cef8aca9a8 100644 --- a/src/cascadia/TerminalSettingsEditor/Compatibility.xaml +++ b/src/cascadia/TerminalSettingsEditor/Compatibility.xaml @@ -24,11 +24,15 @@ - + + + x:Uid="Globals_AllowHeadless" + Margin="0,36,0,0"> + + + @@ -36,6 +40,9 @@ + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/cascadia/TerminalSettingsEditor/GlobalAppearance.xaml b/src/cascadia/TerminalSettingsEditor/GlobalAppearance.xaml index 1c60d92015..a824f25d9c 100644 --- a/src/cascadia/TerminalSettingsEditor/GlobalAppearance.xaml +++ b/src/cascadia/TerminalSettingsEditor/GlobalAppearance.xaml @@ -18,7 +18,6 @@ - @@ -26,11 +25,19 @@ - + + + + + - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + - + + + + + - - - - + + - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - + + + - - - - + + - - - + + + + + - + + + + + + + + diff --git a/src/cascadia/TerminalSettingsEditor/Interaction.xaml b/src/cascadia/TerminalSettingsEditor/Interaction.xaml index b6093d337b..d6e0f3c0df 100644 --- a/src/cascadia/TerminalSettingsEditor/Interaction.xaml +++ b/src/cascadia/TerminalSettingsEditor/Interaction.xaml @@ -24,148 +24,210 @@ - - - - - - + - - - - + + - - - - + + + + + + + - - - - + + + + - - - - + + + + + + - - - - + + + + + + + + + - - - - + + + + - - - - + + + + + + - - - - + + - - - - + + + + + + + - - - - + + + + + + + - - - - - - - - - + + - - - + + + + + + + - - - - + + + + + + + - - - - + + + + + + + + + + - - - - + + + + - - - - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/cascadia/TerminalSettingsEditor/Launch.xaml b/src/cascadia/TerminalSettingsEditor/Launch.xaml index 7d391a5e32..a7726bb9bc 100644 --- a/src/cascadia/TerminalSettingsEditor/Launch.xaml +++ b/src/cascadia/TerminalSettingsEditor/Launch.xaml @@ -41,236 +41,255 @@ - - - - - - - - + + + - - - - - - + + + + + + + - + + + + + + + + + + + + - + - - - - - + + + + + + - - - - - - + + + + - - - - - - - - + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - + + + + + + - - + + + + + - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/cascadia/TerminalSettingsEditor/MainPage.cpp b/src/cascadia/TerminalSettingsEditor/MainPage.cpp index 2f3cd75db0..c159d4260b 100644 --- a/src/cascadia/TerminalSettingsEditor/MainPage.cpp +++ b/src/cascadia/TerminalSettingsEditor/MainPage.cpp @@ -7,8 +7,6 @@ #include "Launch.h" #include "Interaction.h" #include "Compatibility.h" -#include "Rendering.h" -#include "RenderingViewModel.h" #include "Extensions.h" #include "Actions.h" #include "ProfileViewModel.h" @@ -576,11 +574,6 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation contentFrame().Navigate(xaml_typename(), winrt::make(winrt::make(_settingsClone.GlobalSettings()), *this, elementToFocus)); _breadcrumbs.Append(winrt::make(vm, RS_(L"Nav_Interaction/Content"), BreadcrumbSubPage::None)); } - else if (*clickedItemTag == renderingTag) - { - contentFrame().Navigate(xaml_typename(), winrt::make(winrt::make(_settingsClone), *this, elementToFocus)); - _breadcrumbs.Append(winrt::make(vm, RS_(L"Nav_Rendering/Content"), BreadcrumbSubPage::None)); - } else if (*clickedItemTag == compatibilityTag) { contentFrame().Navigate(xaml_typename(), winrt::make(winrt::make(_settingsClone), *this, elementToFocus)); diff --git a/src/cascadia/TerminalSettingsEditor/MainPage.xaml b/src/cascadia/TerminalSettingsEditor/MainPage.xaml index 950295a10c..0b6bda4f9f 100644 --- a/src/cascadia/TerminalSettingsEditor/MainPage.xaml +++ b/src/cascadia/TerminalSettingsEditor/MainPage.xaml @@ -168,11 +168,6 @@ x:Uid="Nav_ColorSchemes" Tag="ColorSchemes_Nav" /> - - - diff --git a/src/cascadia/TerminalSettingsEditor/Microsoft.Terminal.Settings.Editor.vcxproj b/src/cascadia/TerminalSettingsEditor/Microsoft.Terminal.Settings.Editor.vcxproj index 3eea812f50..fb940bbf52 100644 --- a/src/cascadia/TerminalSettingsEditor/Microsoft.Terminal.Settings.Editor.vcxproj +++ b/src/cascadia/TerminalSettingsEditor/Microsoft.Terminal.Settings.Editor.vcxproj @@ -119,10 +119,6 @@ ColorSchemesPageViewModel.idl Code - - RenderingViewModel.idl - Code - InteractionViewModel.idl Code @@ -167,9 +163,6 @@ Appearances.xaml Code - - Rendering.xaml - SettingsCard.idl @@ -252,9 +245,6 @@ Designer - - Designer - DefaultStyle @@ -340,10 +330,6 @@ ColorSchemesPageViewModel.idl Code - - RenderingViewModel.idl - Code - InteractionViewModel.idl Code @@ -388,9 +374,6 @@ Appearances.xaml Code - - Rendering.xaml - SettingsCard.idl @@ -458,10 +441,6 @@ Compatibility.xaml Code - - Rendering.xaml - Code - MainPage.xaml @@ -471,7 +450,6 @@ - diff --git a/src/cascadia/TerminalSettingsEditor/Microsoft.Terminal.Settings.Editor.vcxproj.filters b/src/cascadia/TerminalSettingsEditor/Microsoft.Terminal.Settings.Editor.vcxproj.filters index 1dd9008d15..6c2d13a5c9 100644 --- a/src/cascadia/TerminalSettingsEditor/Microsoft.Terminal.Settings.Editor.vcxproj.filters +++ b/src/cascadia/TerminalSettingsEditor/Microsoft.Terminal.Settings.Editor.vcxproj.filters @@ -24,7 +24,6 @@ - @@ -50,7 +49,6 @@ - diff --git a/src/cascadia/TerminalSettingsEditor/NavConstants.h b/src/cascadia/TerminalSettingsEditor/NavConstants.h index f83097b80d..75fdad0ffa 100644 --- a/src/cascadia/TerminalSettingsEditor/NavConstants.h +++ b/src/cascadia/TerminalSettingsEditor/NavConstants.h @@ -12,7 +12,6 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation inline constexpr std::wstring_view openJsonTag{ L"OpenJson_Nav" }; inline constexpr std::wstring_view launchTag{ L"Launch_Nav" }; inline constexpr std::wstring_view interactionTag{ L"Interaction_Nav" }; - inline constexpr std::wstring_view renderingTag{ L"Rendering_Nav" }; inline constexpr std::wstring_view compatibilityTag{ L"Compatibility_Nav" }; inline constexpr std::wstring_view actionsTag{ L"Actions_Nav" }; inline constexpr std::wstring_view newTabMenuTag{ L"NewTabMenu_Nav" }; @@ -28,7 +27,6 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation std::pair{ interactionTag, L"\xE7C9" }, /* Touch Pointer */ std::pair{ globalAppearanceTag, L"\xE771" }, /* Personalize */ std::pair{ colorSchemesTag, L"\xE790" }, /* Color */ - std::pair{ renderingTag, L"\xE7F8" }, /* Device Laptop No Pic */ std::pair{ compatibilityTag, L"\xEC7A" }, /* Developer Tools */ std::pair{ actionsTag, L"\xE765" }, /* Keyboard Classic */ std::pair{ newTabMenuTag, L"\xE71D" }, /* All Apps */ diff --git a/src/cascadia/TerminalSettingsEditor/ProfileViewModel.cpp b/src/cascadia/TerminalSettingsEditor/ProfileViewModel.cpp index 327495d9d9..7269fcce8b 100644 --- a/src/cascadia/TerminalSettingsEditor/ProfileViewModel.cpp +++ b/src/cascadia/TerminalSettingsEditor/ProfileViewModel.cpp @@ -52,7 +52,7 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation if (viewModelProperty == L"IsBaseLayer") { // we _always_ want to show the background image settings in base layer - _NotifyChanges(L"BackgroundImageSettingsEnabled"); + _NotifyChanges(L"BackgroundImageSettingsEnabled", L"SectionHeaderText"); } else if (viewModelProperty == L"StartingDirectory") { @@ -128,6 +128,10 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation { _NotifyChanges(L"TabColorPreview"); } + else if (viewModelProperty == L"Name") + { + _NotifyChanges(L"SectionHeaderText"); + } }); // Do the same for the starting directory @@ -358,6 +362,15 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation return RS_(L"Profile_AnswerbackMessageNone"); } + hstring ProfileViewModel::SectionHeaderText() const + { + if (IsBaseLayer()) + { + return RS_(L"Profile_DefaultsSectionHeader"); + } + return hstring{ RS_fmt(L"Profile_NameSectionHeaderFormat", Name()) }; + } + Windows::UI::Color ProfileViewModel::TabColorPreview() const { if (const auto modelVal = _profile.TabColor()) diff --git a/src/cascadia/TerminalSettingsEditor/ProfileViewModel.h b/src/cascadia/TerminalSettingsEditor/ProfileViewModel.h index 9c4b3c08be..440715985d 100644 --- a/src/cascadia/TerminalSettingsEditor/ProfileViewModel.h +++ b/src/cascadia/TerminalSettingsEditor/ProfileViewModel.h @@ -103,6 +103,7 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation bool Orphaned() const; hstring TabTitlePreview() const; + hstring SectionHeaderText() const; hstring AnswerbackMessagePreview() const; Windows::UI::Color TabColorPreview() const; Windows::UI::Color TabThemeColorPreview() const; diff --git a/src/cascadia/TerminalSettingsEditor/ProfileViewModel.idl b/src/cascadia/TerminalSettingsEditor/ProfileViewModel.idl index 2bb15241dd..1f4e743a67 100644 --- a/src/cascadia/TerminalSettingsEditor/ProfileViewModel.idl +++ b/src/cascadia/TerminalSettingsEditor/ProfileViewModel.idl @@ -99,6 +99,7 @@ namespace Microsoft.Terminal.Settings.Editor Boolean UsingNoIcon { get; }; String TabTitlePreview { get; }; + String SectionHeaderText { get; }; String AnswerbackMessagePreview { get; }; Windows.UI.Color TabColorPreview { get; }; Windows.UI.Color TabThemeColorPreview { get; }; diff --git a/src/cascadia/TerminalSettingsEditor/Profiles_Base.cpp b/src/cascadia/TerminalSettingsEditor/Profiles_Base.cpp index 514c2f1255..c2248f1da7 100644 --- a/src/cascadia/TerminalSettingsEditor/Profiles_Base.cpp +++ b/src/cascadia/TerminalSettingsEditor/Profiles_Base.cpp @@ -21,9 +21,7 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation const auto startingDirCheckboxTooltip{ ToolTipService::GetToolTip(StartingDirectoryUseParentCheckbox()) }; Automation::AutomationProperties::SetFullDescription(StartingDirectoryUseParentCheckbox(), unbox_value(startingDirCheckboxTooltip)); - AppearanceNavigator().Header(box_value(RS_(L"Profile_Appearance/Header"))); - TerminalNavigator().Header(box_value(RS_(L"Profile_Terminal/Header"))); - AdvancedNavigator().Header(box_value(RS_(L"Profile_Advanced/Header"))); + Automation::AutomationProperties::SetName(DeleteButton(), RS_(L"Profile_DeleteButton/Text")); } void Profiles_Base::OnNavigatedTo(const NavigationEventArgs& e) @@ -50,7 +48,7 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation if (_Profile.FocusDeleteButton()) { - DeleteProfileButton().Focus(FocusState::Programmatic); + DeleteButton().Focus(FocusState::Programmatic); _Profile.FocusDeleteButton(false); } }); diff --git a/src/cascadia/TerminalSettingsEditor/Profiles_Base.xaml b/src/cascadia/TerminalSettingsEditor/Profiles_Base.xaml index aef8175165..383f2289fc 100644 --- a/src/cascadia/TerminalSettingsEditor/Profiles_Base.xaml +++ b/src/cascadia/TerminalSettingsEditor/Profiles_Base.xaml @@ -32,56 +32,114 @@ Style="{StaticResource DisclaimerStyle}" Visibility="{x:Bind Profile.IsBaseLayer}" /> + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Text="{x:Bind Profile.TabTitle, Mode=TwoWay}" /> - - - - - - - - - - - - - - - - - + diff --git a/src/cascadia/TerminalSettingsEditor/Rendering.cpp b/src/cascadia/TerminalSettingsEditor/Rendering.cpp deleted file mode 100644 index b6535d5609..0000000000 --- a/src/cascadia/TerminalSettingsEditor/Rendering.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT license. - -#include "pch.h" -#include "Rendering.h" -#include "Rendering.g.cpp" - -using namespace winrt::Windows::UI::Xaml::Navigation; - -namespace winrt::Microsoft::Terminal::Settings::Editor::implementation -{ - Rendering::Rendering() - { - InitializeComponent(); - } - - void Rendering::OnNavigatedTo(const NavigationEventArgs& e) - { - const auto args = e.Parameter().as(); - _ViewModel = args.ViewModel().as(); - BringIntoViewWhenLoaded(args.ElementToFocus()); - - TraceLoggingWrite( - g_hTerminalSettingsEditorProvider, - "NavigatedToPage", - TraceLoggingDescription("Event emitted when the user navigates to a page in the settings UI"), - TraceLoggingValue("rendering", "PageId", "The identifier of the page that was navigated to"), - TraceLoggingKeyword(MICROSOFT_KEYWORD_MEASURES), - TelemetryPrivacyDataTag(PDT_ProductAndServiceUsage)); - } -} diff --git a/src/cascadia/TerminalSettingsEditor/Rendering.h b/src/cascadia/TerminalSettingsEditor/Rendering.h deleted file mode 100644 index dd202b1c7e..0000000000 --- a/src/cascadia/TerminalSettingsEditor/Rendering.h +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT license. - -#pragma once - -#include "Rendering.g.h" -#include "Utils.h" - -namespace winrt::Microsoft::Terminal::Settings::Editor::implementation -{ - struct Rendering : public HasScrollViewer, RenderingT - { - Rendering(); - - void OnNavigatedTo(const winrt::Windows::UI::Xaml::Navigation::NavigationEventArgs& e); - - til::property_changed_event PropertyChanged; - WINRT_OBSERVABLE_PROPERTY(Editor::RenderingViewModel, ViewModel, PropertyChanged.raise, nullptr); - }; -} - -namespace winrt::Microsoft::Terminal::Settings::Editor::factory_implementation -{ - BASIC_FACTORY(Rendering); -} diff --git a/src/cascadia/TerminalSettingsEditor/Rendering.idl b/src/cascadia/TerminalSettingsEditor/Rendering.idl deleted file mode 100644 index 21dc7d8023..0000000000 --- a/src/cascadia/TerminalSettingsEditor/Rendering.idl +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT license. - -import "RenderingViewModel.idl"; - -namespace Microsoft.Terminal.Settings.Editor -{ - [default_interface] runtimeclass Rendering : Windows.UI.Xaml.Controls.Page - { - Rendering(); - RenderingViewModel ViewModel { get; }; - } -} diff --git a/src/cascadia/TerminalSettingsEditor/Rendering.xaml b/src/cascadia/TerminalSettingsEditor/Rendering.xaml deleted file mode 100644 index fa668919ed..0000000000 --- a/src/cascadia/TerminalSettingsEditor/Rendering.xaml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/cascadia/TerminalSettingsEditor/RenderingViewModel.cpp b/src/cascadia/TerminalSettingsEditor/RenderingViewModel.cpp deleted file mode 100644 index 74c4d5922a..0000000000 --- a/src/cascadia/TerminalSettingsEditor/RenderingViewModel.cpp +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT license. - -#include "pch.h" -#include "RenderingViewModel.h" - -#include "EnumEntry.h" - -#include "RenderingViewModel.g.cpp" - -using namespace winrt::Windows::Foundation; -using namespace winrt::Microsoft::Terminal::Settings::Model; - -namespace winrt::Microsoft::Terminal::Settings::Editor::implementation -{ - RenderingViewModel::RenderingViewModel(CascadiaSettings settings) noexcept : - _settings{ std::move(settings) } - { - INITIALIZE_BINDABLE_ENUM_SETTING(GraphicsAPI, GraphicsAPI, winrt::Microsoft::Terminal::Control::GraphicsAPI, L"Globals_GraphicsAPI_", L"Text"); - } -} diff --git a/src/cascadia/TerminalSettingsEditor/RenderingViewModel.h b/src/cascadia/TerminalSettingsEditor/RenderingViewModel.h deleted file mode 100644 index b3042d893a..0000000000 --- a/src/cascadia/TerminalSettingsEditor/RenderingViewModel.h +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT license. - -#pragma once - -#include "RenderingViewModel.g.h" -#include "Utils.h" -#include "ViewModelHelpers.h" - -namespace winrt::Microsoft::Terminal::Settings::Editor::implementation -{ - struct RenderingViewModel : RenderingViewModelT, ViewModelHelper - { - explicit RenderingViewModel(Model::CascadiaSettings settings) noexcept; - - GETSET_BINDABLE_ENUM_SETTING(GraphicsAPI, winrt::Microsoft::Terminal::Control::GraphicsAPI, _settings.GlobalSettings().GraphicsAPI); - PERMANENT_OBSERVABLE_PROJECTED_SETTING(_settings.GlobalSettings(), DisablePartialInvalidation); - PERMANENT_OBSERVABLE_PROJECTED_SETTING(_settings.GlobalSettings(), SoftwareRendering); - - private: - Model::CascadiaSettings _settings{ nullptr }; - }; -}; - -namespace winrt::Microsoft::Terminal::Settings::Editor::factory_implementation -{ - BASIC_FACTORY(RenderingViewModel); -} diff --git a/src/cascadia/TerminalSettingsEditor/RenderingViewModel.idl b/src/cascadia/TerminalSettingsEditor/RenderingViewModel.idl deleted file mode 100644 index 1ca164fbd9..0000000000 --- a/src/cascadia/TerminalSettingsEditor/RenderingViewModel.idl +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT license. - -import "EnumEntry.idl"; - -#include "ViewModelHelpers.idl.h" - -namespace Microsoft.Terminal.Settings.Editor -{ - runtimeclass RenderingViewModel : Windows.UI.Xaml.Data.INotifyPropertyChanged - { - RenderingViewModel(Microsoft.Terminal.Settings.Model.CascadiaSettings settings); - - IInspectable CurrentGraphicsAPI; - Windows.Foundation.Collections.IObservableVector GraphicsAPIList { get; }; - PERMANENT_OBSERVABLE_PROJECTED_SETTING(Boolean, DisablePartialInvalidation); - PERMANENT_OBSERVABLE_PROJECTED_SETTING(Boolean, SoftwareRendering); - } -} diff --git a/src/cascadia/TerminalSettingsEditor/Resources/en-US/Resources.resw b/src/cascadia/TerminalSettingsEditor/Resources/en-US/Resources.resw index 4f04dcba33..d595c4b499 100644 --- a/src/cascadia/TerminalSettingsEditor/Resources/en-US/Resources.resw +++ b/src/cascadia/TerminalSettingsEditor/Resources/en-US/Resources.resw @@ -232,11 +232,11 @@ This is the header for a control that lets the user select the yellow color for text displayed on the screen. - Language (requires relaunch) + Language The header for a control allowing users to choose the app's language. - Selects a display language for the application. This will override your default Windows interface language. + Choose the display language for the application. Overrides the Windows display language and requires a relaunch. A description explaining how this control changes the app's language. {Locked="Windows"} @@ -248,7 +248,7 @@ The "input scope" of an IME tells it what type of characters should be available for input. A Chinese IME for instance may show English letters instead of Chinese ones. It's a technical term. We're using "input mode" instead of "input scope" to make it easier to understand for users. - Informs the IME what language to use by default. For languages that rely on an IME and don't use Latin characters by default, this setting can be used to force English input on startup. + Choose the default IME input language. For IME-based languages, you can force English input on startup. Default @@ -256,14 +256,6 @@ Alphanumeric Half-Width (English) - - Always show tabs - Header for a control to toggle if the app should always show the tabs (similar to a website browser). - - - When disabled, the tab bar will appear when a new tab is created. Cannot be disabled while "Hide the title bar" is On. - A description for what the "always show tabs" setting does. Presented near "Globals_AlwaysShowTabs.Header". This setting cannot be disabled while "Globals_ShowTitlebar.Header" is enabled. - Position of newly created tabs Header for a control to select position of newly created tabs. @@ -289,35 +281,27 @@ Header for a control to toggle whether the terminal should automatically detect URLs and make them clickable, or not. - Default URL to use for the "Search web" action - Header for a control to set the query URL when using the "search web" action. + Default URL to use for the "Search web" shortcut + Header for a control to set the query URL when using the "search web" shortcut. The placeholder "%s" will be replaced with the search query. {Locked="%s"} Additional text presented near "Globals_SearchWebDefaultQueryUrl.Header". - - Remove trailing white-space in rectangular selection - Header for a control to toggle whether a text selected with block selection should be trimmed of white spaces when copied to the clipboard, or not. - - - Remove trailing white-space when pasting - Header for a control to toggle whether pasted text should be trimmed of white spaces, or not. - Default profile Header for a control to select your default profile from the list of profiles you've created. - Profile that opens when clicking the '+' icon or by typing the new tab key binding. - A description for what the default profile is and when it's used. + + Intentionally empty. Kept so the resource has a neutral (en-US) value while still present in other locales. Older description: "Profile that opens when clicking the '+' icon or by typing the new tab key binding." Default terminal application Header for a drop down that permits the user to select which installed Terminal application will launch when command line tools like CMD are run from the Windows Explorer run box or start menu or anywhere else that they do not already have a graphical window assigned. - The terminal application that launches when a command-line application is run without an existing session, like from the Start Menu or Run dialog. + The terminal app used when a command-line app is launched without an existing session. A description to clarify that the dropdown choice for default terminal will tell the operating system which Terminal application (Windows Terminal, the preview build, the legacy inbox window, or a 3rd party one) to use when starting a command line tool like CMD or Powershell that does not already have a window. @@ -358,7 +342,7 @@ This text is shown next to a list of choices. - This changes the way incoming text is grouped into cells. The "Grapheme clusters" option is the most modern and Unicode-correct way to do so, while "wcswidth" is a common approach on UNIX, and "Windows Console" replicates the way it used to work on Windows. Changing this setting requires a restart of Windows Terminal and it only applies to applications launched from within it. + Choose how text is grouped into cells. "Grapheme clusters" provides the most modern Unicode behavior. Restart Terminal to apply changes. Only affects applications launched from Terminal. Grapheme clusters @@ -376,7 +360,7 @@ A label for a drop down selector, referring to the East Asian Ambiguous Width Unicode specification. - Sets the width used for East Asian Ambiguous characters. "Narrow" (default) prioritizes compatibility, while "Wide" prioritizes readability with many CJK fonts. In "Wide" mode, some applications may not work correctly and cause erratic cursor movement. Changing this setting requires a restart of Windows Terminal and it only applies to applications launched from within it. + Choose the width used for East Asian Ambiguous characters. "Narrow" improves compatibility, while "Wide" improves readability with many CJK fonts. Some applications may not work correctly in "Wide" mode. Restart Terminal to apply changes. Narrow @@ -427,7 +411,7 @@ The string to be displayed when there is no current value in the y-coordinate number box. - Let Windows decide + Use default launch position A checkbox for the "launch position" setting. Toggling this control sets the launch position to whatever the Windows operating system decides. @@ -439,7 +423,8 @@ Header for a control to select how the terminal should load its first window. - What should be shown when the first terminal is created. + + Intentionally empty. Kept so the resource has a neutral (en-US) value while still present in other locales. Older description: "What should be shown when the first terminal is created." Open a tab with the default profile @@ -458,12 +443,12 @@ An option to choose from for the "First window preference" setting. Reopen the layouts from the last session, but don't preserve the content. - Launch parameters + Launch mode Header for a set of settings that determine how terminal launches. These settings include the launch mode, launch position and whether the terminal should center itself on launch. - Settings that control how the terminal launches - A description for what the "launch parameters" expander contains. Presented near "Globals_LaunchParameters.Header". + Choose how Terminal opens + A description for the "launch mode" expander. Launch mode @@ -509,18 +494,6 @@ When disabled, the title bar will appear above the tabs. A description for what the "show titlebar" setting does. Presented near "Globals_ShowTitlebar.Header". - - Use acrylic material in the tab row - Header for a control to toggle whether "acrylic material" is used. "Acrylic material" is a Microsoft-specific term: https://docs.microsoft.com/en-us/windows/apps/design/style/acrylic - - - Use active terminal title as application title - Header for a control to toggle whether the terminal's title is shown as the application title, or not. - - - When disabled, the title bar will be 'Terminal'. - A description for what the "show title in titlebar" setting does. Presented near "Globals_ShowTitleInTitlebar.Header".{Locked="Windows"} - Snap window resizing to character grid Header for a control to toggle whether the terminal snaps the window to the character grid when resizing, or not. @@ -590,7 +563,7 @@ Additional description for what the "force vt input" setting does. Presented near "Globals_ForceVTInput.Header". - This allows actions such as Global Summon and Quake Mode actions to work even when no windows are open. + Allows Global Summon and Quake Mode to work when no windows are open. Additional description for what the "allow headless" setting does. Presented near "Globals_AllowHeadless.Header". @@ -614,7 +587,7 @@ An option to choose from for the "tab width mode" setting. When selected, each tab adjusts its width to the content within the tab. - Application Theme + Application theme Header for a control to choose the theme colors used in the app. @@ -650,8 +623,8 @@ A description for what the "word delimiters" setting does. Presented near "Globals_WordDelimiters.Header". "Mark" is used in the sense of "choosing something to interact with." - Appearance - Header for the "appearance" menu item. This navigates to a page that lets you see and modify settings related to the app's appearance. + Personalization + Header for the "personalization" menu item. This navigates to a page that lets you see and modify settings related to the app's appearance. Color schemes @@ -685,10 +658,6 @@ Defaults Header for the "defaults" menu item. This navigates to a page that lets you see and modify settings that affect profiles. This is the lowest layer of profile settings that all other profile settings are based on. If a profile doesn't define a setting, this page is responsible for figuring out what that setting is supposed to be. - - Rendering - Header for the "rendering" menu item. This navigates to a page that lets you see and modify settings related to the app's rendering of text in the terminal. - Actions Header for the "actions" menu item. This navigates to a page that lets you see the available commands in the app. @@ -930,10 +899,6 @@ Executable used in the profile. A description for what the "command line" setting does. Presented near "Profile_Commandline". - - Browse... - Button label that opens a file picker in a new window. The "..." is standard to mean it will open a new window. - Cursor height Header for a control to determine the height of the text cursor. @@ -1101,22 +1066,6 @@ The selected font has no font features. A description provided when the font features setting is disabled. Presented near "Profile_FontFeatures". - - Hide profile from dropdown - Header for a control to toggle whether the profile is shown in a dropdown menu, or not. - - - If enabled, the profile will not appear in the list of profiles. This can be used to hide default profiles and dynamically generated profiles, while leaving them in your settings file. - A description for what the "hidden" setting does. Presented near "Profile_Hidden". - - - Run this profile as Administrator - Header for a control to toggle whether the profile should always open elevated (in an admin window) - - - If enabled, the profile will open in an Admin terminal window automatically. If the current window is already running as admin, it will open in this window. - A description for what the "elevate" setting does. Presented near "Profile_Elevate". - History size Header for a control to determine how many lines of text can be saved in a session. In terminals, the "history" is the output generated within your session. @@ -1206,20 +1155,16 @@ Name for a control to determine the session's initial directory. This is on a text box that accepts folder paths. - Starting directory + Default starting directory Header for a control to determine the session's initial directory. This is on a text box that accepts folder paths. - - Starting directory - Name for a control to determine the session's initial directory. This is on a text box that accepts folder paths. - - The directory the profile starts in when it is loaded. + A description for what the "starting directory" setting does. Presented near "Profile_StartingDirectory". - - Browse... - Button label that opens a file picker in a new window. The "..." is standard to mean it will open a new window. + + Default starting directory + Name for a control to determine the session's initial directory. This is on a text box that accepts folder paths. Use parent process directory @@ -1538,7 +1483,7 @@ Header for a group of settings that control the size of the app. Presented near "Globals_InitialCols" and "Globals_InitialRows". - The number of rows and columns displayed in the window upon first load. Measured in characters. + Initial window size, in characters. A description for what the "rows" and "columns" settings do. Presented near "Globals_LaunchSize.Header". @@ -1590,8 +1535,8 @@ Name for a control to determine the name of the profile. This is a text box. - Name - Header for a control to determine the name of the profile. This is a text box. + Profile + Header for the profile section of the profile settings page. Shown above a text box that lets the user edit the profile name. Transparency @@ -1694,11 +1639,11 @@ A description for what the "save" button does. Presented near "Settings_SaveSettingsButton". - Tab switcher interface style + Tab switcher style Header for a control to choose how the tab switcher operates. - Selects which interface will be used when you switch tabs using the keyboard. + Choose the interface shown when switching tabs with the keyboard A description for what the "tab switcher mode" setting does. Presented near "Globals_TabSwitcherMode.Header". @@ -1741,30 +1686,10 @@ This color scheme name is already in use. An error message that appears when the user attempts to rename a color scheme to something invalid. This appears as the title, and explains the issue. - - Automatically focus pane on mouse hover - Header for a control to toggle the "focus follow mouse" setting. When enabled, hovering over a pane puts it in focus. - - - Adjust terminal font size by scrolling while holding the Ctrl key - Header for a control to toggle font size changes with scrolling. When enabled, holding the Ctrl key while scrolling will increase or decrease the terminal font size. - - - Adjust terminal opacity by scrolling while holding the Ctrl and Shift keys - Header for a control to toggle opacity changes with scrolling. When enabled, holding the Ctrl and Shift keys while scrolling will increase or decrease the window opacity. - - - Pane animations - Header for a control to toggle animations on panes. "Enabled" value enables the animations. - Always display an icon in the notification area Header for a control to toggle whether the notification icon should always be shown. - - Hide Terminal in the notification area when it is minimized - Header for a control to toggle whether the terminal should hide itself in the notification area instead of the taskbar when minimized. - Reset to inherited value. This button will remove a user's customization from a given setting, restoring it to the value that the profile inherited. This is a text label on a button. @@ -2238,11 +2163,11 @@ Header for a control to toggle whether to show a confirm dialog box when closing the application with multiple tabs open. - Warn when closing + Show a confirmation dialog before closing tabs or windows Header for a dropdown controlling when to show a confirmation dialog before closing. - Controls when a confirmation dialog appears before closing tabs or windows. "Always" presents the dialog when closing any pane. + "Always" presents the dialog when closing any pane. Help text associated with Globals_ConfirmOnClose. "Always" refers to Globals_ConfirmOnCloseAlways.Content. @@ -2260,9 +2185,6 @@ Warn when "Touch Keyboard and Handwriting Panel Service" is disabled - - Warn when pasting more than 5 KiB - Warn when pasting newlines @@ -2630,29 +2552,13 @@ This is a label for a setting that, when enabled, applies a rainbow coloring to the preview text from the suggestions UI. - Experimental: Add key bindings to color selected text + Add key bindings for colored text selection Header for a control to toggle adding a set of key bindings that can be used to apply coloring to selected text in a terminal session. - These key bindings can highlight the selected text or all instances of the selected text with a specified color. + Experimental. Highlight selected text or matching text with custom colors using key bindings Additional text for a control to toggle adding a set of key bindings that can be used to apply coloring to selected text in a terminal session. Presented near "Globals_EnableColorSelection.Header". - - Allow acrylic material in unfocused windows - Header for a control to toggle allowing unfocused windows to have an acrylic background. - - - Display a shield in the title bar when Windows Terminal is running as Administrator - Header for a control to toggle displaying a shield in the title bar of the app. "Admin" refers to elevated sessions like "run as Admin" - - - Show tabs in full screen - Header for a control to toggle if the app should show the tabs when in full screen state. - - - When enabled, the tab bar will be visible when the app is full screen. - A description for what the "show tabs in full screen" setting does. - Path translation Name for a control to select how file and directory paths are translated. @@ -2770,7 +2676,7 @@ Clear cache - The cache stores data related to saved sessions and automatically generated profiles. + Stores data related to saved sessions and automatically generated profiles. Reset @@ -2820,4 +2726,282 @@ None Default placeholder text shown in text box settings when no value has been set. + + Center on launch + Label for a checkbox to toggle whether the app should launch in the center of the screen, or not. + + + Columns — width of the window, in characters. + Tooltip shown next to the launch-size columns number box. + + + Rows — height of the window, in characters. + Tooltip shown next to the launch-size rows number box. + + + Launch at login + Label for a checkbox to toggle whether the app should launch when the user logs in to their machine. + + + Launch behavior + Title of a section that groups settings that control how the terminal opens and behaves when launched. + + + System and input defaults + Title of a section that groups settings for default system and input behaviors. + + + Automatically focus pane on mouse hover + Header for a control to toggle the "focus follow mouse" setting. When enabled, hovering over a pane puts it in focus. + + + Automatically focus pane on mouse hover + Header for a control to toggle the "focus follow mouse" setting. When enabled, hovering over a pane puts it in focus. + + + Warn when "Touch Keyboard and Handwriting Panel Service" is disabled + Label for a checkbox toggling the touch-keyboard / handwriting-panel service warning. {Locked="Touch Keyboard and Handwriting Panel Service"} + + + Adjust terminal opacity by scrolling while holding the Ctrl and Shift keys + Header for a control to toggle opacity changes with scrolling. When enabled, holding the Ctrl and Shift keys while scrolling will increase or decrease the window opacity. + + + Adjust terminal opacity by scrolling while holding the Ctrl and Shift keys + Header for a control to toggle opacity changes with scrolling. When enabled, holding the Ctrl and Shift keys while scrolling will increase or decrease the window opacity. + + + Adjust terminal font size by scrolling while holding the Ctrl key + Header for a control to toggle font size changes with scrolling. When enabled, holding the Ctrl key while scrolling will increase or decrease the terminal font size. + + + Adjust terminal font size by scrolling while holding the Ctrl key + Header for a control to toggle font size changes with scrolling. When enabled, holding the Ctrl key while scrolling will increase or decrease the terminal font size. + + + Remove trailing white-space in rectangular selection + Header for a control to toggle whether a text selected with block selection should be trimmed of white spaces when copied to the clipboard, or not. + + + Remove trailing white-space in rectangular selection + Header for a control to toggle whether a text selected with block selection should be trimmed of white spaces when copied to the clipboard, or not. + + + Remove trailing white-space when pasting + Header for a control to toggle whether pasted text should be trimmed of white spaces, or not. + + + Remove trailing white-space when pasting + Header for a control to toggle whether pasted text should be trimmed of white spaces, or not. + + + Warn when pasting more than 5 KiB + + + Warn when pasting more than 5 KiB + + + Paste behavior + Header for a group of settings related to cleanup and confirmation behavior for incoming pastes. + + + Clipboard behavior + Title of a section that groups settings related to selection, copying, and pasting. + + + Mouse and scrolling + Title of a section that groups settings related to mouse and scroll wheel input. + + + Text selection and editing + Title of a section that groups settings related to text selection and editing. + + + URLs & external actions + Title of a section that groups settings related to URLs and external app actions. + + + Warnings + Title of a section that groups warning-related settings. + + + Window and layout behavior + Title of a section that groups settings related to window sizing, arrangement, and grouping. + + + Use acrylic material in the tab row + Header for a control to toggle whether "acrylic material" is used. "Acrylic material" is a Microsoft-specific term: https://docs.microsoft.com/en-us/windows/apps/design/style/acrylic + + + Use acrylic material in the tab row + Header for a control to toggle whether "acrylic material" is used. "Acrylic material" is a Microsoft-specific term: https://docs.microsoft.com/en-us/windows/apps/design/style/acrylic + + + Always show tabs + Header for a control to toggle if the app should always show the tabs (similar to a website browser). + + + When disabled, the tab bar will appear when a new tab is created. Cannot be disabled while "Hide the title bar" is On. + A description for what the "always show tabs" setting does. Presented near "Globals_AlwaysShowTabs.Header". This setting cannot be disabled while "Globals_ShowTitlebar.Header" is enabled. + + + Always show tabs + Header for a control to toggle if the app should always show the tabs (similar to a website browser). + + + Pane animations + Header for a control to toggle animations on panes. "Enabled" value enables the animations. + + + Pane animations + Header for a control to toggle animations on panes. "Enabled" value enables the animations. + + + Allow acrylic material in unfocused windows + Header for a control to toggle allowing unfocused windows to have an acrylic background. + + + Allow acrylic material in unfocused windows + Header for a control to toggle allowing unfocused windows to have an acrylic background. + + + Hide Terminal in the notification area when it is minimized + Header for a control to toggle whether the terminal should hide itself in the notification area instead of the taskbar when minimized. + + + Hide Terminal in the notification area when it is minimized + Header for a control to toggle whether the terminal should hide itself in the notification area instead of the taskbar when minimized. + + + System integration and notifications + Title of a section that groups settings related to system integration and notifications. + + + Tabs and titlebar + Title of a section that groups settings related to tabs and pane layout. + + + Visual style + Title of a section that groups settings related to the terminal's visual appearance. + + + Window behavior + Title of a section that groups settings related to terminal window behavior. + + + Display a shield in the title bar when Windows Terminal is running as Administrator + Header for a control to toggle displaying a shield in the title bar of the app. "Admin" refers to elevated sessions like "run as Admin" + + + Display a shield in the title bar when running as Administrator + Header for a control to toggle displaying a shield in the title bar of the app. "Admin" refers to elevated sessions like "run as Admin" + + + Show tabs in full screen + Header for a control to toggle if the app should show the tabs when in full screen state. + + + When enabled, the tab bar will be visible when the app is full screen. + A description for what the "show tabs in full screen" setting does. + + + Show tabs in full screen + Header for a control to toggle if the app should show the tabs when in full screen state. + + + Use active terminal title as application title + Header for a control to toggle whether the terminal's title is shown as the application title, or not. + + + When disabled, the title bar will be 'Terminal'. + A description for what the "show title in titlebar" setting does. Presented near "Globals_ShowTitleInTitlebar.Header".{Locked="Windows"} + + + Use active terminal title as application title + Header for a control to toggle whether the terminal's title is shown as the application title, or not. + + + Rendering + Title of a section that groups rendering-related settings. + + + Troubleshooting + Title of a section that groups troubleshooting tools: clearing cached state, resetting to default settings, and enabling debug features. + + + Advanced + Header for the "Advanced" navigator card on the profile page. Navigates to the advanced settings sub-page. + + + Customize the visual appearance of the profile, including colors, fonts, and text styling. + Description shown below the "Appearance" navigator card on the profile page. + + + Appearance + Header for the "Appearance" navigator card on the profile page. Navigates to the appearance sub-page. + + + Browse... + Button label that opens a file picker in a new window. The "..." is standard to mean it will open a new window. + + + Browse... + Button label that opens a file picker in a new window. The "..." is standard to mean it will open a new window. + + + Run this profile as Administrator + Header for a control to toggle whether the profile should always open elevated (in an admin window) + + + If enabled, the profile will open in an Admin terminal window automatically. If the current window is already running as admin, it will open in this window. + A description for what the "elevate" setting does. Presented near "Profile_Elevate". + + + Run as administrator (uses current window if already elevated) + Header for a control to toggle whether the profile should always open elevated (in an admin window) + + + Hide profile from dropdown + Header for a control to toggle whether the profile is shown in a dropdown menu, or not. + + + If enabled, the profile will not appear in the list of profiles. This can be used to hide default profiles and dynamically generated profiles, while leaving them in your settings file. + A description for what the "hidden" setting does. Presented near "Profile_Hidden". + + + Hide profile from dropdown + Header for a control to toggle whether the profile is shown in a dropdown menu, or not. + + + Name + Placeholder text shown inside the empty profile name text box, hinting that the user should enter the profile's name here. + + + Visual/UI Affordance + Title of a section in a profile page that groups visual and UI settings (tab title, icon, tab color, etc.). + + + Browse... + Button label that opens a file picker in a new window. The "..." is standard to mean it will open a new window. + + + Browse... + Button label that opens a file picker in a new window. The "..." is standard to mean it will open a new window. + + + Terminal emulation + Header for the "Terminal Emulation" navigator card on the profile page. Navigates to the terminal emulation sub-page. + + + Configure how the terminal interprets text and control sequences to behave like a traditional command-line terminal + Description shown below the "Terminal Emulation" navigator card on the profile page. + + + {0} profile + Localizable format string used as the section header for a profile (e.g. "PowerShell profile"). {0} is replaced by the profile's name. Reorder the placeholder if your language requires a different word order. + + + Profile defaults + Header used in place of the "{name} profile" header when the page is showing the profile-defaults layer (which has no profile name). +