Gelly
A native, lightweight music client for Jellyfin and Subsonic. Built with Rust and GTK.
🦀🐧
- Supports both Jellyfin and Subsonic/Navidrome backends
- MPRIS
- Lyrics
- Replaygain
- Transcoding
- Search
- Playlist management
- Favorites
- Smart Playlists
Gelly is available on Flatpak as io.m51.Gelly
flatpak install io.m51.Gelly
Gelly is available on the aur:
paru -S gelly
nix-shell -p gelly
Gelly has a few basic command line options that can be sent to the running
instance. This is useful for light scripting or if you don't want to deal with
the MPRIS interface. Note that most context menus have a "Copy ID" option which
can be used as an argument to the --play-x options.
-n, --next Skip to the next track
-p, --prev Go to the previous track
-t, --play-pause Toggle play/pause
-s, --stop Stop playback
--play-album=ALBUM_ID Play an album by ID
--play-artist=ARTIST_ID Play all songs by an artist ID
--play-song=SONG_ID Play a specific song by ID
There is currently an issue with Flatpak that prevents sandboxed applications from reading the host's certificate store. This means if you are using a self-signed certificate on your Jellyfin/Navidrome install, Gelly will be unlikely to be able to connect even if you have the cert installed locally.
There is a workaround: You need to make the cert file available to the flatpak sandbox and then
set the SSL_CERT_FILE env var to point to it. This can be done using a tool like Flatseal. Thank you
@RodrigoPrestes for finding this workaround.
The other alternative is to use a non flatpak installation method.
Make sure you have the development libraries for the following installed:
- GTK
- Libadwaita
- Gstreamer
The name of these packages depends on your distribution,
but will usually be something like gstreamer-dev. Note that Arch Linux includes development libs with the main
package, btw, so you don't need to install anything extra.
Gelly leverages gtk-rs for GTK bindings.
You will also need a rust compiler installed. Gelly does not require any nightly features from Rust.
To make things easy, also install the just command runner. Building and launching a development build of Gelly should then simply be a matter of:
just
And installing a release build:
just release
sudo just install
See the recipes in the justfile for other useful commands.
See CONTRIBUTING.md
@gabMus for all the great UI work and polish
@dstapp for the Subsonic backend
I hang out on libera.chat in #gelly