74 lines
2.7 KiB
Markdown
74 lines
2.7 KiB
Markdown
|
# Spotify Shell
|
||
|
|
||
|
|
||
|
![demo](./demo.gif)
|
||
|
|
||
|
## 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`;
|
||
|
|
||
|
1. Stores history and allows navigate through it;
|
||
|
|
||
|
1. Highly customizable
|
||
|
|
||
|
## Controls
|
||
|
|
||
|
Keyboard navigation (copied from [`awful.prompt`](https://awesomewm.org/doc/api/libraries/awful.prompt.html) 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+BACKSPAC | 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](https://gist.github.com/streetturtle/fa6258f3ff7b17747ee3) - CLI client for [Spotify for Linux](https://www.spotify.com/ca-en/download/linux/):
|
||
|
|
||
|
```bash
|
||
|
$ 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`.
|
||
|
|
||
|
1. Get an 'id' and 'secret' from [developer.spotify.com](https://beta.developer.spotify.com/documentation/general/guides/app-settings/) and paste it in the header of the `sp` (`SP_ID` and `SP_SECRET`) - this enables search feature.
|
||
|
|
||
|
1. Clone this repo under **~/.config/awesome/**
|
||
|
|
||
|
1. Require spotify-shell at the beginning of **rc.lua**:
|
||
|
|
||
|
```lua
|
||
|
local spotify_shell = require("awesome-wm-widgets.spotify-shell.spotify-shell")
|
||
|
```
|
||
|
|
||
|
1. Add a shortcut which will show Spotify Shell widget:
|
||
|
|
||
|
```lua
|
||
|
awful.key({ modkey, }, "d", function () spotify_shell.launch() end, {description = "spotify shell", group = "music"}),
|
||
|
```
|
||
|
|
||
|
1. It uses icon from [Papirus Icon Theme](https://github.com/PapirusDevelopmentTeam/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**.
|