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 (Jellyfin only)
- Transcoding
- Search
- Playlist management
- 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
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