Files
voidea/docs/backlog/hotkeys-system-note.md

3.4 KiB

Hotkeys System - VoIdea

Дата: 2026-05-10 Статус: Backlog (часть WebUI)


Обзор

Настраиваемая система горячих клавиш для быстрого управления приложением.


Структура хранения

База данных (primary)

CREATE TABLE user_hotkeys (
    id UUID PRIMARY KEY,
    user_id UUID REFERENCES users(id),
    action VARCHAR(50) NOT NULL,
    key_combination VARCHAR(100) NOT NULL,
    modifier VARCHAR(20),
    created_at TIMESTAMP,
    updated_at TIMESTAMP
);

localStorage (backup for offline)

// Ключ: 'voidea_hotkeys'
{
  "new_idea": "ctrl+n",
  "save": "ctrl+s",
  "search": "/"
}

Синхронизация

  1. При входе → загрузить настройки из БД
  2. При изменении → обновить БД и localStorage
  3. При оффлайн → использовать localStorage
  4. При восстановлении → sync БД → localStorage

Дефолтные горячие клавиши

Действие Клавиша Описание
Новая идея Ctrl+N Создать новую идею
Сохранить Ctrl+S Сохранить текущее
Поиск / Фокус на поиск
Навигация вверх J или Предыдущая идея
Навигация вниз K или Следующая идея
Отправить на анализ Ctrl+Enter Запустить ИИ-анализ
Настройки Ctrl+, Открыть настройки
Помощь ? Показать справку
Отмена Escape Закрыть модалку
Undo Ctrl+Z Отменить действие
Redo Ctrl+Shift+Z Повторить действие

UI настройки

Страница настроек

├── Настройки
│   ├── Горячие клавиши
│   │   ├── Список действий
│   │   ├── Поле ввода (нажмите клавишу)
│   │   ├── Сброс на дефолт
│   │   └── Сохранить

Ввод новой комбинации

  1. Клик на поле ввода
  2. Нажатие клавиши/комбинации
  3. Автоматическое сохранение
  4. Валидация (не конфликтует с системой)

Обработка конфликтов

  1. Системные клавиши (Ctrl+Alt+Del) — запрещено переназначать
  2. Браузерные (Ctrl+T) — предупреждение
  3. Между пользователями — индивидуально

Поддерживаемые модификаторы

  • Ctrl / Cmd (Mac)
  • Alt / Option
  • Shift
  • Комбинации: Ctrl+Shift+N

TODO

  • Создать модель user_hotkeys
  • Реализовать хуки для клавиш
  • Добавить UI настроек
  • Синхронизация БД ↔ localStorage
  • Обработка конфликтов
  • Тесты
  • Документация для пользователей

Создано: 2026-05-10 Часть WebUI (Block 4)