Back to rankings

xou816/spot

Rust

UNMAINTAINED! Please check out active forks

gnomerustspotifygtk-rsgtk4unmaintained
Star Growth
Stars
2.4k
Forks
131
Weekly Growth
Issues
102
1k2k
May 2020May 2022Jun 2024Jul 2026
Artifactscrates.iocargo add spot
README

[!WARNING]
This project is no longer being maintained by me at the time!

Please consider using Diegovsky/riff instead.

Thank you!

(unmaintained) Spot spot-snapshots

Gtk/Rust native Spotify client for the GNOME desktop. Only works with premium accounts!

Based on librespot.

Join the discussion on Matrix.

Spot screenshot

Installing

Download on Flathub

Packaging status

Usage notes

Credentials

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!

Features

Only works with premium accounts!

  • playback control (play/pause, prev/next, seeking, shuffle, repeat (none, all, song))
  • selection mode: easily browse and select mutliple tracks to queue them
  • browse your saved albums and playlists
  • search albums and artists
  • view an artist's releases
  • view users' playlists
  • view album info
  • credentials management with Secret Service
  • MPRIS integration
  • playlist management (creation and edition)
  • liked tracks

Contributing

Contributions are welcome! If you wish, add yourself to the AUTHORS files when submitting your contribution.

For any large feature/change, please open an issue first to discuss implementation and design decisions.

Translating

Translations are managed using gettext and are available in the po/ subdirectory.

Please use POEditor to submit translations.

If you feel like it, you are welcome to open a PR to be added to the TRANSLATORS file!

Building

With GNOME Builder and flatpak

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 :)

Manually

Requires Rust (stable), GTK4, and a couple other things. Also requires libadwaita and blueprint-compiler: they are not packaged on all distros at the moment, you might have to build them yourself!

With meson:

meson target -Dbuildtype=debug -Doffline=false --prefix="$HOME/.local"
ninja install -C target
# to run test/linter/etc
meson test -C target  --verbose

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 -Dbuildtype=release instead.

Regenerating potfiles

When adding new msgids, don't forget to regenerate/update the potfiles.

ninja spot-pot -C target
ninja spot-update-po -C target

Pulling updated strings from POEditor

We are now using POEditor and the wonderful poeditor-sync tool.

poeditor pull

Regenerating sources for flatpak

Using flatpak-cargo-generator.py:

ninja cargo-sources.json -C target

Debugging

Set the RUST_LOG env variable to the appropriate level.

Debug builds (flatpak) are available from the master branch on Github (see the spot-snaphots action).

Spot caches images and HTTP responses in ~/.cache/spot.

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.

Related repositories
winapps-org/winapps

Run Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the native OS, including Nautilus integration. Hard fork of https://github.com/Fmstrat/winapps/

ShellOthercassowarydocker
15.6k495
phw/peek

Simple animated GIF screen recorder with an easy to use interface

ValaGNU General Public License v3.0linuxgif-recorder
10.6k334
vinceliuice/WhiteSur-gtk-theme

MacOS like theme for all gtk based desktops

CSSnpmMIT Licensegnomegtk
9.1k735
material-shell/material-shell

A modern desktop interface for Linux. Improve your user experience and get rid of the anarchy of traditional desktop workflows. Designed to simplify navigation and reduce the need to manipulate windows in order to improve productivity. It's meant to be 100% predictable and bring the benefits of tools coveted by professionals to everyone.

TypeScriptnpmGNU General Public License v3.0materialmaterial-design
material-shell.com
7.3k180
NickvisionApps/Parabolic

Download web video and audio

C#MIT Licensegnomedownloader
flathub.org/apps/details/org.nickvision.tubeconverter
6.6k308
hbons/SparkleShare

Share and collaborate by syncing with any Git repository instantly. Linux, macOS, and Windows

C#GNU General Public License v3.0syncgit
sparkleshare.org
5k568
Gictorbit/photoshopCClinux

Photoshop CC v19 installer for Gnu/Linux

ShellGNU General Public License v2.0photoshopgnu-linux
4.5k321
micheleg/dash-to-dock

A dock for the Gnome Shell. This extension moves the dash out of the overview transforming it in a dock for an easier launching of applications and a faster switching between windows and desktops.

JavaScriptnpmGNU General Public License v2.0dockgnome
micheleg.github.io/dash-to-dock/
4.3k546
rafaelmardojai/firefox-gnome-theme

A GNOME👣 theme for Firefox🔥

CSSnpmThe Unlicensegnometheme
3.9k166
GSConnect/gnome-shell-extension-gsconnect

KDE Connect implementation for GNOME

JavaScriptnpmGNU General Public License v2.0kdeconnectgnome
3.7k312
anmoljagetia/Flatabulous

This is a Flat theme for Ubuntu and other Gnome based Linux Systems.

CSSnpmMIT Licenseflat-themetheme
blog.anmoljagetia.me/flatabulous-ubuntu-theme/
3.6k228
SeaDve/Kooha

Elegantly record your screen

Rustcrates.ioGNU General Public License v3.0video-recordingscreen-recorder
3.4k94