diff --git a/src/cascadia/TerminalApp/TerminalPage.cpp b/src/cascadia/TerminalApp/TerminalPage.cpp index 348619afc..42c771a22 100644 --- a/src/cascadia/TerminalApp/TerminalPage.cpp +++ b/src/cascadia/TerminalApp/TerminalPage.cpp @@ -989,12 +989,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 9d2c71439..7069d448b 100644 --- a/src/cascadia/TerminalSettingsModel/ActionAndArgs.cpp +++ b/src/cascadia/TerminalSettingsModel/ActionAndArgs.cpp @@ -21,7 +21,7 @@ static constexpr std::string_view MoveFocusKey{ "moveFocus" }; static constexpr std::string_view NewTabKey{ "newTab" }; 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::NewTab, RS_(L"NewTabCommandKey") }, { 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 919f1927f..2912401ac 100644 --- a/src/cascadia/TerminalSettingsModel/ActionArgs.cpp +++ b/src/cascadia/TerminalSettingsModel/ActionArgs.cpp @@ -341,10 +341,11 @@ namespace winrt::Microsoft::Terminal::Settings::Model::implementation return RS_(L"OpenDefaultSettingsCommandKey"); case SettingsTarget::AllFiles: return RS_(L"OpenBothSettingsFilesCommandKey"); - case SettingsTarget::SettingsUI: - return RS_(L"OpenSettingsUICommandKey"); - default: + case SettingsTarget::SettingsFile: return RS_(L"OpenSettingsCommandKey"); + case SettingsTarget::SettingsUI: + default: + return RS_(L"OpenSettingsUICommandKey"); } } diff --git a/src/cascadia/TerminalSettingsModel/defaults.json b/src/cascadia/TerminalSettingsModel/defaults.json index 0d0f5f772..3bc56c560 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" } },