Flow.Launcher/Flow.Launcher.Avalonia/ViewModel/SettingPages/HotkeySettingsViewModel.cs
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

31 lines
787 B
C#

using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.DependencyInjection;
using Flow.Launcher.Infrastructure.UserSettings;
using Flow.Launcher.Avalonia.Helper;
using System;
namespace Flow.Launcher.Avalonia.ViewModel.SettingPages;
public partial class HotkeySettingsViewModel : ObservableObject
{
private readonly Settings _settings;
public HotkeySettingsViewModel()
{
_settings = Ioc.Default.GetRequiredService<Settings>();
}
public string ToggleHotkey
{
get => _settings.Hotkey;
set
{
if (_settings.Hotkey != value)
{
_settings.Hotkey = value;
HotKeyMapper.SetToggleHotkey(value);
OnPropertyChanged();
}
}
}
}