diff --git a/src/cascadia/TerminalApp/TerminalPage.cpp b/src/cascadia/TerminalApp/TerminalPage.cpp index b96a0e7cc09..83db30f94e6 100644 --- a/src/cascadia/TerminalApp/TerminalPage.cpp +++ b/src/cascadia/TerminalApp/TerminalPage.cpp @@ -983,12 +983,30 @@ namespace winrt::TerminalApp::implementation const RoutedEventArgs&) { const CoreWindow window = CoreWindow::GetForCurrentThread(); - const auto rAltState = window.GetKeyState(VirtualKey::RightMenu); - const auto lAltState = window.GetKeyState(VirtualKey::LeftMenu); - const bool altPressed = WI_IsFlagSet(lAltState, CoreVirtualKeyStates::Down) || - WI_IsFlagSet(rAltState, CoreVirtualKeyStates::Down); - const auto target = altPressed ? SettingsTarget::DefaultsFile : SettingsTarget::SettingsFile; + // check alt state + const auto rAltState{ window.GetKeyState(VirtualKey::RightMenu) }; + const auto lAltState{ window.GetKeyState(VirtualKey::LeftMenu) }; + const bool altPressed{ WI_IsFlagSet(lAltState, CoreVirtualKeyStates::Down) || + WI_IsFlagSet(rAltState, CoreVirtualKeyStates::Down) }; + + // check shift state + const auto shiftState{ window.GetKeyState(VirtualKey::Shift) }; + const auto lShiftState{ window.GetKeyState(VirtualKey::LeftShift) }; + const auto rShiftState{ window.GetKeyState(VirtualKey::RightShift) }; + const auto shiftPressed{ WI_IsFlagSet(shiftState, CoreVirtualKeyStates::Down) || + WI_IsFlagSet(lShiftState, CoreVirtualKeyStates::Down) || + WI_IsFlagSet(rShiftState, CoreVirtualKeyStates::Down) }; + + auto target{ SettingsTarget::SettingsUI }; + if (shiftPressed) + { + target = SettingsTarget::SettingsFile; + } + else if (altPressed) + { + target = SettingsTarget::DefaultsFile; + } _LaunchSettings(target); } diff --git a/src/cascadia/TerminalSettingsModel/ActionAndArgs.cpp b/src/cascadia/TerminalSettingsModel/ActionAndArgs.cpp index 501c43db175..7ce8a6b1ab0 100644 --- a/src/cascadia/TerminalSettingsModel/ActionAndArgs.cpp +++ b/src/cascadia/TerminalSettingsModel/ActionAndArgs.cpp @@ -22,7 +22,7 @@ static constexpr std::string_view NewTabKey{ "newTab" }; static constexpr std::string_view NewWindowKey{ "newWindow" }; static constexpr std::string_view NextTabKey{ "nextTab" }; static constexpr std::string_view OpenNewTabDropdownKey{ "openNewTabDropdown" }; -static constexpr std::string_view OpenSettingsKey{ "openSettings" }; // TODO GH#2557: Add args for OpenSettings +static constexpr std::string_view OpenSettingsKey{ "openSettings" }; static constexpr std::string_view OpenTabColorPickerKey{ "openTabColorPicker" }; static constexpr std::string_view PasteTextKey{ "paste" }; static constexpr std::string_view PrevTabKey{ "prevTab" }; @@ -291,7 +291,7 @@ namespace winrt::Microsoft::Terminal::Settings::Model::implementation { ShortcutAction::NewWindow, RS_(L"NewWindowCommandKey") }, { ShortcutAction::NextTab, RS_(L"NextTabCommandKey") }, { ShortcutAction::OpenNewTabDropdown, RS_(L"OpenNewTabDropdownCommandKey") }, - { ShortcutAction::OpenSettings, RS_(L"OpenSettingsCommandKey") }, + { ShortcutAction::OpenSettings, RS_(L"OpenSettingsUICommandKey") }, { ShortcutAction::OpenTabColorPicker, RS_(L"OpenTabColorPickerCommandKey") }, { ShortcutAction::PasteText, RS_(L"PasteTextCommandKey") }, { ShortcutAction::PrevTab, RS_(L"PrevTabCommandKey") }, diff --git a/src/cascadia/TerminalSettingsModel/ActionArgs.cpp b/src/cascadia/TerminalSettingsModel/ActionArgs.cpp index 218368125d5..481f376623d 100644 --- a/src/cascadia/TerminalSettingsModel/ActionArgs.cpp +++ b/src/cascadia/TerminalSettingsModel/ActionArgs.cpp @@ -293,10 +293,11 @@ namespace winrt::Microsoft::Terminal::Settings::Model::implementation return RS_(L"OpenDefaultSettingsCommandKey"); case SettingsTarget::AllFiles: return RS_(L"OpenBothSettingsFilesCommandKey"); + case SettingsTarget::SettingsFile: + return RS_(L"OpenSettingsCommandKey"); case SettingsTarget::SettingsUI: - return RS_(L"OpenSettingsUICommandKey"); default: - return RS_(L"OpenSettingsCommandKey"); + return RS_(L"OpenSettingsUICommandKey"); } } diff --git a/src/cascadia/TerminalSettingsModel/defaults.json b/src/cascadia/TerminalSettingsModel/defaults.json index b3b4888ec06..a1c2a85dd62 100644 --- a/src/cascadia/TerminalSettingsModel/defaults.json +++ b/src/cascadia/TerminalSettingsModel/defaults.json @@ -284,7 +284,8 @@ { "command": "toggleFocusMode" }, { "command": "toggleAlwaysOnTop" }, { "command": "openNewTabDropdown", "keys": "ctrl+shift+space" }, - { "command": "openSettings", "keys": "ctrl+," }, + { "command": { "action": "openSettings", "target": "settingsUI" }, "keys": "ctrl+," }, + { "command": { "action": "openSettings", "target": "settingsFile" }, "keys": "ctrl+shift+," }, { "command": { "action": "openSettings", "target": "defaultsFile" }, "keys": "ctrl+alt+," }, { "command": "find", "keys": "ctrl+shift+f" }, { "command": { "action": "findMatch", "direction": "next" } },