# Feature Roadmap — vcom ## Выбранные фичи (по приоритету) ### 1. Поиск/фильтрация файлов (`/`) - [ ] **Filter mode**: при нажатии `/` открывается текстовый инпут внизу экрана (поверх footer, как модальное окно) - [ ] Фильтрация `[]Entry` в активной панели на лету по `strings.Contains`/fuzzy-match - [ ] Подсветка совпадений в строках (изменить `renderEntryRow` — передать query, подсветить matched part) - [ ] `Esc` — выход из filter mode, восстановление полного списка - [ ] `Enter` — зафиксировать фильтр (оставить отфильтрованный список), выход из filter mode - [ ] При смене директории фильтр сбрасывается ### 2. Bulk rename (массовое переименование) - [ ] Выделить файлы (`Shift+↑/↓`), нажать `Ctrl+R` (новая клавиша) - [ ] Модальное окно с текстовым полем для паттерна: `prefix_%N.ext` - [ ] Превью результата (старое имя → новое имя) - [ ] Выполнить rename для всех выделенных ### 3. Корзина (trash support) - [ ] `Delete/F8` — перемещать в `~/.local/share/Trash/` по freedesktop spec - [ ] `Shift+Delete` —永久ное удаление (как сейчас) - [ ] `browser.confirm_delete` применяется к永久ному удалению - [ ] Новая опция конфига: `behavior.use_trash = true` (default: true) ### 4. Directory history (назад/вперед) - [ ] `[]string` стек истории на каждую панель - [ ] `Alt+←` / `Alt+→` — навигация назад/вперед - [ ] При переходе в новую директорию (Enter, Backspace, клик) — push в history - [ ] При навигации по истории — не создавать новые записи ### 5. Расширенный превью форматов - [ ] PDF — извлечение текста через `pdftotext` (если доступен) - [ ] Аудио — метаданные через `ffprobe` (битрейт, длительность, кодек) - [ ] Видео — метаданные + превью через `ffmpegthumbnailer`/`ffprobe` - [ ] Fallback если утилита не установлена --- ## Процесс 1. Каждая фича реализуется в отдельной ветке `feature/N-имя` 2. После реализации — commit + push 3. После апрува — merge в main 4. Порядок: 1 → 4 → 3 → 2 → 5 (от простого к сложному)