diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..c0baaca --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,32 @@ +# Changelog + +All notable changes to Drift are documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). + +## [Unreleased] + +### Added + +- **Windows support.** Drift now runs natively on Windows. It talks to `mpv` over named pipes instead of Unix sockets. +- **Song context menu.** Press `G` on a song or playlist for quick actions: play, play next, add to queue, add to playlist, show artist, remove, and song info. +- **Song info popup.** "Song info" in the `G` menu opens a centered popup with the title, artist, album, length, and ID. Press any key to close it. +- **Redesigned `:` command menu.** +- **Audio visualizer** in the bottomleft corner. +- **Keybind hints** shown next to the volume control. +- **Status toasts.** Messages such as "Queued…" and errors now appear as a small floating toast above the Now Playing bar. Errors are red and info messages are green. +- `DRIFT_CONFIG_DIR` and `DRIFT_STATE_DIR` environment variables to override where Drift stores its config, playlists, and session. +- Install hints for Scoop and winget when `mpv` or `yt-dlp` is missing. + +### Changed + +- Status messages no longer share the bottom border of the Now Playing bar. That border now only shows pending key presses. +- On Windows, `mpv` and `yt-dlp` start without flashing a console window. +- On Windows, `mpv` is stopped when Drift exits, including after a crash. This matches the existing Linux behavior. +- Saving playlists and the session retries a few times if the file is briefly locked, which can happen on Windows with antivirus software. +- Ctrl+Alt is no longer treated as Ctrl. On Windows, AltGr is reported as Ctrl+Alt, so characters like `@`, `\`, `{`, `[`, and `~` can now be typed in search and `:` commands. + +### Fixed + +- Song info no longer appears as a cramped line at the bottom of the screen. +- Tests no longer write to your real config folder on Windows. diff --git a/README.md b/README.md index 3f7d28f..57ca13a 100644 --- a/README.md +++ b/README.md @@ -21,17 +21,14 @@ Stream your favourite music from YouTube Music — all in one client, in your te ## Features -- **YouTube Music streaming** - search and stream tracks directly from YouTube Music via `yt-dlp` and `mpv` -- **Vim-style keybinds** - navigate with `j`/`k`, enter commands with `:`, quit with `q` -- **Queue management** - add, remove, reorder, and clear tracks in your queue -- **Playlists** - save, load, append, and delete named playlists; import from YouTube/YouTube Music URLs -- **Shuffle & repeat** - toggle shuffle and cycle through off / repeat-all / repeat-one modes -- **Volume & seek control** - adjust volume and seek with configurable step sizes -- **Session restore** - automatically restores your queue and playback position on next launch -- **Artist search** - drill into an artist's discography from the results view -- **Command palette** - full `:command` interface (`:search`, `:play`, `:volume`, `:seek`, `:save`, `:load`, `:import`, and more) -- **Autoplay** - optionally keep playing through results when the queue ends -- **TOML config** - persistent config at `~/.config/drift/config.toml` (your platform's config directory); drift never rewrites it, so comments are preserved +- **YouTube Music streaming** - search and play tracks straight from YouTube Music, with no account or login +- **Vim-style keybinds** - move with `j`/`k`, jump with `gg`/`ge`, use counts like `5j`, and open the command line with `:` +- **Song context menu** - press `G` on any song for quick actions: play, queue, add to playlist, show artist, and song info +- **Command palette** - a redesigned `:` prompt with the full command set (`:search`, `:seek`, `:vol`, `:import`, and more) +- **Audio visualizer** - a live visualizer in the bottom-left corner while music plays +- **Playlists & queue** - save, load, and reorder playlists, or import any YouTube / YouTube Music playlist by URL +- **Artist browsing** - press `ga` to jump to an artist's songs +- **Session restore** - your queue and playback position come back the next time you launch ---