Spotify for Linux
=================

The Spotify desktop client unofficially supports Linux, meaning that there is a
native client for Linux but we do not offer official support for client-related
problems on this platform. If you are having severe problems with the native
Linux client, there are a few alternatives that you can try:

- Using the web player: https://play.spotify.com (requires Adobe Flash plugin)
- Running the native Windows client in Wine (not recommended, but should work)

Otherwise, the native Linux client is the recommended way to listen to Spotify
on Linux systems.


Installation for debian-based systems
-------------------------------------

There is an official Debian package that Spotify distributes through an apt
repository. To install this package, follow these steps:

1. Add this line to your list of repositories in /etc/apt/sources.list:

deb http://repository.spotify.com stable non-free

2. To verify the downloaded package, you will need to add our public key by
   running this command:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 94558F59

3. Run `sudo apt-get update`
4. Run `sudo apt-get install spotify-client`


Installation for non-debian systems
-----------------------------------

In addition to the debian package, Spotify distributes compressed tarballs with
the client for systems which are not debian-based, which can be found here:

https://download.spotify.com/to-be-determined

If you download the client from a tarball, *please* be sure to regularly check
the download website for new versions. Since the Linux client does not perform
automatic updates like its Mac and Windows counterparts, it is up to YOU to keep
the client updated. In the case of critical security issues, Spotify can prevent
susceptible client versions from logging in to the service, in which case you
must then update manually.

After downloading and uncompressing the client tarball, place this folder it in
a location to your liking. Spotify can be run from any folder, as long as you
keep the folder structure provided in the download.

Spotify depends on these debian packages (and their respective dependencies),
which you need to install the equivalent packages for your system:

 * libasound2
 * libgconf-2-4
 * libgtk2.0-0
 * libglib2.0-0
 * libnss3
 * libudev1
 * libudev-dev (we know that this is silly, it is a requirement in CEF 39 and
   will be removed soon)
 * libx11-6
 * libxtst6

If you want to have Spotify added to the menu of your desktop environment, there
is a script distributed with Spotify to do that. Note that the Spotify
executable needs to be in your $PATH for the menu to work. The easiest way to do
this is to create a symlink:

  you@local:~/spotify$ ln -s spotify /usr/local/bin

Register the menu and icons:

  you@local:~/spotify$ ./register.sh

You may have to log out and in again for Spotify to appear in your menu. To
uninstall, simply remove the folder containing Spotify (and any symlinks you may
have created), and run the unregister script in the tarball root:

  you@local:~/spotify$ ./unregister.sh


Known limitations and restrictions
----------------------------------

Between client versions 0.9.x and 1.0.0, Spotify rewrote a large portion of the
internal codebase for the client. The advantage was to leverage more features of
the CEF framework. This eliminated most of the QT code in the old Spotify
client, which was the cause of quite many Linux-specific GUI bugs. So while this
refactoring has contributed to a much faster and more stable Linux client, there
are a number of features which are not yet implemented from the old client,
including:

 - Facebook login
 - 32-bit support
 - Application menu
 - Unity integration
 - Now playing notifications (with a GUI setting this time)

We are working to implement these features, which will hopefully be added to the
Linux client soon.
