io.m51.Gelly Gelly io.m51.Gelly.desktop Jellyfin and Subsonic music player

A native, lightweight music player for streaming from Jellyfin, Navidrome and Subsonic compatible servers.

Austin Riba CC0-1.0 GPL-3.0-or-later https://github.com/Fingel/gelly https://github.com/Fingel/gelly https://github.com/Fingel/gelly/issues keyboard pointing touch 360 https://m51.io/misc/gellyimg/april26/gelly-1.png Main window showing music library https://m51.io/misc/gellyimg/april26/gelly-2.png Main window showing music library in dark mode https://m51.io/misc/gellyimg/april26/gelly-4.png Compact view showing favorites playlist https://m51.io/misc/gellyimg/gellyxmaslyrics.png Window showing lyrics with tracking gelly Audio Music Jellyfin Subsonic Navidrome io.m51.Gelly #78d6b3 #325a4a
  • Revert update to GNOME runtime 51 until playback issues are sorted out.
  • Fixed a bug where gapless playback didn't take certain queue changes into account.
  • Added an album grid to the artist detail view.
  • Update to GNOME runtime 51.
  • Add additional information to the song info dialog, including play count.
  • UI improvements around cover art and list display.
  • Artist detail now includes albums for which an artist has song credit.
  • Add the "play similar" action for songs, albums and artists. This is called "Instant Mix" in other players.
  • Translation updates.
  • Added shuffled repeat playback mode.
  • Visual improvements: Lists now have rounded corners, play/pause button size increased slightly.
  • Lots of translation updates and internal code cleanup.
  • Updates for Jellyfin 12.
  • Added support for legacy subsonic authentication. This adds support for servers that willfully do not support other auth methods, like Nextcloud Music.
  • General setup cleanup.
  • Translation updates.
  • Happy birthday BeyoncĂ©! Diacritics are now ignored when searching.
  • Prevent overly eager scrobbling for Subsonic backends when skipping tracks.
  • Translation updates.
  • Added the ability to switch libraries for both Jellyfin and Subsonic.
  • Translation updates.
  • Option to sort albums by recently played.
  • Album art now appears for LMS backends.
  • Packaging cleanup, including removing dbbus secret service Flatpak permissions.
  • Translation updates.
  • Fixed playback reporting issue on Jellyfin that was preventing Last.fm and Listenbrainz plugins from working correctly.
  • Misc ux improvements around navigation and small bug fixes.
  • Improved performance of the song list page.
  • Fix a bug preventing duration from updating when transcoding on navidrome.
  • Prevent Gelly from overwhelming slow servers with too many concurrent requests.
  • Add oo7 as the secret service portal implementation, increasing sandbox isolation.
  • Fix a bug causing the album list to jitter when certain unicode characters are present.
  • Translation updates.
  • Indicate that library download may take some time for large libraries on first startup.
  • Revert disabling kinetic scrolling for touch devices: makes the problem worse.
  • More large library performance optimizations.
  • Adapt downloaded album art size to fit the display scale. Should increase artwork quality for those using Gelly on displays with > 100% scale.
  • Add a setting to disable gapless playback.
  • Disable kinetic scrolling for large list views to hopefully improve performance on touch screens.
  • Add a confirmation dialog when adding a song to a playlist that already contains that song.
  • Updated translations.
  • Remove numbers from playlist detail, freeing up some visual clutter.
  • Fixed a bug causing playlist detail views to not to update when adding new tracks to them.
  • Updated translations
  • Fixes a bug deserializing Jellyfin playlists.
  • The search bar now has a dropdown for genres. Note that the list is built from all genres present in all songs in the library. If your metadata isn't super clean (like mine!) you will have a lot of genres to choose from, some probably redundant. Another good reason to keep metadata up to date an clean!
  • Added a song info context action for each song, not just the currently playing one. Added some new items in it too.
  • The "add to playlist" action has been converted to a dialog, fixing ux when the number of playlists is very large.
  • Individual song artists should now display properly, while the artist list remains album artist only. This was a long requested feature that should better expose metadata on a per-song basis.
  • Redesign stream info and lyrics windows to be dialogs instead of separate windows.
  • Add "go to artist, album" actions to most context menus. Remove clickable labels which where awkward and problematic with smaller viewports.
  • Many smaller fixes, and more translations. Thank you!
  • Added a widget to the queue that shows position and total duration, and a button to jump to the current song in the list.
  • Fixed visual bug when using the high contrast GTK theme.
  • More translations. Thank you!
  • Fix some performance issues with large libraries.
  • Fixed overly verbose MPRIS reporting
  • UI updates: memoved the favorite option on hover from album art. It was not worth the clutter. Also added some padding around the main area.
  • More translations.
  • Added support for Jellyfin quick connect.
  • Added a preference for a compact mode which will display UI elements in a smaller size regardless of window size.
  • Added translations for Catalan, Dutch, French, German, Italian, Korean, Portuguese, Russian and Spanish. Thank you @julianm, @lianariel99, @Volkova-Yulia, @miniwookie, @Jeffrey2107, @nonstandarduser, @gabmus, @antoniocariaa, @Calvicii, @Dymko, @Cybercountry, @gnesterif and @juxuanu for your contributions!
  • Gapless playback.
  • Added Italian and French translations. Looking for volunteers to help translate to more languages! See the README for details.
  • Album art will now shrink in smaller viewports, making a narrow window more usable.
  • Improved layout of the big player.
  • Volume and playback mode will now persist between restarts.
  • Added the -r/--refresh-library CLI option.
  • Fixed a bug where the shuffled songs playlist would be empty on first launch.
  • Add a few command line options for simple scripting of Gelly. See the README for details.
  • List views should now properly show an empty placeholder when filters/search yield no results.
  • The Subsonic backend now prioritizes album-artist over artist for the servers that provide it.
  • Fixed favoriting responsiveness in certain cases where the Jellyfin backend is slow.

