All Projects → xou816 → Spot

xou816 / Spot

Licence: mit
Native Spotify client for the GNOME desktop

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Spot

Flat Remix Gtk
Flat Remix is a GTK application theme inspired by material design. It is mostly flat using a colorful palette with some shadows, highlights, and gradients for some depth.
Stars: ✭ 634 (-16.8%)
Mutual labels:  gnome, gtk
Abrus-gtk-theme
Abrus is a stylish Design theme for GTK 3, GTK 2 and Gnome-Shell etc.
Stars: ✭ 25 (-96.72%)
Mutual labels:  gtk, gnome
Yosemite-gtk-theme
Mac OSX Yosemite like theme for GTK 3, GTK 2 and Gnome-Shell etc.
Stars: ✭ 74 (-90.29%)
Mutual labels:  gtk, gnome
Marker
🖊 A gtk3 markdown editor
Stars: ✭ 644 (-15.49%)
Mutual labels:  gnome, gtk
Gradio
Stars: ✭ 335 (-56.04%)
Mutual labels:  gnome, gtk
vulcan
A minimalistic text editor designed for both ordinary use and software development
Stars: ✭ 46 (-93.96%)
Mutual labels:  gtk, gnome
telegrand
A Telegram client for GNOME
Stars: ✭ 380 (-50.13%)
Mutual labels:  gtk, gnome
dark-toggle
A small POSIX compliant shell script that toggles between the dark and light variants of a GTK theme.
Stars: ✭ 18 (-97.64%)
Mutual labels:  gtk, gnome
Tootle
GTK-based Mastodon client for Linux
Stars: ✭ 304 (-60.1%)
Mutual labels:  gnome, gtk
Node Gtk
GTK+ bindings for NodeJS (via GObject introspection)
Stars: ✭ 287 (-62.34%)
Mutual labels:  gnome, gtk
reco
A simple audio recording app for modern Linux desktop environment like Pantheon
Stars: ✭ 47 (-93.83%)
Mutual labels:  gtk, gnome
Terminator
multiple GNOME terminals in one window
Stars: ✭ 649 (-14.83%)
Mutual labels:  gnome, gtk
darkbar
Darken window titlebars based on your preference. Made for elementary OS and GNOME.
Stars: ✭ 39 (-94.88%)
Mutual labels:  gtk, gnome
Macos
macOS theme for Gnome and GTK-based desktops
Stars: ✭ 641 (-15.88%)
Mutual labels:  gnome, gtk
gnome-keysign
An easier way to sign OpenPGP keys over the local network. A GTK/GNOME application to use GnuPG for signing other peoples' keys. Quickly, easily, and securely.
Stars: ✭ 42 (-94.49%)
Mutual labels:  gtk, gnome
Resource Monitor
Resource_Monitor is a GNOME Shell extension that Monitor the use of system resources like cpu, ram, disk, network and display them in GNOME Shell top bar.
Stars: ✭ 62 (-91.86%)
Mutual labels:  gtk, gnome
gnome-shell-notifications-alert
Whenever there is an unread notification (e.g. chat messages), blinks the message in the user's menu with a color chosen by the user.
Stars: ✭ 43 (-94.36%)
Mutual labels:  gtk, gnome
dippi
Calculate display info like DPI and aspect ratio
Stars: ✭ 57 (-92.52%)
Mutual labels:  gtk, gnome
Playhouse
A Playground for HTML/CSS/JavaScript
Stars: ✭ 28 (-96.33%)
Mutual labels:  gtk, gnome
Sunflower
Small and highly customizable twin-panel file manager for Linux with support for plugins.
Stars: ✭ 347 (-54.46%)
Mutual labels:  gnome, gtk

Spot

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

Based on librespot.

Spot screenshot

Older demo gif

Installing

Package Maintainer Repo
Download on Flathub xou816 https://github.com/flathub/dev.alextren.Spot
Get it from the Snap Store popey https://github.com/popey/spot-snap
AUR version dpeukert https://gitlab.com/dpeukert/pkgbuilds/tree/main/spot-client

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!

Settings

Spot can also be configured via gsettings if you want to change the audio backend, the song bitrate, etc.

Features

Only works with premium accounts!

  • playback control (play/pause, prev/next, seeking)
  • play queue with shuffle option
  • 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
  • credentials management with Secret Service
  • MPRIS integration

Planned

  • playlist management (creation and edition)
  • liked tracks
  • GNOME search provider?
  • improved search? (track results, )
  • recommendations?

Contributing

Contributions are welcome!

Translating

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

To contribute translations:

  • fork the repository;
  • copy the po/spot.pot file and rename it to match your language code, or edit the relevant po file if it already exists;
  • if needed, add your language code to po/LINGUAS;
  • make sur the Language and Plural-Forms keys are correct;
  • edit the msgstr entries.

Note that nice tools exist to help you work with po files (Poedit for instance).

If you can't build Spot locally, you may run the spot-snapshots action against your branch from your Github fork (...I think?) to obtain a flatpak debug build.

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 (at the time of writing: 20.08).

Open the project in GNOME Builder and make the dev.alextren.Spot.development.json configuration active. Then build :)

Manually

Requires Rust (stable), GTK3, and a couple other things. Also requires libhandy1: it is not packaged on all distros at the moment, you might have to build it yourself!

Build dependencies on Ubuntu 20.04 for instance: build-essential pkg-config meson libssl-dev libglib2.0-dev-bin libgtk-3-dev libasound2-dev libpulse-dev.

Then, with meson:

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

Debugging

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].