jellyfin-tui can now be controlled from other Jellyfin clients, there's a vertical layout for narrow terminals, tinted themes, Discord cover art, and a pile of all sorts of other stuff. Read on ;)
VolumeUp/VolumeDownare gone, replaced by!Volume <delta>. Update your keymap if you bound volume keys:"VolumeDown"→!Volume -5. The app tells you on startup if you forgot.
Remote Control
You can now control jellyfin-tui from the Jellyfin web UI or any other client that supports it. It shows up as a session and takes play/pause, stop, next/prev, seek, volume and play-queue commands. This is the first stage of making jellyfin-tui work with the remote play API, so remote control of jellyfin-tui only for now.
Vertical layout
thanks to @Aubind97
Terminals narrower than 100 columns now stack vertically instead of the three-column layout. Great for twms. Resize the panes with Ctrl + Up/Down (or Ctrl + k/j).
Tinted themes
The default themes now have tinted variants. Instead of one accent color, the whole UI is tinted a tiny bit towards the album color. Smoothly faded. I'm pretty happy with it.
Tinted Dark and Tinted Light are bundled, pick them from the theme picker. You can also tint your own themes with the new "tinted" color and tint_strength:
themes:
- name: "Gruvbox (Tinted)"
base: "Gruvbox Dark"
tint_strength: 0.08
# tints inherited color
background: "tinted"
# tints specific color
border: "tinted #3a3a3a"
Discord art without leaking your server
discord_art is no longer a bool. It grew up and became an enum™. How rust of me. So, 3 modes now:
# Displays album art on your Discord profile.
# "off" - no art (default)
# "musicbrainz" - fetch from MusicBrainz/Cover Art Archive. Does not expose your server URL, but may occasionally miss.
# "local" - use your Jellyfin server !!CAUTION!! exposes your Jellyfin server URL to all Discord users
discord_art: "musicbrainz"The newly added musicbrainz option will ask jellyfin for a musicbrainz ID, if it doesn't provide it, it looks it up. And then gives discord the URL from cover art archive.
Custom symbols
You now override symbols in the UI. Replace the heart with a star if yours is made of stone. Or if you just don't have the fonts :)
symbols:
favorite: "♥"
shuffle: "⤮"
play: "►"
pause: "⏸︎"
sleep: "⏾"
downloaded: "⇊"
queued: "◴"
lyrics: "♪"
spinner: "◰◳◲◱"
separator: "›"
disc: "○"Search strips symbols
boanow finds bôa. Present day, present time.
Smaller things
!Volumetakes a delta now, so you can bind your own step size- new
PlayAllaction (Alt+Enter) plays the whole discography/album/playlist, respects shuffle - Global Shuffle can now work offline and can filter by year range and downloaded-only
- copy the Last.fm album URL from the track popup, by @Daste745 in #190
- pick your MPRIS backend at build time with the
zbus(default) ordbusfeature - nix flake bump by @onelocked in #183
Fixed bugs
- fixed a panic when playing an album in the discography view tracklist
- reworked progress reporting to send the now-playing queue to jellyfin (this is what makes remote control work)
- fixed a scrobbling regression
- duration display uses the most reliable value now, no more odd readouts #196
- the player shows the actual audio codec instead of the container name, fixes that horrible "mp4,mpeg,wav,ogg" thing haha
- album year falls back properly when track metadata is missing it
- discord no longer overflows on very long tracks
- mpris position now updates once a second instead of spamming
- sqlite now uses WAL with a busy timeout set at connect, and the playlist updater is split into read/write to lock less
- fix: show correct menu options for global shuffle when offline by @Hoetty in #201
New Contributors
- @xJayMorex made their first contribution in #184
- @Daste745 made their first contribution in #190
- @Aubind97 made their first contribution in #197
- @Hoetty made their first contribution in #201
Full Changelog: v1.4.2...v1.5.0