[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.


<img width="941" height="449" alt="Screenshot 2026-08-13 135040"
src="https://github.com/user-attachments/assets/01a53ab1-302b-4ce1-8537-0cc96aca459f"
/>

<img width="941" height="754" alt="Screenshot 2026-08-13 135103"
src="https://github.com/user-attachments/assets/2bae516c-75d3-4504-84e7-070e6b654281"
/>

<img width="710" height="719" alt="Screenshot 2026-08-13 135251"
src="https://github.com/user-attachments/assets/9aad14bb-9089-4cf6-9d7f-674171a22e9c"
/>

## 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
This commit is contained in:
Niels Laute
2026-08-14 08:33:58 +02:00
committed by GitHub
parent ae416c045a
commit 215382050e
7 changed files with 105 additions and 280 deletions

View File

@@ -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;

View File

@@ -22,6 +22,7 @@
HorizontalAlignment="Stretch"
Spacing="{StaticResource SettingsCardSpacing}">
<TextBlock x:Uid="Settings_AppearancePage_AppearanceSettingsHeader" Style="{StaticResource SettingsSectionHeaderTextBlockStyle}" />
<StackPanel
Margin="0,0,0,16"
HorizontalAlignment="Left"
@@ -283,9 +284,66 @@
</controls:SettingsExpander.Items>
</controls:SettingsExpander>
<!-- 'Behavior' section -->
<controls:SettingsCard x:Uid="Settings_GeneralPage_DisableAnimations_SettingsCard" HeaderIcon="{ui:FontIcon Glyph=&#xE945;}">
<ToggleSwitch AutomationProperties.AutomationId="CmdPal_AppearancePage_DisableAnimations" IsOn="{x:Bind ViewModel.DisableAnimations, Mode=TwoWay}" />
</controls:SettingsCard>
<TextBlock x:Uid="BehaviorSettingsHeader" Style="{StaticResource SettingsSectionHeaderTextBlockStyle}" />
<TextBlock x:Uid="Settings_AppearancePage_LayoutSettingsHeader" Style="{StaticResource SettingsSectionHeaderTextBlockStyle}" />
<controls:SettingsExpander x:Uid="Settings_GeneralPage_CompactMode_SettingsCard" HeaderIcon="{ui:FontIcon Glyph=&#xE73F;}">
<ToggleSwitch AutomationProperties.AutomationId="CmdPal_GeneralPage_CompactMode" IsOn="{x:Bind ViewModel.CompactMode, Mode=TwoWay}" />
<controls:SettingsExpander.Items>
<controls:SettingsCard x:Uid="Settings_GeneralPage_CompactCenterHeight_SettingsCard" IsEnabled="{x:Bind ViewModel.CompactMode, Mode=OneWay}">
<Slider
MinWidth="{StaticResource SettingActionControlMinWidth}"
AutomationProperties.AutomationId="CmdPal_GeneralPage_CompactCenterHeight"
Maximum="100"
Minimum="0"
Orientation="Horizontal"
StepFrequency="5"
TickFrequency="25"
TickPlacement="Outside"
Value="{x:Bind ViewModel.CompactCenterHeightPercentage, Mode=TwoWay}" />
</controls:SettingsCard>
</controls:SettingsExpander.Items>
</controls:SettingsExpander>
<controls:SettingsCard x:Uid="Run_PositionHeader" HeaderIcon="{ui:FontIcon Glyph=&#xe78b;}">
<ComboBox
MinWidth="{StaticResource SettingActionControlMinWidth}"
AutomationProperties.AutomationId="CmdPal_GeneralPage_MonitorPosition"
SelectedIndex="{x:Bind ViewModel.MonitorPositionIndex, Mode=TwoWay}">
<ComboBoxItem x:Uid="Run_Radio_Position_Cursor" />
<ComboBoxItem x:Uid="Run_Radio_Position_Primary_Monitor" />
<ComboBoxItem x:Uid="Run_Radio_Position_Focus" />
<ComboBoxItem x:Uid="Run_Radio_Position_In_Place" />
<ComboBoxItem x:Uid="Run_Radio_Position_LastPosition" />
</ComboBox>
</controls:SettingsCard>
<controls:SettingsCard x:Uid="Settings_GeneralPage_ToastPosition_SettingsCard" HeaderIcon="{ui:FontIcon Glyph=&#xE75A;}">
<controls:SettingsCard.Description>
<HyperlinkButton
x:Uid="Settings_GeneralPage_ToastPosition_OpenSystemSettings_Hyperlink"
Padding="0"
AutomationProperties.AutomationId="CmdPal_GeneralPage_ToastPosition_OpenSystemSettings"
Click="OpenSystemSettings_Click"
Visibility="{x:Bind ViewModel.IsToastPositionFromSystemSettings, Mode=OneWay}" />
</controls:SettingsCard.Description>
<ComboBox
MinWidth="{StaticResource SettingActionControlMinWidth}"
AutomationProperties.AutomationId="CmdPal_GeneralPage_ToastPosition"
SelectedIndex="{x:Bind ViewModel.ToastPositionIndex, Mode=TwoWay}">
<ComboBoxItem x:Uid="Settings_GeneralPage_ToastPosition_Item_UseSystemSettings" />
<ComboBoxItem x:Uid="Settings_GeneralPage_ToastPosition_Item_BottomCenter" />
<ComboBoxItem x:Uid="Settings_GeneralPage_ToastPosition_Item_TopLeft" />
<ComboBoxItem x:Uid="Settings_GeneralPage_ToastPosition_Item_TopCenter" />
</ComboBox>
</controls:SettingsCard>
<TextBlock x:Uid="Settings_AppearancePage_InteractionSettingsHeader" Style="{StaticResource SettingsSectionHeaderTextBlockStyle}" />
<controls:SettingsCard x:Uid="Settings_GeneralPage_SingleClickActivation_SettingsCard" HeaderIcon="{ui:FontIcon Glyph=&#xE962;}">
<ToggleSwitch AutomationProperties.AutomationId="CmdPal_AppearancePage_SingleClickActivates" IsOn="{x:Bind ViewModel.SingleClickActivates, Mode=TwoWay}" />
</controls:SettingsCard>
<controls:SettingsCard x:Uid="Settings_GeneralPage_ShowAppDetails_SettingsCard" HeaderIcon="{ui:FontIcon Glyph=&#xE8A0;}">
<ToggleSwitch AutomationProperties.AutomationId="CmdPal_AppearancePage_ShowAppDetails" IsOn="{x:Bind ViewModel.ShowAppDetails, Mode=TwoWay}" />
@@ -306,14 +364,6 @@
<ComboBoxItem x:Uid="Settings_GeneralPage_EscapeKeyBehavior_Option_AlwaysHide" />
</ComboBox>
</controls:SettingsCard>
<controls:SettingsCard x:Uid="Settings_GeneralPage_SingleClickActivation_SettingsCard" HeaderIcon="{ui:FontIcon Glyph=&#xE962;}">
<ToggleSwitch AutomationProperties.AutomationId="CmdPal_AppearancePage_SingleClickActivates" IsOn="{x:Bind ViewModel.SingleClickActivates, Mode=TwoWay}" />
</controls:SettingsCard>
<controls:SettingsCard x:Uid="Settings_GeneralPage_DisableAnimations_SettingsCard" HeaderIcon="{ui:FontIcon Glyph=&#xE945;}">
<ToggleSwitch AutomationProperties.AutomationId="CmdPal_AppearancePage_DisableAnimations" IsOn="{x:Bind ViewModel.DisableAnimations, Mode=TwoWay}" />
</controls:SettingsCard>
</StackPanel>
</Grid>
</ScrollViewer>

View File

@@ -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<HotkeySummonMessage>(new(string.Empty, HWND.Null));

View File

@@ -16,40 +16,6 @@
<Page.Resources>
<ResourceDictionary>
<ResourceDictionary.ThemeDictionaries>
<!-- ControlFillColorQuarternaryBrush does not exist (yet) in WinUI, only in Windows Visual Library (Figma) -->
<ResourceDictionary x:Key="Default">
<LinearGradientBrush x:Key="CardGradient2Brush" StartPoint="0,0" EndPoint="0.5, 1">
<GradientStop Offset="0" Color="#38C8AEC4" />
<GradientStop Offset="1" Color="#383286EE" />
</LinearGradientBrush>
<ImageSource x:Key="StoreLogo">ms-appx:///Assets/StoreLogo.dark.svg</ImageSource>
</ResourceDictionary>
<ResourceDictionary x:Key="Light">
<LinearGradientBrush x:Key="CardGradient2Brush" StartPoint="0,0" EndPoint="1, 1">
<!--<GradientStop Offset="0" Color="#E6F0FC" />
<GradientStop Offset="0.4" Color="#E6F0FC" />
<GradientStop Offset="1" Color="#F0F0F7" />-->
<GradientStop Offset="0.0" Color="#FFF6F9FF" />
<!-- Light cool white -->
<GradientStop Offset="0.4" Color="#FFEFF5FF" />
<!-- Hinted lavender/blue -->
<GradientStop Offset="0.7" Color="#FFF7FAFD" />
<!-- Very soft neutral white -->
<GradientStop Offset="1.0" Color="#FFF5F8FA" />
<!-- Slight bluish-gray tint -->
<!-- Faint peach glow -->
<!-- Soft peach -->
</LinearGradientBrush>
<ImageSource x:Key="StoreLogo">ms-appx:///Assets/StoreLogo.light.svg</ImageSource>
</ResourceDictionary>
<ResourceDictionary x:Key="HighContrast">
<SolidColorBrush x:Key="CardGradient2Brush" Color="Transparent" />
<SolidColorBrush x:Key="CardGradient1Brush" Color="Transparent" />
<ImageSource x:Key="StoreLogo">ms-appx:///Assets/StoreLogo.dark.svg</ImageSource>
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
<converters:BoolNegationConverter x:Key="InvertedBoolConverter" />
<converters:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter" />
</ResourceDictionary>
</Page.Resources>
@@ -66,56 +32,8 @@
MaxWidth="1000"
HorizontalAlignment="Stretch"
Spacing="{StaticResource SettingsCardSpacing}">
<!-- Banner -->
<Grid
Padding="16"
Background="{ThemeResource CardGradient2Brush}"
BorderBrush="{ThemeResource CardStrokeColorDefaultBrush}"
BorderThickness="1"
CornerRadius="8">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<StackPanel x:Name="BannerDescriptionPanel" Orientation="Vertical">
<TextBlock x:Uid="Settings_ExtensionsPage_Banner_Header" FontWeight="SemiBold" />
<TextBlock
x:Uid="Settings_ExtensionsPage_Banner_Description"
Grid.Row="1"
MaxWidth="520"
HorizontalAlignment="Left"
TextWrapping="Wrap" />
<HyperlinkButton
x:Uid="Settings_ExtensionsPage_Banner_Hyperlink"
Padding="0"
AutomationProperties.AutomationId="CmdPal_ExtensionsPage_LearnMore"
NavigateUri="https://aka.ms/building-cmdpal-extensions" />
</StackPanel>
<StackPanel
x:Name="ButtonPanel"
Grid.Column="1"
Orientation="Horizontal"
Spacing="8">
<Button
x:Uid="Settings_ExtensionsPage_FindExtensions_MicrosoftStore"
AutomationProperties.AutomationId="CmdPal_ExtensionsPage_OpenMicrosoftStore"
Command="{x:Bind viewModel.Extensions.OpenStoreWithExtensionCommand}">
<StackPanel Orientation="Horizontal" Spacing="8">
<Viewbox Width="16">
<Image AutomationProperties.AccessibilityView="Raw" Source="{ThemeResource StoreLogo}" />
</Viewbox>
<TextBlock x:Uid="Settings_ExtensionsPage_FindExtensions_MicrosoftStore_Text" />
</StackPanel>
</Button>
</StackPanel>
</Grid>
<!-- Search -->
<Grid Padding="0,24,0,8" ColumnSpacing="8">
<Grid Padding="0,0,0,8" ColumnSpacing="8">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" MaxWidth="320" />
<ColumnDefinition Width="*" />
@@ -264,25 +182,5 @@
</Grid>
</ScrollViewer>
<cpcontrols:FallbackRankerDialog x:Name="FallbackRankerDialog" />
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="LayoutVisualStates">
<VisualState x:Name="WideLayout">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="720" />
</VisualState.StateTriggers>
</VisualState>
<VisualState x:Name="NarrowLayout">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="0" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="ButtonPanel.(Grid.Row)" Value="1" />
<Setter Target="BannerDescriptionPanel.(Grid.ColumnSpan)" Value="2" />
<Setter Target="ButtonPanel.(Grid.Column)" Value="0" />
<Setter Target="ButtonPanel.Margin" Value="0,12,0,0" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Grid>
</Page>

View File

@@ -43,7 +43,7 @@
FontWeight="SemiBold"
NavigateUri="https://aka.ms/cmdpal" />
<TextBlock x:Uid="ActivationSettingsHeader" Style="{StaticResource SettingsSectionHeaderTextBlockStyle}" />
<TextBlock x:Uid="Settings_GeneralPage_ActivationSettingsHeader" Style="{StaticResource SettingsSectionHeaderTextBlockStyle}" />
<controls:SettingsExpander
x:Uid="Settings_GeneralPage_ActivationKey_SettingsExpander"
AutomationProperties.AutomationId="CmdPal_GeneralPage_ActivationKey"
@@ -100,74 +100,16 @@
<ComboBoxItem x:Uid="Settings_GeneralPage_AutoGoHome_Item_After180Seconds" />
</ComboBox>
</controls:SettingsCard>
<controls:SettingsCard x:Uid="Settings_GeneralPage_HighlightSearch_SettingsCard" HeaderIcon="{ui:FontIcon Glyph=&#xE933;}">
<ToggleSwitch AutomationProperties.AutomationId="CmdPal_GeneralPage_HighlightSearch" IsOn="{x:Bind viewModel.HighlightSearchOnActivate, Mode=TwoWay}" />
</controls:SettingsCard>
<controls:SettingsCard x:Uid="Settings_GeneralPage_KeepPreviousQuery_SettingsCard" HeaderIcon="{ui:FontIcon Glyph=&#xE81C;}">
<ToggleSwitch AutomationProperties.AutomationId="CmdPal_GeneralPage_KeepPreviousQuery" IsOn="{x:Bind viewModel.KeepPreviousQuery, Mode=TwoWay}" />
</controls:SettingsCard>
<controls:SettingsCard x:Uid="Run_PositionHeader" HeaderIcon="{ui:FontIcon Glyph=&#xe78b;}">
<ComboBox
MinWidth="{StaticResource SettingActionControlMinWidth}"
AutomationProperties.AutomationId="CmdPal_GeneralPage_MonitorPosition"
SelectedIndex="{x:Bind viewModel.MonitorPositionIndex, Mode=TwoWay}">
<ComboBoxItem x:Uid="Run_Radio_Position_Cursor" />
<ComboBoxItem x:Uid="Run_Radio_Position_Primary_Monitor" />
<ComboBoxItem x:Uid="Run_Radio_Position_Focus" />
<ComboBoxItem x:Uid="Run_Radio_Position_In_Place" />
<ComboBoxItem x:Uid="Run_Radio_Position_LastPosition" />
</ComboBox>
<controls:SettingsCard x:Uid="Settings_GeneralPage_HighlightSearch_SettingsCard" HeaderIcon="{ui:FontIcon Glyph=&#xE933;}">
<ToggleSwitch AutomationProperties.AutomationId="CmdPal_GeneralPage_HighlightSearch" IsOn="{x:Bind viewModel.HighlightSearchOnActivate, Mode=TwoWay}" />
</controls:SettingsCard>
<controls:SettingsCard x:Uid="Settings_GeneralPage_ToastPosition_SettingsCard" HeaderIcon="{ui:FontIcon Glyph=&#xE75A;}">
<controls:SettingsCard.Description>
<StackPanel>
<TextBlock x:Uid="Settings_GeneralPage_ToastPosition_Description" TextWrapping="Wrap" />
<HyperlinkButton
x:Uid="Settings_GeneralPage_ToastPosition_OpenSystemSettings_Hyperlink"
Padding="0"
AutomationProperties.AutomationId="CmdPal_GeneralPage_ToastPosition_OpenSystemSettings"
Click="OpenSystemSettings_Click"
Visibility="{x:Bind viewModel.IsToastPositionFromSystemSettings, Mode=OneWay}" />
</StackPanel>
</controls:SettingsCard.Description>
<ComboBox
MinWidth="{StaticResource SettingActionControlMinWidth}"
AutomationProperties.AutomationId="CmdPal_GeneralPage_ToastPosition"
SelectedIndex="{x:Bind viewModel.ToastPositionIndex, Mode=TwoWay}">
<ComboBoxItem x:Uid="Settings_GeneralPage_ToastPosition_Item_UseSystemSettings" />
<ComboBoxItem x:Uid="Settings_GeneralPage_ToastPosition_Item_BottomCenter" />
<ComboBoxItem x:Uid="Settings_GeneralPage_ToastPosition_Item_TopLeft" />
<ComboBoxItem x:Uid="Settings_GeneralPage_ToastPosition_Item_TopCenter" />
</ComboBox>
</controls:SettingsCard>
<controls:SettingsExpander x:Uid="Settings_GeneralPage_CompactMode_SettingsCard" HeaderIcon="{ui:FontIcon Glyph=&#xE73F;}">
<ToggleSwitch AutomationProperties.AutomationId="CmdPal_GeneralPage_CompactMode" IsOn="{x:Bind viewModel.CompactMode, Mode=TwoWay}" />
<controls:SettingsExpander.Items>
<controls:SettingsCard
x:Uid="Settings_GeneralPage_CompactCenterHeight_SettingsCard"
HeaderIcon="{ui:FontIcon Glyph=&#xE74A;}"
IsEnabled="{x:Bind viewModel.CompactMode, Mode=OneWay}">
<Slider
Width="100"
Height="100"
MinWidth="{StaticResource SettingActionControlMinWidth}"
AutomationProperties.AutomationId="CmdPal_GeneralPage_CompactCenterHeight"
Maximum="100"
Minimum="0"
Orientation="Vertical"
StepFrequency="5"
TickFrequency="25"
TickPlacement="Outside"
Value="{x:Bind viewModel.CompactCenterHeightPercentage, Mode=TwoWay}" />
</controls:SettingsCard>
</controls:SettingsExpander.Items>
</controls:SettingsExpander>
<!-- 'Behavior' section -->
<TextBlock x:Uid="BehaviorSettingsHeader" Style="{StaticResource SettingsSectionHeaderTextBlockStyle}" />
<TextBlock x:Uid="Settings_GeneralPage_AppBehaviorSettingsHeader" Style="{StaticResource SettingsSectionHeaderTextBlockStyle}" />
<controls:SettingsCard x:Uid="Settings_GeneralPage_ShowSystemTrayIcon_SettingsCard" HeaderIcon="{ui:FontIcon Glyph=&#xE75B;}">
<ToggleSwitch AutomationProperties.AutomationId="CmdPal_GeneralPage_ShowSystemTrayIcon" IsOn="{x:Bind viewModel.ShowSystemTrayIcon, Mode=TwoWay}" />
</controls:SettingsCard>
@@ -178,16 +120,14 @@
<!-- 'For Developers' section -->
<TextBlock x:Uid="ForDevelopersSettingsHeader" Style="{StaticResource SettingsSectionHeaderTextBlockStyle}" />
<TextBlock x:Uid="Settings_GeneralPage_ForDevelopersSettingsHeader" Style="{StaticResource SettingsSectionHeaderTextBlockStyle}" />
<controls:SettingsCard x:Uid="Settings_GeneralPage_AllowExternalReload_SettingsCard" HeaderIcon="{ui:FontIcon Glyph=&#xE777;}">
<ToggleSwitch AutomationProperties.AutomationId="CmdPal_GeneralPage_AllowExternalReload" IsOn="{x:Bind viewModel.AllowExternalReload, Mode=TwoWay}" />
</controls:SettingsCard>
<!-- 'About' section -->
<TextBlock x:Uid="AboutSettingsHeader" Style="{StaticResource SettingsSectionHeaderTextBlockStyle}" />
<TextBlock x:Uid="Settings_GeneralPage_AboutSettingsHeader" Style="{StaticResource SettingsSectionHeaderTextBlockStyle}" />
<controls:SettingsExpander
x:Uid="Settings_GeneralPage_About_SettingsExpander"
AutomationProperties.AutomationId="CmdPal_GeneralPage_About"

View File

@@ -100,12 +100,6 @@ public sealed partial class GeneralPage : Page, INotifyPropertyChanged
UpdateNotificationState();
}
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 SettingsService_SettingsChanged(ISettingsService sender, SettingsModel settings)
{
if (DispatcherQueue.HasThreadAccess)

View File

@@ -225,7 +225,7 @@ Right-click to remove the key combination, thereby deactivating the shortcut.</v
<value>Command Palette settings</value>
<comment>A section header for app-wide settings. "Command Palette" is the name of the app.</comment>
</data>
<data name="AboutSettingsHeader.Text" xml:space="preserve">
<data name="Settings_GeneralPage_AboutSettingsHeader.Text" xml:space="preserve">
<value>About</value>
<comment>A section header for information about the app</comment>
</data>
@@ -277,11 +277,7 @@ Right-click to remove the key combination, thereby deactivating the shortcut.</v
<value>Type here to search...</value>
</data>
<data name="Run_PositionHeader.Header" xml:space="preserve">
<value>Preferred monitor position</value>
<comment>as in Show Command Palette on primary monitor</comment>
</data>
<data name="Run_PositionHeader.Description" xml:space="preserve">
<value>If multiple monitors are in use, Command Palette can be launched on the desired monitor</value>
<value>Open Command Palette on</value>
<comment>as in Show Command Palette on primary monitor</comment>
</data>
<data name="Run_Radio_Position_Cursor.Content" xml:space="preserve">
@@ -297,12 +293,8 @@ Right-click to remove the key combination, thereby deactivating the shortcut.</v
<value>Don't move</value>
</data>
<data name="Settings_GeneralPage_ToastPosition_SettingsCard.Header" xml:space="preserve">
<value>Position of on-screen indicators</value>
<comment>Kept in sync with the Windows Settings card of the same name</comment>
</data>
<data name="Settings_GeneralPage_ToastPosition_Description.Text" xml:space="preserve">
<value>Confirmation messages and other indicators will appear in this location</value>
<comment>Mirrors the Windows Settings card "Volume, brightness and other controls will appear in this location"</comment>
<value>On-screen indicator position</value>
<comment>Position where Command Palette confirmation messages and other indicators appear</comment>
</data>
<data name="Settings_GeneralPage_ToastPosition_OpenSystemSettings_Hyperlink.Content" xml:space="preserve">
<value>Change position in Windows Settings</value>
@@ -373,16 +365,13 @@ Right-click to remove the key combination, thereby deactivating the shortcut.</v
<value>These commands are built-in to the Windows Command Palette.</value>
</data>
<data name="Settings_GeneralPage_ActivationKey_SettingsExpander.Header" xml:space="preserve">
<value>Activation key</value>
</data>
<data name="Settings_GeneralPage_ActivationKey_SettingsExpander.Description" xml:space="preserve">
<value>This key will open the Command Palette.</value>
<value>Activation shortcut</value>
</data>
<data name="Settings_GeneralPage_LowLevelHook_SettingsCard.Header" xml:space="preserve">
<value>Use low-level keyboard hook</value>
</data>
<data name="Settings_GeneralPage_LowLevelHook_SettingsCard.Description" xml:space="preserve">
<value>Try this if there are issues with the shortcut (Command Palette might not get focus when triggered from an elevated window)</value>
<value>Use this if the shortcut cannot focus Command Palette from an elevated app</value>
</data>
<data name="Settings_GeneralPage_IgnoreShortcutWhenFullscreen_SettingsCard.Header" xml:space="preserve">
<value>Ignore shortcut in fullscreen mode</value>
@@ -394,13 +383,10 @@ Right-click to remove the key combination, thereby deactivating the shortcut.</v
<value>Ignore shortcut when the system heuristically detects fullscreen</value>
</data>
<data name="Settings_GeneralPage_IgnoreShortcutWhenBusy_SettingsCard.Description" xml:space="preserve">
<value>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</value>
<value>Windows may report fullscreen or presentation mode incorrectly; overlays such as NVIDIA can trigger it</value>
</data>
<data name="Settings_GeneralPage_AllowBreakthroughShortcut_SettingsCard.Header" xml:space="preserve">
<value>Allow breakthrough with rapid shortcut presses</value>
</data>
<data name="Settings_GeneralPage_AllowBreakthroughShortcut_SettingsCard.Description" xml:space="preserve">
<value>Press the activation shortcut 3 times within 2 seconds to bypass the fullscreen or busy state guard</value>
<value>Press the shortcut 3 times within 2 seconds to override suppression</value>
</data>
<data name="Settings_GeneralPage_NotificationState_InfoBar" xml:space="preserve">
<value>Your activation shortcut might not work right now because {0}.</value>
@@ -418,46 +404,28 @@ Right-click to remove the key combination, thereby deactivating the shortcut.</v
<value>Likely caused by: {0}.</value>
</data>
<data name="Settings_GeneralPage_HighlightSearch_SettingsCard.Header" xml:space="preserve">
<value>Highlight search on activate</value>
</data>
<data name="Settings_GeneralPage_HighlightSearch_SettingsCard.Description" xml:space="preserve">
<value>Selects the previous search text at launch</value>
<value>Select search text when opened</value>
</data>
<data name="Settings_GeneralPage_CompactMode_SettingsCard.Header" xml:space="preserve">
<value>Compact mode</value>
</data>
<data name="Settings_GeneralPage_CompactMode_SettingsCard.Description" xml:space="preserve">
<value>Shrinks the palette to just the search box until you start typing</value>
<value>Open with a compact search box</value>
</data>
<data name="Settings_GeneralPage_CompactCenterHeight_SettingsCard.Header" xml:space="preserve">
<value>Search box position</value>
<value>Vertical search box position</value>
</data>
<data name="Settings_GeneralPage_CompactCenterHeight_SettingsCard.Description" xml:space="preserve">
<value>Relative height from the bottom of the screen where the collapsed search box is centered. Only applies in compact mode.</value>
<value>Move left to place it lower on the screen, or right to place it higher</value>
</data>
<data name="Settings_GeneralPage_KeepPreviousQuery_SettingsCard.Header" xml:space="preserve">
<value>Keep previous query</value>
</data>
<data name="Settings_GeneralPage_KeepPreviousQuery_SettingsCard.Description" xml:space="preserve">
<value>Preserves the last search text when Command Palette is reopened</value>
<value>Keep search text when reopened</value>
</data>
<data name="Settings_GeneralPage_ShowAppDetails_SettingsCard.Header" xml:space="preserve">
<value>Show app details</value>
</data>
<data name="Settings_GeneralPage_ShowAppDetails_SettingsCard.Description" xml:space="preserve">
<value>Controls if app details are automatically expanded or not.</value>
<value>Automatically expand app details</value>
</data>
<data name="Settings_GeneralPage_BackspaceGoesBack_SettingsCard.Header" xml:space="preserve">
<value>Backspace goes back</value>
</data>
<data name="Settings_GeneralPage_BackspaceGoesBack_SettingsCard.Description" xml:space="preserve">
<value>If the search field is empty, backspace returns to the previous page</value>
<value>Go back with Backspace when search is empty</value>
</data>
<data name="Settings_GeneralPage_SingleClickActivation_SettingsCard.Header" xml:space="preserve">
<value>Single-click activation</value>
</data>
<data name="Settings_GeneralPage_SingleClickActivation_SettingsCard.Description" xml:space="preserve">
<value>Choose how to interact with list items: single-click to activate, or single-click to select and double-click to activate</value>
<value>Activate list items with a single click</value>
</data>
<data name="Settings_GeneralPage_About_SettingsExpander.Header" xml:space="preserve">
<value>Windows Command Palette</value>
@@ -492,12 +460,15 @@ Right-click to remove the key combination, thereby deactivating the shortcut.</v
<data name="SettingsButton.[using:Microsoft.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
<value>Open Command Palette settings, shortcut Control plus comma</value>
</data>
<data name="ActivationSettingsHeader.Text" xml:space="preserve">
<data name="Settings_GeneralPage_ActivationSettingsHeader.Text" xml:space="preserve">
<value>Activation</value>
</data>
<data name="BehaviorSettingsHeader.Text" xml:space="preserve">
<value>Behavior</value>
</data>
<data name="Settings_GeneralPage_AppBehaviorSettingsHeader.Text" xml:space="preserve">
<value>App behavior</value>
</data>
<data name="DockAppearanceSettingsHeader.Text" xml:space="preserve">
<value>Appearance</value>
</data>
@@ -508,22 +479,13 @@ Right-click to remove the key combination, thereby deactivating the shortcut.</v
<value>Search commands...</value>
</data>
<data name="Settings_GeneralPage_ShowSystemTrayIcon_SettingsCard.Header" xml:space="preserve">
<value>Show system tray icon</value>
</data>
<data name="Settings_GeneralPage_ShowSystemTrayIcon_SettingsCard.Description" xml:space="preserve">
<value>Choose if Command Palette is visible in the system tray</value>
<value>Show Command Palette in system tray</value>
</data>
<data name="Settings_GeneralPage_AllowAltF4_SettingsCard.Header" xml:space="preserve">
<value>Quit Command Palette with Alt+F4</value>
</data>
<data name="Settings_GeneralPage_AllowAltF4_SettingsCard.Description" xml:space="preserve">
<value>If this setting is on, pressing Alt+F4 will quit Command Palette</value>
</data>
<data name="Settings_GeneralPage_DisableAnimations_SettingsCard.Header" xml:space="preserve">
<value>Disable animations</value>
</data>
<data name="Settings_GeneralPage_DisableAnimations_SettingsCard.Description" xml:space="preserve">
<value>Disable animations when switching between pages</value>
<value>Disable page transition animations</value>
</data>
<data name="Settings_GeneralPage_EnableDock_SettingsCard.Header" xml:space="preserve">
<value>Enable Dock</value>
@@ -609,9 +571,9 @@ Right-click to remove the key combination, thereby deactivating the shortcut.</v
<value>Enable external reload</value>
</data>
<data name="Settings_GeneralPage_AllowExternalReload_SettingsCard.Description" xml:space="preserve">
<value>Trigger reload of the extension externally with the x-cmdpal://reload command</value>
<value>Allow reloads through the x-cmdpal://reload protocol</value>
</data>
<data name="ForDevelopersSettingsHeader.Text" xml:space="preserve">
<data name="Settings_GeneralPage_ForDevelopersSettingsHeader.Text" xml:space="preserve">
<value>For developers</value>
</data>
<data name="UntitledPageTitle" xml:space="preserve">
@@ -641,24 +603,6 @@ Right-click to remove the key combination, thereby deactivating the shortcut.</v
<data name="Settings_ExtensionsPage_Reloading_Text.Text" xml:space="preserve">
<value>Reloading extensions..</value>
</data>
<data name="Settings_ExtensionsPage_Banner_Header.Text" xml:space="preserve">
<value>Discover more extensions</value>
</data>
<data name="Settings_ExtensionsPage_Banner_Description.Text" xml:space="preserve">
<value>Find more extensions on the Microsoft Store or WinGet.</value>
</data>
<data name="Settings_ExtensionsPage_Banner_Hyperlink.Content" xml:space="preserve">
<value>Learn how to create your own extensions</value>
</data>
<data name="Settings_ExtensionsPage_FindExtensions_MicrosoftStore.[using:Microsoft.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Find extensions on the Microsoft Store</value>
</data>
<data name="Settings_ExtensionsPage_FindExtensions_MicrosoftStore.[using:Microsoft.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
<value>Microsoft Store</value>
</data>
<data name="Settings_ExtensionsPage_FindExtensions_MicrosoftStore_Text.Text" xml:space="preserve">
<value>Microsoft Store</value>
</data>
<data name="Settings_ExtensionsPage_SearchBox_Placeholder.PlaceholderText" xml:space="preserve">
<value>Search extensions</value>
</data>
@@ -696,10 +640,7 @@ Right-click to remove the key combination, thereby deactivating the shortcut.</v
<value>3 minutes</value>
</data>
<data name="Settings_GeneralPage_AutoGoHome_SettingsCard.Header" xml:space="preserve">
<value>Automatically return home</value>
</data>
<data name="Settings_GeneralPage_AutoGoHome_SettingsCard.Description" xml:space="preserve">
<value>Automatically returns to home page after a period of inactivity when Command Palette is closed</value>
<value>Return home after closing</value>
</data>
<data name="Settings_GeneralPage_NavigationViewItem_Appearance.Content" xml:space="preserve">
<value>Personalization</value>
@@ -710,9 +651,15 @@ Right-click to remove the key combination, thereby deactivating the shortcut.</v
<data name="Settings_GeneralPage_AppTheme_SettingsCard.Description" xml:space="preserve">
<value>Select which app theme to display</value>
</data>
<data name="AppearanceSettingsHeader.Text" xml:space="preserve">
<data name="Settings_AppearancePage_AppearanceSettingsHeader.Text" xml:space="preserve">
<value>Appearance</value>
</data>
<data name="Settings_AppearancePage_LayoutSettingsHeader.Text" xml:space="preserve">
<value>Layout and positioning</value>
</data>
<data name="Settings_AppearancePage_InteractionSettingsHeader.Text" xml:space="preserve">
<value>Interaction</value>
</data>
<data name="Settings_GeneralPage_AppTheme_Mode_System.Text" xml:space="preserve">
<value>Use system settings</value>
</data>
@@ -791,9 +738,6 @@ Right-click to remove the key combination, thereby deactivating the shortcut.</v
<data name="Settings_GeneralPage_EscapeKeyBehavior_SettingsCard.Header" xml:space="preserve">
<value>Escape key behavior</value>
</data>
<data name="Settings_GeneralPage_EscapeKeyBehavior_SettingsCard.Description" xml:space="preserve">
<value>Choose how Escape key behaves</value>
</data>
<data name="SettingsButtonTextBlock.Text" xml:space="preserve">
<value>Settings</value>
</data>