Flow.Launcher/Flow.Launcher.Avalonia/Views/SettingPages/HotkeySettingsPage.axaml
Hongtao Zhang 0f9b9329dd Add hotkey recorder with manual modifier tracking
- Add HotkeyRecorderDialog with global keyboard hook for capturing hotkeys
- Implement manual modifier state tracking to handle swallowed key events
- Add HotkeyControl button that opens the recorder dialog
- Add CheckAvailability and RemoveToggleHotkey to HotKeyMapper
- Expose GetKeyFromVk helper in GlobalHotkey infrastructure
- Add Settings pages (General, Plugin, Theme, Proxy, About)
- Add PreviewPanel for result previews in main window
- Fix hook reuse issue by clearing callback on close instead of disposing
2026-01-18 02:10:53 -08:00

26 lines
1.4 KiB
XML

<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ui="using:FluentAvalonia.UI.Controls"
xmlns:vm="using:Flow.Launcher.Avalonia.ViewModel.SettingPages"
xmlns:i18n="using:Flow.Launcher.Avalonia.Resource"
xmlns:controls="using:Flow.Launcher.Avalonia.Views.Controls"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Flow.Launcher.Avalonia.Views.SettingPages.HotkeySettingsPage"
x:DataType="vm:HotkeySettingsViewModel">
<StackPanel Spacing="20">
<TextBlock Text="{i18n:Localize hotkey}" FontSize="28" FontWeight="SemiBold" />
<ui:SettingsExpander Header="{i18n:Localize toggleFlowLauncher}"
Description="{i18n:Localize toggleFlowLauncherTip}"
IconSource="Keyboard">
<ui:SettingsExpander.Footer>
<controls:HotkeyControl Hotkey="{Binding ToggleHotkey, Mode=TwoWay}" MinWidth="150" />
</ui:SettingsExpander.Footer>
</ui:SettingsExpander>
<TextBlock Text="{i18n:Localize hotkeyFormatTip}" Foreground="Gray" FontSize="12" />
</StackPanel>
</UserControl>