Initial commit: VoIdeaAI - voice-first AI idea assistant
This commit is contained in:
@@ -0,0 +1,122 @@
|
||||
# Hotkeys System - VoIdea
|
||||
|
||||
**Дата:** 2026-05-10
|
||||
**Статус:** Backlog (часть WebUI)
|
||||
|
||||
---
|
||||
|
||||
## Обзор
|
||||
|
||||
Настраиваемая система горячих клавиш для быстрого управления приложением.
|
||||
|
||||
---
|
||||
|
||||
## Структура хранения
|
||||
|
||||
### База данных (primary)
|
||||
|
||||
```sql
|
||||
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)
|
||||
|
||||
```javascript
|
||||
// Ключ: '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)*
|
||||
Reference in New Issue
Block a user