Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@

### Added

- **Friends screen**: Added a new Library entry and full Friends screen backed by spotatui.com, including friend-code display, online filtering, inline name search, and live now-playing status for followed users.
- **Friend management flows**: Added add-friend support by friend code or username search, plus unfollow actions and periodic background refresh while the Friends screen is open.
- **Wayland clipboard support**: Enabled Linux `arboard` Wayland data-control support so clipboard operations like copying the friend code work reliably on Wayland sessions.

### Fixed

- **Friends key handling**: Friends-specific keys and inline input now take precedence over conflicting global shortcuts, so add/search/copy/filter actions stay local to the Friends UI.
- **Playlist track search**: Added playlist-internal track search from playlist track tables with `<Ctrl+f>`, client-side matching across track title, artists, and album, loading feedback while large playlists are scanned, and `q`/the configured back key to clear the active playlist filter and restore the cached playlist view ([#198](https://github.com/LargeModGames/spotatui/issues/198)).

### Fixed
Expand Down
146 changes: 144 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ clap = { version = "4.6", features = ["cargo"] }
clap_complete = "4.6"
unicode-width = "0.2.2"
backtrace = "0.3.76"
arboard = "3.4"
crossterm = "0.29"
tui-equalizer = "0.2.0-alpha"
tui-bar-graph = "0.3.3"
Expand Down Expand Up @@ -70,13 +69,16 @@ url = "2.5"
keepawake = "0.6"

[target.'cfg(all(target_os = "linux", not(target_env = "musl")))'.dependencies]
arboard = { version = "3.4", features = ["wayland-data-control"] }
pipewire = { version = "0.10", optional = true }
librespot-playback = { version = "0.8", optional = true, default-features = false, features = ["alsa-backend"] }

[target.'cfg(all(target_os = "linux", target_env = "musl"))'.dependencies]
arboard = { version = "3.4", features = ["wayland-data-control"] }
librespot-playback = { version = "0.8", optional = true, default-features = false, features = ["rodio-backend"] }

[target.'cfg(target_os = "windows")'.dependencies]
arboard = "3.4"
# On Windows we default to rodio for audio output.
# Without this, librespot-playback falls back to the `pipe` sink which writes raw audio bytes
# to stdout (breaking the TUI and producing no audible output).
Expand All @@ -91,6 +93,7 @@ mpris-server = { version = "0.10", optional = true }
# Rodio has compatibility issues with macOS CoreAudio and Bluetooth devices (AirPods, etc.)
# causing SIGSEGV crashes. See Issue #9 and #20.
[target.'cfg(target_os = "macos")'.dependencies]
arboard = "3.4"
librespot-playback = { version = "0.8", optional = true, default-features = false, features = ["portaudio-backend"] }
objc2-media-player = { version = "0.3", optional = true }
objc2-foundation = { version = "0.3", optional = true }
Expand Down
Loading
Loading