From 27c992b9f660a69f24dea3217094e8db9fde874d Mon Sep 17 00:00:00 2001 From: Carlos Zamora Date: Fri, 19 Feb 2021 14:07:35 -0800 Subject: [PATCH 1/3] Make Settings UI the default experience --- src/cascadia/TerminalApp/TerminalPage.cpp | 32 ++++++++++++++++--- .../TerminalSettingsModel/ActionAndArgs.cpp | 4 +-- .../TerminalSettingsModel/ActionArgs.cpp | 5 +-- .../TerminalSettingsModel/ActionArgs.h | 2 +- .../TerminalSettingsModel/defaults.json | 3 +- 5 files changed, 35 insertions(+), 11 deletions(-) diff --git a/src/cascadia/TerminalApp/TerminalPage.cpp b/src/cascadia/TerminalApp/TerminalPage.cpp index b96a0e7cc09..8be26b292a8 100644 --- a/src/cascadia/TerminalApp/TerminalPage.cpp +++ b/src/cascadia/TerminalApp/TerminalPage.cpp @@ -983,12 +983,34 @@ 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 && altPressed) + { + target = SettingsTarget::AllFiles; + } + else 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/ActionArgs.h b/src/cascadia/TerminalSettingsModel/ActionArgs.h index 31898031cdc..70c98726f30 100644 --- a/src/cascadia/TerminalSettingsModel/ActionArgs.h +++ b/src/cascadia/TerminalSettingsModel/ActionArgs.h @@ -444,7 +444,7 @@ namespace winrt::Microsoft::Terminal::Settings::Model::implementation OpenSettingsArgs() = default; OpenSettingsArgs(const SettingsTarget& target) : _Target{ target } {} - GETSET_PROPERTY(SettingsTarget, Target, SettingsTarget::SettingsFile); + GETSET_PROPERTY(SettingsTarget, Target, SettingsTarget::SettingsUI); static constexpr std::string_view TargetKey{ "target" }; 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" } }, From 94e66a350911d213855e5c482c8c5e22c75c52f4 Mon Sep 17 00:00:00 2001 From: Carlos Zamora Date: Fri, 19 Feb 2021 14:43:11 -0800 Subject: [PATCH 2/3] prioritize settings.json when alt&shift pressed --- src/cascadia/TerminalApp/TerminalPage.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/cascadia/TerminalApp/TerminalPage.cpp b/src/cascadia/TerminalApp/TerminalPage.cpp index 8be26b292a8..83db30f94e6 100644 --- a/src/cascadia/TerminalApp/TerminalPage.cpp +++ b/src/cascadia/TerminalApp/TerminalPage.cpp @@ -999,11 +999,7 @@ namespace winrt::TerminalApp::implementation WI_IsFlagSet(rShiftState, CoreVirtualKeyStates::Down) }; auto target{ SettingsTarget::SettingsUI }; - if (shiftPressed && altPressed) - { - target = SettingsTarget::AllFiles; - } - else if (shiftPressed) + if (shiftPressed) { target = SettingsTarget::SettingsFile; } From 41dfb557fc189e49499cf06c20476a4553a9a530 Mon Sep 17 00:00:00 2001 From: Carlos Zamora Date: Tue, 23 Feb 2021 15:54:18 -0800 Subject: [PATCH 3/3] keybinding arg default shouldn't break people --- src/cascadia/TerminalSettingsModel/ActionArgs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cascadia/TerminalSettingsModel/ActionArgs.h b/src/cascadia/TerminalSettingsModel/ActionArgs.h index 70c98726f30..31898031cdc 100644 --- a/src/cascadia/TerminalSettingsModel/ActionArgs.h +++ b/src/cascadia/TerminalSettingsModel/ActionArgs.h @@ -444,7 +444,7 @@ namespace winrt::Microsoft::Terminal::Settings::Model::implementation OpenSettingsArgs() = default; OpenSettingsArgs(const SettingsTarget& target) : _Target{ target } {} - GETSET_PROPERTY(SettingsTarget, Target, SettingsTarget::SettingsUI); + GETSET_PROPERTY(SettingsTarget, Target, SettingsTarget::SettingsFile); static constexpr std::string_view TargetKey{ "target" };