Gtk/Rust native Spotify client for the GNOME desktop. Only works with premium accounts!
Based on librespot.
It is recommended to install a libsecret compliant keyring application, such as GNOME Keyring (aka seahorse). This will allow saving your password securely between launches.
In GNOME, things should work out of the box. It might be a bit trickier to get it working in other DEs: see this ArchWiki entry for detailed explanations on how to automatically start the daemon with your session.
Bear special attention to the fact that to enable automatic login, you might have to use the same password for your user account and for the keyring, and that the keyring might need to be set as default.
See this comment for more details!
...is not supported. However, you can update your account in order to be able to log in with a username and password as explained in this issue.
Spot can also be configured via
gsettings if you want to change the audio backend, the song bitrate, etc. A GUI is planned but not available yet.
It is possible to click on the seek bar to navigate to that position in a song. If you are having issues with this not working you may have gtk-primary-button-warps-slider set to false. In order to fix this issue set the value to true in your gtk configuration.
Spot uses the dark theme variant by default; this can be changed using
If you are using the flatpak version, don't forget to install your theme with flatpak as well. See this comment for details.
Similarly, snap also requires that you install the corresponding snap for your theme. See this comment for details.
Only works with premium accounts!
Contributions are welcome! If you wish, add yourself to the
AUTHORS files when submitting your contribution.
For any large feature/change, please consider opening an issue first to discuss implementation and design decisions.
Translations are managed using
gettext and are available in the
I am now experimenting an online service, POEditor, to manage translations; PRs are still welcome if you feel like using these instead!
If you feel like it, you are welcome to open a PR to be added to the
Pre-requisite: install the
org.freedesktop.Sdk.Extension.rust-stable SDK extension with flatpak. Builder might do this for you automatically, but it will install an older version; make sure the version installed matches the version of the Freedesktop SDK GNOME uses.
Open the project in GNOME Builder and make the
dev.alextren.Spot.development.json configuration active. Then build :)
Requires Rust (stable), GTK4, and a couple other things. Also requires libadwaita: it is not packaged on all distros at the moment, you might have to build it yourself!
meson target -Dbuildtype=debug -Doffline=false --prefix="$HOME/.local" ninja install -C target
This will install a
.desktop file among other things, and the spot executable will be put in
.local/bin (you might want to add it to your path).
To build an optimized release build, use
When adding new
msgids, don't forget to regenerate/update the potfiles.
ninja spot-pot -C target ninja spot-update-po -C target
We are now using POEditor and the wonderful
ninja cargo-sources.json -C target
RUST_LOG env variable to the appropriate level.
Debug builds (flatpak) are available from the master branch on Github (see the
Spot caches images and HTTP responses in
Spot uses isahc, which uses libcurl, therefore you can set the
https_proxy env variable to help with debugging. In debug mode, Spot skips SSL certificate verification.