From 22d94c8b0b5f4ef9499122741ce5542cfecb4179 Mon Sep 17 00:00:00 2001 From: Farheen Shaikh Date: Thu, 19 Jun 2025 14:47:55 -0700 Subject: [PATCH] feat: add MicaAlt visual effect support in settings background --- doc/cascadia/profiles.schema.json | 6 ++++++ src/cascadia/TerminalSettingsEditor/MainPage.cpp | 2 +- .../TerminalSettingsModel/GlobalAppSettings.cpp | 13 +++++++++++++ .../TerminalSettingsModel/GlobalAppSettings.h | 3 +++ 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/doc/cascadia/profiles.schema.json b/doc/cascadia/profiles.schema.json index d60db96aac4..377cb262cf4 100644 --- a/doc/cascadia/profiles.schema.json +++ b/doc/cascadia/profiles.schema.json @@ -2018,6 +2018,12 @@ "type": "boolean", "default": false }, + "useMicaAlt": { + "description": "Enable the MicaAlt visual effect.", + "type": "boolean", + "default": false + }, + "experimental.rainbowFrame": { "description": "When enabled, the frame of the window will cycle through all the colors. Enabling this will override the `frame` and `unfocusedFrame` settings.", "type": "boolean", diff --git a/src/cascadia/TerminalSettingsEditor/MainPage.cpp b/src/cascadia/TerminalSettingsEditor/MainPage.cpp index 098827d9a98..cc3e8d7861e 100644 --- a/src/cascadia/TerminalSettingsEditor/MainPage.cpp +++ b/src/cascadia/TerminalSettingsEditor/MainPage.cpp @@ -981,7 +981,7 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation // that our theme is different than the app's. const bool actuallyUseMica = isMicaAvailable && (appTheme == requestedTheme); - const auto bgKey = (theme.Window() != nullptr && theme.Window().UseMica()) && actuallyUseMica ? + const auto bgKey = (theme.Window() != nullptr && theme.Window().UseMica()) || UseMicaAlt() && actuallyUseMica ? L"SettingsPageMicaBackground" : L"SettingsPageBackground"; diff --git a/src/cascadia/TerminalSettingsModel/GlobalAppSettings.cpp b/src/cascadia/TerminalSettingsModel/GlobalAppSettings.cpp index 55af1703558..c93c6606958 100644 --- a/src/cascadia/TerminalSettingsModel/GlobalAppSettings.cpp +++ b/src/cascadia/TerminalSettingsModel/GlobalAppSettings.cpp @@ -35,6 +35,13 @@ static constexpr std::string_view LegacyConfirmCloseAllTabsKey{ "confirmCloseAll // - // Return Value: // - + +bool _useMicaAlt = false; + +bool GlobalAppSettings::UseMicaAlt() const +{ + return _useMicaAlt; +} void GlobalAppSettings::_FinalizeInheritance() { for (const auto& parent : _parents) @@ -208,6 +215,12 @@ void GlobalAppSettings::LayerJson(const Json::Value& json, const OriginTag origi } } } + +if (json.isMember("useMicaAlt")) + { + JsonUtils::GetValueForKey(json, "useMicaAlt", _useMicaAlt); + } + } void GlobalAppSettings::LayerActionsFrom(const Json::Value& json, const OriginTag origin, const bool withKeybindings) diff --git a/src/cascadia/TerminalSettingsModel/GlobalAppSettings.h b/src/cascadia/TerminalSettingsModel/GlobalAppSettings.h index 59dde1106b3..1f773f721ec 100644 --- a/src/cascadia/TerminalSettingsModel/GlobalAppSettings.h +++ b/src/cascadia/TerminalSettingsModel/GlobalAppSettings.h @@ -26,6 +26,9 @@ Author(s): #include "NewTabMenuEntry.h" #include "RemainingProfilesEntry.h" +bool UseMicaAlt() const; +bool _useMicaAlt = false; + // fwdecl unittest classes namespace SettingsModelUnitTests {