From fd92a1c696f3f9bca6098206ba3fcb3505bd3df0 Mon Sep 17 00:00:00 2001 From: abba23 Date: Tue, 4 May 2021 17:45:48 +0200 Subject: [PATCH] Add instructions for the Spotify Flatpak package --- README.md | 78 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 63 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 96a80ca..81a2a94 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,9 @@ Spotify adblocker for Linux (macOS untested) that works by wrapping `getaddrinfo` and `cef_urlrequest_create`. It blocks requests to domains that are not on the allowlist, as well as URLs that are on the denylist. ### Notes -* This does not work with the snap and Flatpak Spotify packages. +* This **does not** work with the snap Spotify package. +* This **might not** work with the Flatpak Spotify package, depending on your system's shared libraries' versions. +* The Debian Spotify package can be installed on Debian-based distributions (e.g. Ubuntu) by following the instructions at the bottom of [this page](https://www.spotify.com/us/download/linux/). *(recommended)* ## Build Prerequisites: @@ -10,26 +12,44 @@ Prerequisites: * Make * Rust - ---- - - $ git clone https://github.com/abba23/spotify-adblock.git - $ cd spotify-adblock - $ make +```bash +$ git clone https://github.com/abba23/spotify-adblock.git +$ cd spotify-adblock +$ make +``` ## Install - $ sudo make install +#### Debian Package +```bash +$ sudo make install +``` + +#### Flatpak +```bash +$ mkdir -p ~/.spotify-adblock && cp target/release/libspotifyadblock.so ~/.spotify-adblock/spotify-adblock.so +$ mkdir -p ~/.config/spotify-adblock && cp config.toml ~/.config/spotify-adblock +$ flatpak override --user --filesystem="~/.spotify-adblock/spotify-adblock.so" --filesystem="~/.config/spotify-adblock/config.toml" com.spotify.Client +``` ## Usage - ### Command-line - $ LD_PRELOAD=/usr/local/lib/spotify-adblock.so spotify +#### Debian Package +```bash +$ LD_PRELOAD=/usr/local/lib/spotify-adblock.so spotify +``` + +#### Flatpak +```bash +$ flatpak run --command=sh com.spotify.Client -c 'eval "$(sed s#LD_PRELOAD=#LD_PRELOAD=$HOME/.spotify-adblock/spotify-adblock.so:#g /app/bin/spotify)"' +``` ### Desktop file You can integrate it with your desktop environment by creating a `.desktop` file (e.g. `spotify-adblock.desktop`) in `~/.local/share/applications`. This lets you easily run it from an application launcher without opening a terminal. +Examples: +
- Example + Debian Package

``` @@ -48,11 +68,39 @@ StartupWMClass=spotify

-## Uninstall - $ sudo make uninstall +
+ Flatpak +

+``` +[Desktop Entry] +Type=Application +Name=Spotify (adblock) +GenericName=Music Player +Icon=com.spotify.Client +Exec=flatpak run --file-forwarding --command=sh com.spotify.Client -c 'eval "$(sed s#LD_PRELOAD=#LD_PRELOAD=$HOME/.spotify-adblock/spotify-adblock.so:#g /app/bin/spotify)"' @@u %U @@ +Terminal=false +MimeType=x-scheme-handler/spotify; +Categories=Audio;Music;Player;AudioVideo; +StartupWMClass=spotify +``` +

+
+ +## Uninstall +#### Debian Package +```bash +$ sudo make uninstall +``` + +#### Flatpak +```bash +$ rm -r ~/.spotify-adblock ~/.config/spotify-adblock +$ flatpak override --user --reset com.spotify.Client +``` ## Configuration -The allowlist and denylist can be configured in a config file located at `/etc/spotify-adblock/config.toml`, which can be overriden by (in ascending order of precedence): -* `~/.config/spotify-adblock/config.toml` +The allowlist and denylist can be configured in a config file located at (in ascending order of precedence): +* `/etc/spotify-adblock/config.toml` *(default)* +* `~/.config/spotify-adblock/config.toml` *(default for Flatpak)* * `config.toml` in the working directory