Skip to content

Commit

Permalink
update README
Browse files Browse the repository at this point in the history
  • Loading branch information
xou816 committed Mar 18, 2021
1 parent 8f4f471 commit 8362d56
Show file tree
Hide file tree
Showing 5 changed files with 53 additions and 13 deletions.
62 changes: 50 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ Gtk/Rust native Spotify client for the GNOME desktop. **Only works with premium

Based on [librespot](https://github.com/librespot-org/librespot/).

![Preview](./demo.gif)
![Spot screenshot](./data/appstream/2.png)

[Older demo gif](./demo.gif)

## Installing

Expand All @@ -14,35 +16,65 @@ Based on [librespot](https://github.com/librespot-org/librespot/).
| <a href='https://snapcraft.io/spot'><img width='130' alt="Get it from the Snap Store" src="https://snapcraft.io/static/images/badges/en/snap-store-black.svg"></a> | popey | https://github.com/popey/spot-snap |
| <a href='https://aur.archlinux.org/packages/spot-client/'><img alt="AUR version" src="https://img.shields.io/aur/version/spot-client"></a> | dpeukert | https://gitlab.com/dpeukert/pkgbuilds/tree/main/spot-client |

It is recommended to install a libsecret compliant keyring application, such as GNOME Keyring (aka seahorse).

### Usage notes
## Usage notes

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

It is recommended to install a libsecret compliant keyring application, such as [GNOME Keyring](https://wiki.gnome.org/action/show/Projects/GnomeKeyring) (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](https://wiki.archlinux.org/index.php/GNOME/Keyring) 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](https://wiki.archlinux.org/index.php/GNOME/Keyring#Passwords_are_not_remembered).

See [this comment](https://github.com/xou816/spot/issues/92#issuecomment-801852593) 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!**

- minimal playback control (play/pause, prev/next, seeking)
- library browser (saved albums and playlists)
- album and artist search
- artist view
- 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)
- proper play queue implementation
- translate app
- liked tracks
- GNOME search provider?
- smarter search?
- 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](https://poedit.net/) 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
Expand All @@ -53,7 +85,7 @@ Open the project in GNOME Builder and make the `dev.alextren.Spot.development.js

### 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.
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```.

Expand All @@ -70,11 +102,17 @@ 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](https://github.com/sagebind/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.
Binary file modified data/appstream/1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified data/appstream/2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified data/appstream/3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 3 additions & 1 deletion src/window.ui
Original file line number Diff line number Diff line change
Expand Up @@ -524,7 +524,9 @@ Daniel Peukert
Nils Tonnätt</property>
<property name="translator-credits" translatable="yes">Heimen Stoffels
daPhipz
kleinHeiti</property>
kleinHeiti
Ondřej Sluka
Ícar</property>
<property name="logo-icon-name">dev.alextren.Spot</property>
<property name="license-type">mit-x11</property>
<child internal-child="vbox">
Expand Down

0 comments on commit 8362d56

Please sign in to comment.