diff --git a/src/cascadia/TerminalSettingsEditor/Appearances.cpp b/src/cascadia/TerminalSettingsEditor/Appearances.cpp
index a9add91b5c4..f22c11fbd26 100644
--- a/src/cascadia/TerminalSettingsEditor/Appearances.cpp
+++ b/src/cascadia/TerminalSettingsEditor/Appearances.cpp
@@ -136,6 +136,11 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
INITIALIZE_BINDABLE_ENUM_SETTING(IntenseTextStyle, IntenseTextStyle, winrt::Microsoft::Terminal::Settings::Model::IntenseStyle, L"Appearance_IntenseTextStyle", L"Content");
}
+ bool Appearances::ShowIndistinguishableColorsItem() const noexcept
+ {
+ return Feature_AdjustIndistinguishableText::IsEnabled();
+ }
+
// Method Description:
// - Searches through our list of monospace fonts to determine if the settings model's current font face is a monospace font
bool Appearances::UsingMonospaceFont() const noexcept
diff --git a/src/cascadia/TerminalSettingsEditor/Appearances.h b/src/cascadia/TerminalSettingsEditor/Appearances.h
index cadbfbd5e5f..d8e5afa9965 100644
--- a/src/cascadia/TerminalSettingsEditor/Appearances.h
+++ b/src/cascadia/TerminalSettingsEditor/Appearances.h
@@ -106,6 +106,8 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
public:
Appearances();
+ bool ShowIndistinguishableColorsItem() const noexcept;
+
// font face
Windows::Foundation::IInspectable CurrentFontFace() const;
diff --git a/src/cascadia/TerminalSettingsEditor/Appearances.idl b/src/cascadia/TerminalSettingsEditor/Appearances.idl
index 33e4567fda2..c7bd4706014 100644
--- a/src/cascadia/TerminalSettingsEditor/Appearances.idl
+++ b/src/cascadia/TerminalSettingsEditor/Appearances.idl
@@ -56,6 +56,8 @@ namespace Microsoft.Terminal.Settings.Editor
ProfileViewModel SourceProfile;
static Windows.UI.Xaml.DependencyProperty AppearanceProperty { get; };
+ Boolean ShowIndistinguishableColorsItem { get; };
+
Boolean UsingMonospaceFont { get; };
Boolean ShowAllFonts;
diff --git a/src/cascadia/TerminalSettingsEditor/Appearances.xaml b/src/cascadia/TerminalSettingsEditor/Appearances.xaml
index 497b7349a2a..b85a38e135c 100644
--- a/src/cascadia/TerminalSettingsEditor/Appearances.xaml
+++ b/src/cascadia/TerminalSettingsEditor/Appearances.xaml
@@ -158,7 +158,8 @@
+ SettingOverrideSource="{x:Bind Appearance.AdjustIndistinguishableColorsOverrideSource, Mode=OneWay}"
+ Visibility="{x:Bind ShowIndistinguishableColorsItem}">
diff --git a/src/features.xml b/src/features.xml
index f2bebd65950..31642a0adfd 100644
--- a/src/features.xml
+++ b/src/features.xml
@@ -82,4 +82,10 @@
WindowsInbox
+
+
+ Feature_AdjustIndistinguishableText
+ If enabled, the foreground color will, when necessary, be automatically adjusted to make it more visible.
+ AlwaysDisabled
+
diff --git a/src/renderer/base/RenderSettings.cpp b/src/renderer/base/RenderSettings.cpp
index 4b5a5f18769..0ad8f95eaa3 100644
--- a/src/renderer/base/RenderSettings.cpp
+++ b/src/renderer/base/RenderSettings.cpp
@@ -186,7 +186,8 @@ std::pair RenderSettings::GetAttributeColors(const TextAttri
// We want to nudge the foreground color to make it more perceivable only for the
// default color pairs within the color table
- if (GetRenderMode(Mode::DistinguishableColors) &&
+ if (Feature_AdjustIndistinguishableText::IsEnabled() &&
+ GetRenderMode(Mode::DistinguishableColors) &&
!dimFg &&
(fgTextColor.IsDefault() || fgTextColor.IsLegacy()) &&
(bgTextColor.IsDefault() || bgTextColor.IsLegacy()))