added layour swithing by caps key

This commit is contained in:
2026-08-09 01:02:52 +05:00
parent 7c5675f69f
commit e99f30fcbc
15 changed files with 578 additions and 9 deletions
@@ -0,0 +1,29 @@
namespace CursorLang.Services;
/// <summary>
/// Перехватывает Caps Lock на уровне системы и делит нажатия на короткие
/// и длинные. Что делать с ними — решают подписчики.
/// </summary>
public interface ICapsLockHotkeyService
{
/// <summary>Короткое нажатие: клавишу отпустили до порога удержания.</summary>
event EventHandler? Tapped;
/// <summary>Порог удержания пройден, клавишу всё ещё держат.</summary>
event EventHandler? HoldStarted;
/// <summary>Удержание закончилось: клавишу отпустили.</summary>
event EventHandler? HoldEnded;
/// <summary>Стоит ли перехват прямо сейчас.</summary>
bool IsRunning { get; }
/// <summary>
/// Начинает перехват. Вызывать нужно из потока пользовательского интерфейса:
/// системный хук клавиатуры работает только на потоке с циклом сообщений.
/// </summary>
void Start();
/// <summary>Снимает перехват, возвращая клавише её обычное поведение.</summary>
void Stop();
}