Files
telegram-tui/HOTKEYS.md
Mikhail Kilin 776271ff36 docs: add Phase 12 - voice message playback
Documented new feature for playing voice messages directly from TUI
with full playback controls and visual feedback.

Documentation Changes:
- ROADMAP.md: Added Phase 12 with 7 stages
  - Stage 1: Audio infrastructure (audio module, AudioPlayer, VoiceCache)
  - Stage 2: TDLib integration (VoiceNoteInfo, download_voice_note)
  - Stage 3: UI for playback (progress bar, status indicators, footer)
  - Stage 4: Hotkeys (play/pause, stop, seek, volume control)
  - Stage 5: Configuration and UX (AudioConfig, ticker updates)
  - Stage 6: Error handling and fallback (system player)
  - Stage 7: Additional improvements (prefetching, animations)

- CONTEXT.md: Added PLANNED section for Phase 12
  - Technical stack: rodio 0.17, TDLib downloadFile
  - Platforms: Linux (ALSA/PulseAudio), macOS (CoreAudio), Windows (WASAPI)
  - Architecture: src/audio/ module with 3 submodules
  - LRU cache (100 MB limit)
  - Async loading, ticker for progress updates
  - Configuration options in config.toml
  - Fallback to system players (mpv, ffplay)

- HOTKEYS.md: Added new hotkeys
  - `Space` - play/pause (in voice message selection mode)
  - `s` / `ы` - stop playback
  - `←` / `→` - seek -5s/+5s (during playback)
  - `↑` / `↓` - volume +/-10% (during playback)
  - Added new "Voice Playback" section
  - Added new "Voice Playback Mode" section

- PROJECT_STRUCTURE.md: Added audio/ module documentation
  - player.rs - AudioPlayer with rodio
  - cache.rs - VoiceCache for downloaded OGG files
  - state.rs - PlaybackState (status, position, duration, volume)
  - Updated dependencies section (rodio 0.17)
  - Updated App state with audio fields

Technical Details:
- rodio 0.17 Pure Rust audio library (cross-platform)
- OGG Opus support (Telegram voice message format)
- Visual progress bar: ▶ ████████░░░░░░ 0:08 / 0:15
- Status indicators: ▶ (playing), ⏸ (paused), ⏹ (stopped),  (loading)
- Smart caching with size limits
- Async non-blocking file download
- Ticker for smooth progress updates (100ms)
- Graceful fallback to system players

New Configuration (config.toml):
- enabled: bool - enable/disable audio playback
- default_volume: f32 - volume (0.0 - 1.0)
- seek_step_seconds: i32 - seek step in seconds (default 5)
- autoplay: bool - autoplay on selection
- cache_size_mb: usize - cache size limit in MB
- show_waveform: bool - show waveform visualization
- system_player_fallback: bool - use system player fallback
- system_player: String - system player command (mpv, ffplay)

Status: PLANNED (documentation complete, implementation pending)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-05 02:51:04 +03:00

8.0 KiB
Raw Blame History

Горячие клавиши tele-tui

Общая навигация

Клавиша Русская раскладка Действие
/ k р Вверх по списку
/ j о Вниз по списку
Enter Открыть чат / Отправить сообщение
Esc Закрыть чат / Отменить действие
Ctrl+C Выход из приложения
Ctrl+R Обновить список чатов

Папки и поиск

Клавиша Действие
1-9 Переключение между папками Telegram
Ctrl+S Открыть поиск по чатам
Ctrl+F Открыть поиск в текущем чате
n Следующий результат поиска
N Предыдущий результат поиска

Работа с сообщениями

Навигация и выбор

Клавиша Действие
↑/↓ Скролл сообщений (в открытом чате)
Выбор сообщения (при пустом поле ввода)
Esc Отменить выбор

Действия с сообщениями

Клавиша Русская раскладка Действие
Enter Редактировать выбранное сообщение
r к Ответить на сообщение (Reply)
f а Переслать сообщение (Forward)
d / Delete в Удалить сообщение
y н Копировать текст в буфер обмена
e у Добавить реакцию (Emoji picker)
v м Открыть изображение в полном размере
Ctrl+i Ctrl+ш Открыть профиль чата/пользователя

