Files
telegram-tui/HOTKEYS.md
Mikhail Kilin 8844c2953d docs: add Phase 11 - image display in chat
Documented new feature for displaying images directly in terminal
instead of text placeholders like "[Фото]".

Documentation Changes:
- ROADMAP.md: Added Phase 11 with 6 stages
  - Stage 1: Infrastructure (media module, ImageCache, dependencies)
  - Stage 2: TDLib integration (PhotoInfo, download_photo)
  - Stage 3: UI rendering (inline previews, scaling)
  - Stage 4: Fullscreen viewer (new ViewImage mode)
  - Stage 5: Configuration and UX (MediaConfig in config.toml)
  - Stage 6: Error handling and fallback

- CONTEXT.md: Added PLANNED section for Phase 11
  - Technical stack: ratatui-image 1.0, TDLib downloadFile
  - Protocols: Sixel, Kitty Graphics, iTerm2, Unicode Halfblocks
  - Architecture: src/media/ module with 3 submodules
  - LRU cache (100 MB limit)
  - Async loading, lazy loading for visible images
  - Configuration options in config.toml

- HOTKEYS.md: Added new hotkeys
  - `v` / `м` - open image in fullscreen (in selection mode)
  - `←` / `→` - navigate between images (in viewer mode)
  - `Esc` - close image viewer
  - Added new "View Image Mode" section

- PROJECT_STRUCTURE.md: Added media/ module documentation
  - image_cache.rs - LRU cache for downloaded images
  - image_loader.rs - Async loading via TDLib
  - image_renderer.rs - Rendering with protocol detection
  - Updated dependencies section
  - Updated App state with new fields

Technical Details:
- Terminal protocol auto-detection (Sixel/Kitty/iTerm2/Halfblocks)
- Cross-platform support (Linux, macOS, Windows)
- Graceful fallback to Unicode halfblocks for all terminals
- Async non-blocking image loading
- Smart caching with size limits
- Configurable quality and protocol settings

New Configuration (config.toml):
- show_images: bool - enable/disable image display
- image_cache_mb: usize - cache size limit in MB
- preview_quality: "low" | "medium" | "high"
- render_protocol: "auto" | "sixel" | "kitty" | "iterm2" | "halfblocks"

Status: PLANNED (documentation complete, implementation pending)

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

165 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Горячие клавиши 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` для просмотра в полном размере.
## Модалки подтверждения
### Удаление сообщения
| Клавиша | Русская раскладка | Действие |
|---------|-------------------|----------|
| `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` / `м` (если выбрано сообщение с фото)
- Отменить: `Esc`
### Режим редактирования
- Редактировать текст: см. "Редактирование текста"
- Отправить: `Enter`
- Отменить: `Esc`
### Режим ответа (Reply)
- Редактировать ответ: см. "Редактирование текста"
- Отправить: `Enter`
- Отменить: `Esc`
### Режим пересылки (Forward)
- Выбрать чат: `↑/↓`
- Переслать: `Enter`
- Отменить: `Esc`
### Режим просмотра изображения
- Навигация: `←/→` (предыдущее/следующее изображение)
- Закрыть: `Esc`
## Поддержка русской раскладки
Все основные vim-клавиши поддерживают русскую раскладку:
| Английская | Русская | Действие |
|------------|---------|----------|
| `h` | `р` | Влево |
| `j` | `о` | Вниз |
| `k` | `л` | Вверх |
| `l` | `д` | Вправо |
| `r` | `к` | Reply |
| `f` | `а` | Forward |
| `d` | `в` | Delete |
| `y` | `н` | Copy (Yank) |
| `e` | `у` | Emoji reaction |
| `v` | `м` | View image |
## Подсказки
- Текущие доступные команды всегда отображаются в нижней части экрана (footer)
- При открытой модалке доступны только действия этой модалки
- `Esc` всегда отменяет текущее действие и возвращает на шаг назад
- Блочный курсор █ показывает текущую позицию при редактировании текста