feat: redesign TUI as a compact phone-style player

This commit is contained in:
jads
2026-10-23 21:44:03 +03:00
parent ff7edd9da7
commit f77f81dead
4 changed files with 864 additions and 418 deletions

View File

@@ -35,22 +35,33 @@ PLAYWRIGHT_BROWSERS_PATH="$PWD/.playwright" .venv/bin/playwright install chromiu
.venv/bin/python mtsmusic.py tui
```
Интерфейс в терминале: обложка (цветными блоками, нужен truecolor-терминал),
название, исполнитель, альбом, прогресс, очередь «Моей волны» и избранное.
Мышь работает: кнопки, вкладки и строки списка кликабельны.
Интерфейс в терминале сделан как экран телефона: по центру обложка (цветными
блоками, нужен truecolor-терминал), ниже — большая кнопка play/pause, по бокам
— предыдущий и следующий треки. Под ними — «Текст» и «В избранное». Кнопка
«☰» в левом верхнем углу открывает боковое меню: «Моя волна», избранное,
история прослушивания, поиск, текст песни и выход.
Мышь работает: кнопки, меню, строки списков и полоса прогресса кликабельны
(клик по прогрессу перематывает трек).
| Клавиша | Действие |
|---------|----------|
| `Space` | пауза / продолжить |
| `n` / `→` | следующий трек |
| `p` / `←` | предыдущий трек |
| `←` / `→` | перемотка на −5 / +5 секунд |
| `n` / `p` | следующий / предыдущий трек |
| `t` | текст песни |
| `l` | добавить / убрать из избранного |
| `f` | перейти к избранному |
| `r` | догрузить «Мою волну» |
| `m` | открыть меню |
| `w` | список «Моей волны» |
| `f` | избранное |
| `h` | история |
| `s` | поиск |
| `q` | выход |
История хранится в `.mts-music/history.json` (последние 100 треков).
Плеер — `ffplay` (или `mpv`, если установлен). Пауза реализована через
`SIGSTOP`/`SIGCONT`, поэтому отдельный демон не нужен.
`SIGSTOP`/`SIGCONT`, а перемотка перезапускает поток с нужной секунды,
поэтому отдельный демон не нужен.
## Команды