mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-05 18:57:19 +02:00
* Working UI update with just runProgram Path and isRunProgram * First working, basic. no args or path, or setting change detections. * Revert and fixed. * Some clean up, working with config file monitor * Args and Start-in should be working. * File monitor, quotes, xaml screens one * Fixed enable/disable toogle from XAML * Code cleanup. * Betting logging. * Cleanup, start of RunProgramDescriptor and usage of run_non_elevated/run_elevated * Code moved to KeyboardEventHandlers, but not enabled since it won't build as is, needs elevation.h. Other testing.. * Key chords working, pretty much * Added gui for elevation level, need to refresh on change... * f: include shellapi.h and reference wil in KBMEL * run_elevated/run_non_elevated sorted out. Working! * Removed lots of old temp code. * Fix some speling errors. * Cleanup before trying to add a UI for the chord * Added "DifferentUser" option * Closer on UI for chords. * Better UI, lots working. * Clean up * Text for “Allow chords” – needs to look better… * Bugs and clean-up * Cleanup * Refactor and clean up. * More clean up * Some localization. * Don’t show “Allow chords“ to the “to” shortcut * Maybe better foreground after opening new app * Better chord matching. * Runprogram fix for stealing existing shortcut. * Better runProgram stuff * Temp commit * Working well * Toast test * More toast * Added File and Folder picker UI * Pre-check on run program file exists. * Refactor to SetupRunProgramControls * Open URI UI is going. * Open URI working well * Open URI stuff working well * Allowed AppSpecific shortcut and fixed backup/restore shortcut dups * Fixed settings screen * Start of code to find by name... * UI fixed * Small fixes * Some single edit code working. * UI getting better. * Fixes * Fixed and merge from main * UI updates * UI updates. * UI stuff * Fixed crash from move ui item locations. * Fixed crash from move ui item locations. * Added delete confirm * Basic sound working. * Localized some stuff * Added sounds * Better experiance when shortcut is in use. * UI tweaks * Fixed KBM ui for unicode shortcut not having "," * Some clean up * Cleanup * Cleanup * Fixed applyXamlStyling * Added back stuff lost in merge * applyXamlStyling, again * Fixed crash on change from non shortcut to shortcut * Update src/modules/keyboardmanager/KeyboardManagerEngineTest/KeyboardManagerEngineTest.vcxproj * Fixed some spelling type issues. * ImplementationLibrary 231216 * Comment bump to see if the Microsoft.Windows.ImplementationLibrary version thing gets picked up * Correct, Microsoft.Windows.ImplementationLibrary, finally? * Fixed two test that failed because we now allow key-chords. * Removed shortcut sounds. * use original behavior when "allow chords" is off in shortcut window * fix crash when editing a shortcut that has apps specified for it * split KBM chords with comma on dashboard page * Fix some spelling items. * More "spelling" * Fix XAML styling * align TextBlock and ToggleSwitch * fix cutoff issue at the top * increase ComboBox width * Added *Unsupported* for backwards compat on config of KBM * fix spellcheck * Fix crash on Remap key screen * Fixed Remap Keys ComboBox width too short. * Removed KBM Single Edit mode, fixed crash. * Fix Xaml with xaml cops * Fix crash on setting "target app" for some types of shortcuts. * Space to toggle chord, combobox back * fix spellcheck * fix some code nits * Code review updates. * Add exclusions to the bug report tool * Code review and kill CloseAndEndTask * Fix alignment / 3 comboboxes per row * Fix daily telemetry events to exclude start app and open URI * Add chords and remove app start and open uri from config telemetry * comma instead of plus in human readable shortcut telemetry data * Code review, restore default-old state when new row added in KBM * Code review, restore default-old state when new row added in KBM, part 2 * Still show target app on Settings * Only allow enabling chords for origin shortcuts --------- Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com> Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
230 lines
14 KiB
XML
230 lines
14 KiB
XML
<Page
|
|
x:Class="Microsoft.PowerToys.Settings.UI.Views.KeyboardManagerPage"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:Lib="using:Microsoft.PowerToys.Settings.UI.Library"
|
|
xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:tkcontrols="using:CommunityToolkit.WinUI.Controls"
|
|
xmlns:tkconverters="using:CommunityToolkit.WinUI.Converters"
|
|
xmlns:ui="using:CommunityToolkit.WinUI"
|
|
AutomationProperties.LandmarkType="Main"
|
|
mc:Ignorable="d">
|
|
|
|
<Page.Resources>
|
|
<tkconverters:CollectionVisibilityConverter x:Key="CollectionVisibilityConverter" />
|
|
<tkconverters:BoolToVisibilityConverter
|
|
x:Key="BoolToInvertedVisibilityConverter"
|
|
FalseValue="Visible"
|
|
TrueValue="Collapsed" />
|
|
<tkconverters:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter" />
|
|
|
|
<Style x:Name="KeysListViewContainerStyle" TargetType="ListViewItem">
|
|
<Setter Property="IsTabStop" Value="False" />
|
|
</Style>
|
|
|
|
<DataTemplate x:Key="OriginalKeyTemplate" x:DataType="x:String">
|
|
<controls:KeyVisual Content="{Binding}" VisualType="SmallOutline" />
|
|
</DataTemplate>
|
|
|
|
<DataTemplate x:Key="RemappedKeyTemplate" x:DataType="x:String">
|
|
<controls:KeyVisual Content="{Binding}" VisualType="Small" />
|
|
</DataTemplate>
|
|
|
|
<!--<DataTemplate x:Name="KeysListViewTemplate" x:DataType="Lib:KeysDataModel">
|
|
<StackPanel
|
|
Name="KeyboardManager_RemappedKeysListItem"
|
|
x:Uid="KeyboardManager_RemappedKeysListItem"
|
|
Orientation="Horizontal"
|
|
Height="56">
|
|
|
|
</StackPanel>
|
|
</DataTemplate>-->
|
|
<!--<DataTemplate x:Name="ShortcutKeysListViewTemplate" x:DataType="Lib:AppSpecificKeysDataModel">
|
|
<StackPanel
|
|
Name="KeyboardManager_RemappedShortcutsListItem"
|
|
x:Uid="KeyboardManager_RemappedShortcutsListItem"
|
|
Orientation="Horizontal"
|
|
Height="56">
|
|
|
|
</DataTemplate>-->
|
|
</Page.Resources>
|
|
|
|
<controls:SettingsPageControl x:Uid="KeyboardManager" ModuleImageSource="ms-appx:///Assets/Settings/Modules/KBM.png">
|
|
<controls:SettingsPageControl.ModuleContent>
|
|
<StackPanel ChildrenTransitions="{StaticResource SettingsCardsAnimations}" Orientation="Vertical">
|
|
<tkcontrols:SettingsCard
|
|
x:Uid="KeyboardManager_EnableToggle"
|
|
HeaderIcon="{ui:BitmapIcon Source=/Assets/Settings/Icons/KeyboardManager.png}"
|
|
IsEnabled="{x:Bind ViewModel.IsEnabledGpoConfigured, Mode=OneWay, Converter={StaticResource BoolNegationConverter}}">
|
|
<ToggleSwitch x:Uid="ToggleSwitch" IsOn="{x:Bind ViewModel.Enabled, Mode=TwoWay}" />
|
|
<tkcontrols:SettingsCard.Description>
|
|
<HyperlinkButton NavigateUri="https://aka.ms/powerToysCannotRemapKeys">
|
|
<TextBlock x:Uid="KBM_KeysCannotBeRemapped" FontWeight="SemiBold" />
|
|
</HyperlinkButton>
|
|
</tkcontrols:SettingsCard.Description>
|
|
</tkcontrols:SettingsCard>
|
|
<InfoBar
|
|
x:Uid="GPO_SettingIsManaged"
|
|
IsClosable="False"
|
|
IsOpen="{x:Bind ViewModel.IsEnabledGpoConfigured, Mode=OneWay}"
|
|
IsTabStop="{x:Bind ViewModel.IsEnabledGpoConfigured, Mode=OneWay}"
|
|
Severity="Informational" />
|
|
|
|
<controls:SettingsGroup x:Uid="KeyboardManager_Keys" IsEnabled="{x:Bind ViewModel.Enabled, Mode=OneWay}">
|
|
<tkcontrols:SettingsCard
|
|
x:Uid="KeyboardManager_RemapKeyboardButton"
|
|
ActionIcon="{ui:FontIcon Glyph=}"
|
|
Command="{Binding Path=RemapKeyboardCommand}"
|
|
HeaderIcon="{ui:FontIcon Glyph=}"
|
|
IsClickEnabled="True" />
|
|
|
|
<ListView
|
|
x:Name="RemapKeysList"
|
|
x:Uid="RemapKeysList"
|
|
IsSwipeEnabled="False"
|
|
ItemsSource="{x:Bind Path=ViewModel.RemapKeys, Mode=OneWay}"
|
|
SelectionMode="None"
|
|
Visibility="{x:Bind Path=ViewModel.RemapKeys, Mode=OneWay, Converter={StaticResource CollectionVisibilityConverter}}">
|
|
<ListView.ItemTemplate>
|
|
<DataTemplate x:DataType="Lib:KeysDataModel">
|
|
<tkcontrols:SettingsCard ContentAlignment="Left">
|
|
<StackPanel Orientation="Horizontal">
|
|
<ItemsControl
|
|
IsTabStop="False"
|
|
ItemTemplate="{StaticResource OriginalKeyTemplate}"
|
|
ItemsSource="{x:Bind GetMappedOriginalKeys()}">
|
|
<ItemsControl.ItemsPanel>
|
|
<ItemsPanelTemplate>
|
|
<StackPanel Orientation="Horizontal" Spacing="4" />
|
|
</ItemsPanelTemplate>
|
|
</ItemsControl.ItemsPanel>
|
|
</ItemsControl>
|
|
<controls:IsEnabledTextBlock
|
|
x:Uid="To"
|
|
Margin="8,0,8,0"
|
|
VerticalAlignment="Center"
|
|
Style="{StaticResource SecondaryIsEnabledTextBlockStyle}" />
|
|
<ItemsControl
|
|
Name="KeyboardManager_RemappedTo"
|
|
x:Uid="KeyboardManager_RemappedTo"
|
|
IsTabStop="False"
|
|
ItemTemplate="{StaticResource RemappedKeyTemplate}"
|
|
ItemsSource="{x:Bind GetMappedNewRemapKeys(50)}">
|
|
<ItemsControl.ItemsPanel>
|
|
<ItemsPanelTemplate>
|
|
<StackPanel Orientation="Horizontal" Spacing="4" />
|
|
</ItemsPanelTemplate>
|
|
</ItemsControl.ItemsPanel>
|
|
</ItemsControl>
|
|
</StackPanel>
|
|
</tkcontrols:SettingsCard>
|
|
</DataTemplate>
|
|
</ListView.ItemTemplate>
|
|
</ListView>
|
|
</controls:SettingsGroup>
|
|
|
|
<controls:SettingsGroup x:Uid="KeyboardManager_Shortcuts" IsEnabled="{x:Bind ViewModel.Enabled, Mode=OneWay}">
|
|
<tkcontrols:SettingsCard
|
|
x:Uid="KeyboardManager_RemapShortcutsButton"
|
|
ActionIcon="{ui:FontIcon Glyph=}"
|
|
Command="{Binding Path=EditShortcutCommand}"
|
|
HeaderIcon="{ui:FontIcon Glyph=}"
|
|
IsClickEnabled="True" />
|
|
|
|
<ListView
|
|
x:Name="RemapShortcutsList"
|
|
x:Uid="RemapShortcutsList"
|
|
IsSwipeEnabled="False"
|
|
ItemsSource="{x:Bind Path=ViewModel.RemapShortcuts, Mode=OneWay}"
|
|
SelectionMode="None"
|
|
Visibility="{x:Bind Path=ViewModel.RemapShortcuts, Mode=OneWay, Converter={StaticResource CollectionVisibilityConverter}}">
|
|
<ListView.ItemTemplate>
|
|
<DataTemplate x:DataType="Lib:AppSpecificKeysDataModel">
|
|
|
|
<tkcontrols:SettingsCard>
|
|
<tkcontrols:SettingsCard.Description>
|
|
<StackPanel Orientation="Horizontal">
|
|
<ItemsControl
|
|
IsTabStop="False"
|
|
ItemTemplate="{StaticResource OriginalKeyTemplate}"
|
|
ItemsSource="{x:Bind GetMappedOriginalKeysWithoutChord()}">
|
|
<ItemsControl.ItemsPanel>
|
|
<ItemsPanelTemplate>
|
|
<StackPanel Orientation="Horizontal" Spacing="4" />
|
|
</ItemsPanelTemplate>
|
|
</ItemsControl.ItemsPanel>
|
|
</ItemsControl>
|
|
|
|
<TextBlock
|
|
Padding="6,0,6,6"
|
|
VerticalAlignment="Bottom"
|
|
Text=","
|
|
Visibility="{x:Bind Path=HasChord, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}" />
|
|
|
|
<ItemsControl
|
|
IsTabStop="False"
|
|
ItemTemplate="{StaticResource OriginalKeyTemplate}"
|
|
ItemsSource="{x:Bind GetMappedOriginalKeysOnlyChord()}"
|
|
Visibility="{x:Bind Path=HasChord, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}">
|
|
<ItemsControl.ItemsPanel>
|
|
<ItemsPanelTemplate>
|
|
<StackPanel Orientation="Horizontal" Spacing="4" />
|
|
</ItemsPanelTemplate>
|
|
</ItemsControl.ItemsPanel>
|
|
</ItemsControl>
|
|
|
|
<controls:IsEnabledTextBlock
|
|
x:Uid="To"
|
|
Margin="8,0,8,0"
|
|
VerticalAlignment="Center"
|
|
Style="{StaticResource SecondaryIsEnabledTextBlockStyle}"
|
|
Visibility="{x:Bind Path=IsOpenUriOrIsRunProgram, Mode=OneWay, Converter={StaticResource BoolToInvertedVisibilityConverter}}" />
|
|
|
|
<controls:IsEnabledTextBlock
|
|
x:Uid="Starts"
|
|
Margin="8,0,8,0"
|
|
VerticalAlignment="Center"
|
|
Style="{StaticResource SecondaryIsEnabledTextBlockStyle}"
|
|
Visibility="{x:Bind Path=IsOpenUriOrIsRunProgram, Mode=OneWay}" />
|
|
|
|
|
|
<ItemsControl
|
|
Name="KeyboardManager_RemappedTo"
|
|
x:Uid="KeyboardManager_RemappedTo"
|
|
IsTabStop="False"
|
|
ItemTemplate="{StaticResource RemappedKeyTemplate}"
|
|
ItemsSource="{x:Bind GetMappedNewRemapKeys(50)}">
|
|
<ItemsControl.ItemsPanel>
|
|
<ItemsPanelTemplate>
|
|
<StackPanel Orientation="Horizontal" Spacing="4" />
|
|
</ItemsPanelTemplate>
|
|
</ItemsControl.ItemsPanel>
|
|
</ItemsControl>
|
|
<Border
|
|
Margin="16,0,0,0"
|
|
Padding="12,4,12,6"
|
|
VerticalAlignment="Center"
|
|
CornerRadius="12">
|
|
<Border.Background>
|
|
<SolidColorBrush Opacity="0.3" Color="{ThemeResource SystemAccentColor}" />
|
|
</Border.Background>
|
|
<TextBlock Text="{x:Bind TargetApp}" />
|
|
</Border>
|
|
|
|
</StackPanel>
|
|
</tkcontrols:SettingsCard.Description>
|
|
</tkcontrols:SettingsCard>
|
|
</DataTemplate>
|
|
</ListView.ItemTemplate>
|
|
</ListView>
|
|
</controls:SettingsGroup>
|
|
</StackPanel>
|
|
</controls:SettingsPageControl.ModuleContent>
|
|
<controls:SettingsPageControl.PrimaryLinks>
|
|
<controls:PageLink x:Uid="LearnMore_KBM" Link="https://aka.ms/PowerToysOverview_KeyboardManager" />
|
|
</controls:SettingsPageControl.PrimaryLinks>
|
|
</controls:SettingsPageControl>
|
|
</Page>
|