From 215382050e5f7514bb460d3059e78d4b636a47d8 Mon Sep 17 00:00:00 2001 From: Niels Laute Date: Fri, 14 Aug 2026 08:33:58 +0200 Subject: [PATCH] [CmdPal] Settings UX tweaks (#49865) ## Summary of the Pull Request Simplifies the Command Palette settings experience by removing obsolete extension-discovery UI, introducing clearer semantic sections, and reducing repetitive setting copy. - Removes the Store discovery banner from the Installed extensions page now that Gallery is the primary discovery surface in `src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/ExtensionsPage.xaml`. - Uses the existing section-header `TextBlock` pattern to organize General and Personalization without introducing another settings-group control. - Regroups General settings into Activation, App behavior, For developers, and About sections in `src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/GeneralPage.xaml`. - Regroups Personalization settings into Appearance, Layout and positioning, and Interaction sections in `src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/AppearancePage.xaml`. - Moves compact mode, monitor placement, and notification placement to Personalization, while preserving their existing bindings and automation IDs. - Clarifies compact-mode positioning with a horizontal slider and directional description. Screenshot 2026-08-13 135040 Screenshot 2026-08-13 135103 Screenshot 2026-08-13 135251 ## PR Checklist - [x] **Communication:** The settings UX was discussed and iterated with Command Palette contributors. - [x] **Tests:** No automated tests were added because these are settings layout and copy changes; the CmdPal UI project builds successfully. - [x] **Localization:** All end-user-facing strings are stored in `src/modules/cmdpal/Microsoft.CmdPal.UI/Strings/en-us/Resources.resw`. ## Detailed Description of the Pull Request / Additional comments The Installed extensions page no longer promotes the Microsoft Store because extension discovery now lives in Gallery. The search field is promoted to the top of the page and the obsolete Store command and visual resources are removed. General and Personalization now use the section-header `TextBlock` style already established in CmdPal settings. `SettingsExpander` remains reserved for stronger parent-child relationships, such as activation shortcut options and compact-mode positioning. The independent **Keep search text when reopened** and **Select search text when opened** options remain separate toggle cards. Compact mode is now labeled **Open with a compact search box**. Its nested **Vertical search box position** setting uses a horizontal slider without an icon and explains how left/right maps to lower/higher screen placement. ## Validation Steps Performed - Formatted the changed XAML with the repository XamlStyler configuration. - Built `src/modules/cmdpal/Microsoft.CmdPal.UI/Microsoft.CmdPal.UI.csproj` for x64 Debug with `tools/build/build.ps1`. - Launched the freshly staged development package and manually inspected the Extensions, General, and Personalization pages. --------- Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: e1966eaa-1e92-4e8a-a4fa-ce27539e508f Copilot-Session: 120899e5-fc77-425e-918b-644929b65739 --- .../SettingsExtensionsViewModel.cs | 7 - .../Settings/AppearancePage.xaml | 70 ++++++++-- .../Settings/AppearancePage.xaml.cs | 6 + .../Settings/ExtensionsPage.xaml | 104 +-------------- .../Settings/GeneralPage.xaml | 72 +---------- .../Settings/GeneralPage.xaml.cs | 6 - .../Strings/en-us/Resources.resw | 120 +++++------------- 7 files changed, 105 insertions(+), 280 deletions(-) diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/SettingsExtensionsViewModel.cs b/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/SettingsExtensionsViewModel.cs index 7828c77bf1..f476c419ae 100644 --- a/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/SettingsExtensionsViewModel.cs +++ b/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/SettingsExtensionsViewModel.cs @@ -126,13 +126,6 @@ public partial class SettingsExtensionsViewModel : ObservableObject return !string.IsNullOrEmpty(haystack) && haystack.Contains(needle, StringComparison.OrdinalIgnoreCase); } - [RelayCommand] - private void OpenStoreWithExtension(string? query) - { - const string extensionsAssocUri = "ms-windows-store://assoc/?Tags=AppExtension-com.microsoft.commandpalette"; - ShellHelpers.OpenInShell(extensionsAssocUri); - } - private void ReloadExtensions() { ShowManualReloadOverlay = true; diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/AppearancePage.xaml b/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/AppearancePage.xaml index fffda00425..7a9e7c433e 100644 --- a/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/AppearancePage.xaml +++ b/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/AppearancePage.xaml @@ -22,6 +22,7 @@ HorizontalAlignment="Stretch" Spacing="{StaticResource SettingsCardSpacing}"> + - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -306,14 +364,6 @@ - - - - - - - - diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/AppearancePage.xaml.cs b/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/AppearancePage.xaml.cs index 00343a4de2..73d5dda06e 100644 --- a/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/AppearancePage.xaml.cs +++ b/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/AppearancePage.xaml.cs @@ -90,6 +90,12 @@ public sealed partial class AppearancePage : Page }); } + private void OpenSystemSettings_Click(object sender, RoutedEventArgs e) + { + // Hyperlink with NavigateUri won't work for this URI, so we have to do it manually. + _ = global::Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings:notifications")); + } + private void OpenCommandPalette_Click(object sender, RoutedEventArgs e) { WeakReferenceMessenger.Default.Send(new(string.Empty, HWND.Null)); diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/ExtensionsPage.xaml b/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/ExtensionsPage.xaml index c8b11a8858..61d3ea6684 100644 --- a/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/ExtensionsPage.xaml +++ b/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/ExtensionsPage.xaml @@ -16,40 +16,6 @@ - - - - - - - - ms-appx:///Assets/StoreLogo.dark.svg - - - - - - - - - - - - - - - - ms-appx:///Assets/StoreLogo.light.svg - - - - - ms-appx:///Assets/StoreLogo.dark.svg - - - @@ -66,56 +32,8 @@ MaxWidth="1000" HorizontalAlignment="Stretch" Spacing="{StaticResource SettingsCardSpacing}"> - - - - - - - - - - - - - - - - - - - - - + @@ -264,25 +182,5 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/GeneralPage.xaml b/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/GeneralPage.xaml index 3529d32dbb..affb865a17 100644 --- a/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/GeneralPage.xaml +++ b/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/GeneralPage.xaml @@ -43,7 +43,7 @@ FontWeight="SemiBold" NavigateUri="https://aka.ms/cmdpal" /> - + - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -178,16 +120,14 @@ - - + - - + Command Palette settings A section header for app-wide settings. "Command Palette" is the name of the app. - + About A section header for information about the app @@ -277,11 +277,7 @@ Right-click to remove the key combination, thereby deactivating the shortcut.Type here to search... - Preferred monitor position - as in Show Command Palette on primary monitor - - - If multiple monitors are in use, Command Palette can be launched on the desired monitor + Open Command Palette on as in Show Command Palette on primary monitor @@ -297,12 +293,8 @@ Right-click to remove the key combination, thereby deactivating the shortcut.Don't move - Position of on-screen indicators - Kept in sync with the Windows Settings card of the same name - - - Confirmation messages and other indicators will appear in this location - Mirrors the Windows Settings card "Volume, brightness and other controls will appear in this location" + On-screen indicator position + Position where Command Palette confirmation messages and other indicators appear Change position in Windows Settings @@ -373,16 +365,13 @@ Right-click to remove the key combination, thereby deactivating the shortcut.These commands are built-in to the Windows Command Palette. - Activation key - - - This key will open the Command Palette. + Activation shortcut Use low-level keyboard hook - Try this if there are issues with the shortcut (Command Palette might not get focus when triggered from an elevated window) + Use this if the shortcut cannot focus Command Palette from an elevated app Ignore shortcut in fullscreen mode @@ -394,13 +383,10 @@ Right-click to remove the key combination, thereby deactivating the shortcut.Ignore shortcut when the system heuristically detects fullscreen - Windows may detect that a fullscreen application is running or Presentation Settings are applied. Some applications (such as NVIDIA overlay) can trigger this incorrectly, preventing the shortcut from working + Windows may report fullscreen or presentation mode incorrectly; overlays such as NVIDIA can trigger it - Allow breakthrough with rapid shortcut presses - - - Press the activation shortcut 3 times within 2 seconds to bypass the fullscreen or busy state guard + Press the shortcut 3 times within 2 seconds to override suppression Your activation shortcut might not work right now because {0}. @@ -418,46 +404,28 @@ Right-click to remove the key combination, thereby deactivating the shortcut.Likely caused by: {0}. - Highlight search on activate - - - Selects the previous search text at launch + Select search text when opened - Compact mode - - - Shrinks the palette to just the search box until you start typing + Open with a compact search box - Search box position + Vertical search box position - Relative height from the bottom of the screen where the collapsed search box is centered. Only applies in compact mode. + Move left to place it lower on the screen, or right to place it higher - Keep previous query - - - Preserves the last search text when Command Palette is reopened + Keep search text when reopened - Show app details - - - Controls if app details are automatically expanded or not. + Automatically expand app details - Backspace goes back - - - If the search field is empty, backspace returns to the previous page + Go back with Backspace when search is empty - Single-click activation - - - Choose how to interact with list items: single-click to activate, or single-click to select and double-click to activate + Activate list items with a single click Windows Command Palette @@ -492,12 +460,15 @@ Right-click to remove the key combination, thereby deactivating the shortcut. Open Command Palette settings, shortcut Control plus comma - + Activation Behavior + + App behavior + Appearance @@ -508,22 +479,13 @@ Right-click to remove the key combination, thereby deactivating the shortcut.Search commands... - Show system tray icon - - - Choose if Command Palette is visible in the system tray + Show Command Palette in system tray Quit Command Palette with Alt+F4 - - If this setting is on, pressing Alt+F4 will quit Command Palette - - Disable animations - - - Disable animations when switching between pages + Disable page transition animations Enable Dock @@ -609,9 +571,9 @@ Right-click to remove the key combination, thereby deactivating the shortcut.Enable external reload - Trigger reload of the extension externally with the x-cmdpal://reload command + Allow reloads through the x-cmdpal://reload protocol - + For developers @@ -641,24 +603,6 @@ Right-click to remove the key combination, thereby deactivating the shortcut. Reloading extensions.. - - Discover more extensions - - - Find more extensions on the Microsoft Store or WinGet. - - - Learn how to create your own extensions - - - Find extensions on the Microsoft Store - - - Microsoft Store - - - Microsoft Store - Search extensions @@ -696,10 +640,7 @@ Right-click to remove the key combination, thereby deactivating the shortcut.3 minutes - Automatically return home - - - Automatically returns to home page after a period of inactivity when Command Palette is closed + Return home after closing Personalization @@ -710,9 +651,15 @@ Right-click to remove the key combination, thereby deactivating the shortcut. Select which app theme to display - + Appearance + + Layout and positioning + + + Interaction + Use system settings @@ -791,9 +738,6 @@ Right-click to remove the key combination, thereby deactivating the shortcut. Escape key behavior - - Choose how Escape key behaves - Settings