Repository navigation
chore(deps): update dependency largemodgames/spotatui to v0.47.0 - #94
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.46.0→0.47.0Release Notes
LargeModGames/spotatui
v0.47.0Compare Source
Added
Play through Spotify Soloist: set Settings > Playback Engine (
behavior.playback_engine: soloist) and spotatui's own Connect device plays through Spotify's official Soloist binary instead of librespot. Soloist plays for accounts where librespot fails witherror audio key 0 1(#932), and streams lossless where the account allows it; the playbar shows the quality it streams. Settings has a Download from Spotify button for the binary (oin the terminal) and a hidden Soloist API Key row. spotatui does not ship the binary. See the Soloist guide.Filter your playlists in the desktop app: a filter box under the Your Library chips narrows the playlists of the active source, including the ones inside closed folders.
Seven new visualizer styles:
Von the visualizer screen now also cycles through Head Unit (an early-2000s car-stereo display: a floor of spectrum strips in perspective under a wall of panels, drawn in Braille dots), Analog VU (two needle meters, left and right, with a peak lamp), Winamp (scanlined bars with falling peak caps and an oscilloscope strip), Phosphor Scope (a green CRT trace with fading phosphor trails and a measured Vpp and frequency), Outrun (a striped synthwave sun that pulses with the bass behind a spectrum skyline and a scrolling grid), Rack EQ (left and right LED ladders per band with falling peak LEDs) and Cassette Deck (turning reels that wind the tape across as the song plays, LED level bars and a tape counter). The choice is saved asvisualizer_styleinconfig.yml. The analyzer now also hands the terminal the last 50 ms of the waveform with each spectrum frame, which the scope styles draw.Gruvbox Cove theme preset: Gruvbox dark on the standard bg0 background, with green as the main accent, aqua as the second colour, blue hints and yellow kept for warnings only. Pick it with
Alt-,or setpreset: "Gruvbox Cove"inconfig.yml.The player bar visualizer takes its colours from the cover: in the desktop app and the browser GUI on Linux and Windows, the spectrum and the waveform now run through a gradient of the colours on the playing song's cover, darkest at the bass, and fade to the next cover's colours when the album changes. It works for Spotify, YouTube, Qobuz, Subsonic and local files with embedded art; radio and Apple Music keep the accent. A new
visualizer.ymlnext toconfig.ymlsets every part of the look: the colour source (cover,accentor your own list, hex accepted), how many cover colours and in what order, if black and grey count, the brightness limits, the blend (srgb,linearoroklab), the fade, and each size, alpha and speed of the bars, caps, glow, pulse and wave lines. spotatui never writes the file, and edits show within a second; a mistyped value keeps its default, a number out of range is clamped, and both show in the status line. See the themes guide.The GUI follows your OS reduce-motion setting: with reduced motion on, the lyrics page and the Room's lyrics column jump to each new line instead of gliding, and switches, folder chevrons and hover slides change without sliding. Turning the setting off brings the motion back, with no reload.
spotatui announcements in the desktop app and browser GUI: the announcement the terminal shows as a popup now opens as a dialog in the middle of the window, one at a time with a "1 of 2" counter, with Open when it has a link and Got it (or Escape) to dismiss it. Warnings and critical notices get their own color and icon. Dismissed announcements stay readable on the Welcome page while they are still in the feed. A dismiss in either interface marks it seen for both, and
behavior.enable_announcementsturns them off too.A Welcome page in place of Home in the desktop app and the browser GUI: the spotatui banner (animated when
behavior.banner_gradientis on and the system does not ask for reduced motion), your listening streak, the global song counter, the Discord link, the announcements you already dismissed (with their level, full text and link) and the changelog of the version you run, newest three releases first with Show older for the rest. It works with every source and without a Spotify login; the Spotify shelves are gone from it, and Made For You and Recently played keep their own pages.A visualizer behind the player bar of the desktop app and the browser GUI: while this computer plays, the bar shows a 75-band spectrum (bars that drop with gravity, peak caps and a bass glow) or a waveform, in colours from the accent. A click on empty space in the bar moves through Spectrum, Waveform and Off, and the Interface settings have it as Player Bar Visualizer (
behavior.player_bar_visualizer:spectrumby default,waveformoroff). Down to about a third of spotatui's volume, the bars do not shrink with it. Windows and Linux only: on Linux it captures through PipeWire, so the deb and rpm packages now depend on the PipeWire library.Search settings in the desktop app and browser GUI: filter by section, setting name or description, and press Escape to clear the search (#840).
The Shuffle button on Liked Songs and playlist pages works: in the desktop app and the browser GUI, it plays the songs the page shows in a random order, only the matching ones when you filter.
Sort a playlist by release date: the sort menu on a playlist now offers Release Date (
y), like Saved Albums, ordered by each track's album release date; tracks without a date come first in ascending order.default_sort_playlist_tracksacceptsrelease_dateandrelease_date:desc(#854).Click a synced lyric line to jump there in the desktop app, on the Lyrics page and in full screen. Lines that are only estimates stay plain text, and Tab reaches the line being sung.
An E badge on explicit songs in the track lists: a song the server marks explicit shows a small E at the start of its artist line, in playlists, Liked Songs, albums, an artist's Popular songs, song radio and Recently played (#838).
Simplified and Traditional Chinese:
behavior.languageselectsauto,en,zh-Hans, orzh-Hant. The terminal, the desktop app and the browser GUI share one set of strings, detect the system language, and switch language live. Screens, settings, dialogs, onboarding and status messages are translated. CLI output and logs stay English.Changed
▸) that inherits the active theme's text and highlight colors instead of a fixed-color folder emoji (#882).Fixed
Escape and the back key close more screens in the terminal:
Escnow closes the audio analysis screen (#815) and clears an active playlist or Liked Songs filter, likeq. The back key now closes the sort menu and a plugin popup instead of leaving them on screen over the previous route (#831).Lists in the terminal no longer jump when you move up: the search and library lists kept no scroll position between frames, so the view jumped with each step up. They now scroll only when the cursor reaches the top or bottom edge.
A sparse listening history still returns the DJ vibe and what is playing: with fewer than five qualifying plays,
get_listening_historykeeps the vibe fromset_dj_vibe, the current track, and the same structured keys as a full history (period,total_plays,top_artists,top_tracks,top_albums,recent,now_playing,vibe). The reply still leads with the line that asks what the listener feels like (#830).play --urirefuses a--queueor--randomits URI cannot honor:--queuewith an album, artist, playlist or show URI replaced the playback instead of queueing, and--randomwith anything but a playlist URI was ignored. Both now exit with an error before playback changes (#827).Saved Albums goes back to newest saved first on Default: picking Default in the sort menu after another sort left the list in that order until the next refetch, because Default had no case in the sort. It now orders each page by when the album was saved, newest first, whatever the previous order was (#817).
Jump and Listening Party keys can be rebound in Settings: the Keybindings tab now includes Jump to Start, Jump to End and Listening Party (#828).
playback --repeatnow advances repeat modes from Off to Context to Track instead of sending the current mode (#816).Apple Music playlists show their real song counts in the desktop app and the browser GUI: every playlist in Your Library, "All songs" included, said
0 songs, because the count was never read from Music. It now is, one playlist at a time, which adds about 8 ms per playlist to loading the sidebar; a playlist whose count Music cannot read shows no number rather than a wrong 0 (#891).Local Files folders and track names sort case-insensitively: both sorts compared names by raw byte order, so every capital letter sorted before every lowercase one and mixed-case libraries looked unsorted. The folder list and the name fallback for untagged tracks now compare lowercased names, with byte order as a stable tiebreak (#824).
Radio falls back to station information for blank titles: empty or dash-only ICY titles no longer blank the playbar subtitle or the artist sent to media integrations (#820).
No more random audio dropouts on macOS USB outputs while local files, Subsonic or YouTube tracks play: the once-a-second check for a changed default output device rebuilt two CoreAudio units each time, which made USB devices glitch. It now reads the device's stable id instead (#928).
The page no longer scrolls past the player bar when a list has explicit songs in the desktop app and the browser GUI: the hidden screen-reader text next to each E badge had no anchor, so it stretched the document below the window and the whole page could scroll into empty space. The text is now anchored and clipped, so only the panels inside the page scroll (#878).
Escape dismisses the announcement popup in the terminal: the popup said
[Press ENTER or ESC to dismiss], but Esc did nothing because the global escape handler swallowed it before the popup's own handler ran; Esc now dismisses the current announcement and shows the next one, like Enter (#871).The playbar and synced lyrics no longer jump back while a song plays: in the desktop app, the browser GUI and the Android app, the time could go 0:38, 0:37, 0:38 and the lyric line could flick back, because native streaming sent librespot's once-a-second position four times a second. The position now runs with real time between librespot's reports, a pause, resume, seek or new song no longer steps it back, and the terminal playbar moves smoothly instead of in one-second steps.
Saving or unsaving an album, or saving a show, no longer leaves the saved list wrong: saving or unsaving an album, and saving a show, refetched the first page of saved albums (or shows) but kept the cached later pages, so an album pushed off or pulled into the first page went missing or showed twice, and unsaving the last one left it in the list. The first-page refetch now drops the stale later pages and stores an empty first page too (#791).
A clear hint when ALSA has no default device: with PipeWire but no ALSA bridge, pressing play used to show a cut-off "Connection Refused" error. The status line now says ALSA has no default device and suggests installing
pipewire-alsa, and the native streaming docs have a No sound section (#848).Subsonic usernames with special characters can log in: a username with
+,&,#,%,=or a space is now percent-encoded in every request, so the server no longer answers with error 40 (#814).Plugin playbar text stays while another source plays: text a plugin sets with
spotatui.set_playbarnow stays in the playbar title for Local Files, Subsonic, Qobuz, internet radio, YouTube, the queue, and Apple Music, after any status message, as it already did for Spotify (#823).Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.