This is a substantial release with some long requested features and improvements under the hood.

  • The long requested favorites feature is finally here. You can mark songs, albums, artists and playlists as favorites and filter by them in the library. There is also a new "Favorites Mix" smart playlist which combines all favorited songs, plus all songs from all favorited albums and artists. There is also a new keyboard shortcut: ctrl+s to toggle filtering by favorite. Enjoy!
  • The blurred background art effect will now transition smoothy when changing songs. This was difficult to figure out but it turned out well. Thank you G4Music for the code inspiration.
  • Gelly will now be more forgiving of missing metadata - specifically missing album information. A win for the lazy.
  • The player bar has been re-arranged, again. The new "favorite" button was the straw that broke the camel's back with the old design, the new one should feel less cluttered.
  • Updated to the GNOME 50 runtime.
  • List views have been refactored to do searching/sorting in a more idiomatic way. This should improve performance for those with massive libraries and/or slower computers.
  • Lyrics window now automatically scrolls to follow along with the current lyric
  • More performance improvements
  • Fix missing icons on KDE and possibly other desktop environments
  • Enable audio normalization on the subsonic backend when available.
  • Fixed a bug in the subsonic backend causing full sized album art to be downloaded
  • Misc performance improvements
  • Gelly now supports Subsonic/Navidrome! To change backends, log out to restart the setup process. Thank you @dstapp for the contribution!
  • New blurred background effect using cover art, a real win for eye candy enthusiasts. Can be disabled in preferences. Thank you @GabMus!
  • Additional interface improvements and refinements, @GabMus continues to polish the UI.
  • Lyrics improvements: better timestamp tracking and the ability to jump to a lyric by clicking on it.
  • Volume can now be adjusted by scrolling the volume button. Middle click to mute.
  • Fixed a bug causing the application to lock during logout/login.
  • Many UI updates and refinements. Thank you @GabMus!
  • Fixed a bug where selecting a song in shuffle mode would play the wrong song.
  • Added a preference to inhibit the system from suspending during playback
  • Fix incorrect song playback after searching/sorting in the song list
  • Updated dependencies
  • Fix illegible text in artist menu.
  • Fix song count not appearing in song list.
  • Fix not being able to seek using some MPRIS clients
  • Fix a performance regression introduced by the song list.
  • New playback mode options: repeat one and repeat all.
  • Improved ui around marking the currently playing song.
  • Gelly now has a songs tab! List, sort and search all songs in your library from a single screen.
  • As part of the introduction of the songs tab, the queue has been moved to a sidebar where it is more convenient to access.
  • Many performance improvements for handling large libraries.
  • UI updates that free up visual clutter.
  • There is no longer an arbitrary limit on smart playlist size.
  • Smoother and easier drag and drop scrolling behavior.
  • Fixed a bug when scrolling the album list rapidly in large libraries that could cause incorrect album art to be displayed.
  • Add a header and hero image to the artist detail page, with a few actions for playlist/queue management.
  • Clickable labels for artists and albums, making navigation easier.
  • Gelly will now remember sorting preferences between app restarts.
  • Yet more MPRIS fixes.
  • Gelly now performs volume normalization between tracks. Toggle it off in preferences if you prefer to blast out your eardrums listening to music that abuses loudness.
  • Even more MPRIS fixes.
  • Report correct song duration to MPRIS clients
  • Other misc. MPRIS fixes.
  • Prevent Gelly from melting Raspberry Pis by sending too many concurrent HTTP requests.
  • The much requested lyrics feature has now landed! An additional icon will appear in the player bar when lyrics are available. If the lyrics contain timestamps, Gelly will follow along
  • Gelly will now report playback to Jellyfin, meaning play counts will track properly
  • New "Most Played" smart playlist and sorting options
  • New preferences to enable/disable smart playlists
  • More UI polishing
  • Fix a typo in the transcoding settings.
  • New preferences dialog. Includes transcoding settings that should help with devices in low bandwidth environments.
  • More consistent loading indicators.
  • More small UI improvements.
  • More playlist functionality: add albums to playlists and create them from the queue.
  • Better audio quality when transcoding: now uses Opus.
  • Misc UI improvements.
  • Create and delete playlists from within Gelly.
  • Use HLS when transcoding.
  • More consistent behavior when moving between views and searching.
  • Added an info dialog for streaming properties
  • Fix a bug that would potentially cause Jellyfin to fail transcoding.
  • Fix a bug causing playlists to not load.
  • New icon! Thank you Jakub Steiner
  • Playlist management - add, remove and reorder tracks
  • Drag and drop tracks in the queue to reorder them
  • Add shuffle playback mode.
  • Ability to sort albums, artists and playlists.
  • Full keyboard navigation support.
  • Fixed an issue with volume scaling being off.
  • Small screen size fixes
  • Fix MPRIS album art not updating properly.

More robust handling of setup errors. Better layout of setup on small screensizes.

Add smart playlist handling. For now, 100 random songs playlist is available.

Properly order tracks in albums with multiple discs. Fix potential deserialization errors for items without a "container" field.

Add an about window as well as fix a bug where playlist parsing was too strict.

Fixes a bug where music items that couldn't be deserialized prevented the library from being loaded.

Packaging updates for Flathub.

Initial Flatpak release.

  • High quality audio playback
  • Browse albums, artists and playlists
  • MPRIS support
  • Request library rescanning