Просмотр изображений

Режим просмотра изображения

Клавиша Действие
v / м Открыть изображение (в режиме выбора)
Предыдущее изображение в чате
Следующее изображение в чате
Esc Закрыть просмотр изображения

Примечание: Изображения отображаются inline в чате автоматически. Используйте v для просмотра в полном размере.

Прослушивание голосовых сообщений

Управление воспроизведением

Клавиша Русская раскладка Действие
Space Воспроизвести/Пауза (в режиме выбора голосового)
s ы Остановить воспроизведение

Во время воспроизведения

Клавиша Действие
Space Пауза / Возобновить
s / ы Остановить
Перемотка назад (по умолчанию -5 сек)
Перемотка вперед (по умолчанию +5 сек)
Увеличить громкость (+10%)
Уменьшить громкость (-10%)

Примечание: Голосовые сообщения показывают progress bar во время воспроизведения: ▶ ████████░░░░░░ 0:08 / 0:15

Модалки подтверждения

Удаление сообщения

Клавиша Русская раскладка Действие
y / Enter н Подтвердить удаление
n / Esc т Отменить удаление

Emoji Picker (реакции)

Клавиша Действие
Влево по сетке эмодзи
Вправо по сетке эмодзи
Вверх по сетке эмодзи
Вниз по сетке эмодзи
Enter Добавить/удалить реакцию
Esc Закрыть emoji picker

Редактирование текста

Навигация по тексту

Клавиша Действие
Курсор влево
Курсор вправо
Home Курсор в начало строки
End Курсор в конец строки

Редактирование

Клавиша Действие
Backspace Удалить символ слева от курсора
Delete Удалить символ справа от курсора
Enter Новая строка / Отправить (зависит от контекста)

Режимы работы

Режим списка чатов

  • Навигация: ↑/↓
  • Открыть чат: Enter
  • Поиск: Ctrl+S
  • Папки: 1-9

Режим открытого чата

  • Скролл: ↑/↓
  • Выбор сообщения: (при пустом инпуте)
  • Поиск в чате: Ctrl+F
  • Закрыть чат: Esc

Режим выбора сообщения

  • Редактировать: Enter
  • Ответить: r / к
  • Переслать: f / а
  • Удалить: d / в / Delete
  • Копировать: y / н
  • Реакция: e / у
  • Просмотр изображения: v / м (если выбрано сообщение с фото)
  • Воспроизведение голосового: Space (если выбрано голосовое сообщение)
  • Отменить: Esc

Режим редактирования

  • Редактировать текст: см. "Редактирование текста"
  • Отправить: Enter
  • Отменить: Esc

Режим ответа (Reply)

  • Редактировать ответ: см. "Редактирование текста"
  • Отправить: Enter
  • Отменить: Esc

Режим пересылки (Forward)

  • Выбрать чат: ↑/↓
  • Переслать: Enter
  • Отменить: Esc

Режим просмотра изображения

  • Навигация: ←/→ (предыдущее/следующее изображение)
  • Закрыть: Esc

Режим воспроизведения голосового

  • Пауза/Возобновить: Space
  • Остановить: s / ы
  • Перемотка: ←/→ (-5с / +5с)
  • Громкость: ↑/↓ (+/- 10%)

Поддержка русской раскладки

Все основные vim-клавиши поддерживают русскую раскладку:

Английская Русская Действие
h р Влево
j о Вниз
k л Вверх
l д Вправо
r к Reply
f а Forward
d в Delete
y н Copy (Yank)
e у Emoji reaction
v м View image
s ы Stop audio

Подсказки

  • Текущие доступные команды всегда отображаются в нижней части экрана (footer)
  • При открытой модалке доступны только действия этой модалки
  • Esc всегда отменяет текущее действие и возвращает на шаг назад
  • Блочный курсор █ показывает текущую позицию при редактировании текста