awesome-wm-widgets/spotify-shell/README.md

2.7 KiB

Spotify Shell

demo

Features

  1. Supports following commands (same as sp client):

    • play/pause/next;
    • any other string will start a search and play the first result for a given search query;
    • feh - shows the current artwork with feh;
  2. Stores history and allows navigate through it;

  3. Highly customizable

Controls

Keyboard navigation (copied from awful.prompt API documentation page):

Name Usage
CTRL+A beginning-of-line
CTRL+B backward-char
CTRL+C cancel
CTRL+D delete-char
CTRL+E end-of-line
CTRL+J accept-line
CTRL+M accept-line
CTRL+F move-cursor-right
CTRL+H backward-delete-char
CTRL+K kill-line
CTRL+U unix-line-discard
CTRL+W unix-word-rubout
CTRL+BACKSPACE unix-word-rubout
SHIFT+INSERT paste
HOME beginning-of-line
END end-of-line
CTRL+R reverse history search, matches any history entry containing search term.
CTRL+S forward history search, matches any history entry containing search term.
CTRL+UP ZSH up line or search, matches any history entry starting with search term.
CTRL+DOWN ZSH down line or search, matches any history entry starting with search term.
CTRL+DELETE delete the currently visible history entry from history file. This does not delete new commands or history entries under user editing.

Installation

  1. Install sp - CLI client for Spotify for Linux:

    $ sudo git clone https://gist.github.com/fa6258f3ff7b17747ee3.git ~/dev/
    $ sudo ln -s ~/dev/sp /usr/local/bin/
    

    Check if it works by running sp help.

  2. Get an 'id' and 'secret' from developer.spotify.com and paste it in the header of the sp (SP_ID and SP_SECRET) - this enables search feature.

  3. Clone this repo under ~/.config/awesome/

  4. Require spotify-shell at the beginning of rc.lua:

    local spotify_shell = require("awesome-wm-widgets.spotify-shell.spotify-shell")
    
  5. Add a shortcut which will show Spotify Shell widget:

    awful.key({ modkey,        }, "d", function () spotify_shell.launch() end, {description = "spotify shell", group = "music"}),
    
  6. It uses icon from Papirus Icon Theme. So you should either install this icon theme, or download an icon you want to use and provide path to it in spotify-shell.lua.