awesome-wm-widgets/spotify-widget
Christopher Crockett 5d50fe7fab Document new sp_bin option for spotify-widget 2022-07-13 14:08:17 -04:00
..
README.md Document new sp_bin option for spotify-widget 2022-07-13 14:08:17 -04:00
spo-wid-1.png update the screenshot of spotify widget 2020-06-16 08:13:27 -04:00
spotify-widget-custom-paused.png fix #155 plus some improvements 2020-06-12 15:52:05 -04:00
spotify-widget-custom-playing.png fix #155 plus some improvements 2020-06-12 15:52:05 -04:00
spotify.lua Added sp_bin option to spotify-widget 2022-07-13 14:03:53 -04:00

README.md

Spotify widget

This widget displays currently playing song on Spotify for Linux client: screenshot

Some features:

  • status icon which shows if music is currently playing
  • artist and name of the current song
  • dim widget if spotify is paused
  • trim long artist/song names
  • tooltip with more info about the song

Controls

  • left click - play/pause
  • scroll up - play next song
  • scroll down - play previous song

Dependencies

Note that widget uses the Arc icon theme, so it should be installed first under /usr/share/icons/Arc/ folder.

Customization

It is possible to customize widget by providing a table with all or some of the following config parameters:

Name Default Description
play_icon /usr/share/icons/Arc/actions/24/player_play.png Play icon
pause_icon /usr/share/icons/Arc/actions/24/player_pause.png Pause icon
font Play 9 Font
dim_when_paused false Decrease the widget opacity if spotify is paused
dim_opacity 0.2 Widget's opacity when dimmed, dim_when_paused should be set to true
max_length 15 Maximum lentgh of artist and title names. Text will be ellipsized if longer.
show_tooltip true Show tooltip on hover with information about the playing song
timeout 1 How often in seconds the widget refreshes
sp_bin sp Path to the sp binary. Required if sp is not in environment PATH.

Example:

spotify_widget({
    font = 'Ubuntu Mono 9',
    play_icon = '/usr/share/icons/Papirus-Light/24x24/categories/spotify.svg',
    pause_icon = '/usr/share/icons/Papirus-Dark/24x24/panel/spotify-indicator.svg',
    dim_when_paused = true,
    dim_opacity = 0.5,
    max_length = -1,
    show_tooltip = false,
    sp_bin = gears.filesystem.get_configuration_dir() .. 'scripts/sp'
})

Gives following widget

Playing: screenshot

Paused: screenshot

Installation

First you need to have spotify CLI installed, it uses dbus to communicate with spotify-client:

git clone https://gist.github.com/fa6258f3ff7b17747ee3.git
cd ./fa6258f3ff7b17747ee3 
chmod +x sp
# This widget will work by default if the binary is in the system PATH
sudo cp ./sp /usr/local/bin/
# Alternatively, you may save the binary anywhere and supply the path via this widget's sp_bin argument:
# cp ./sp ~/.config/awesome/scripts/

Then clone repo under ~/.config/awesome/ and add widget in rc.lua:

local spotify_widget = require("awesome-wm-widgets.spotify-widget.spotify")
...
s.mytasklist, -- Middle widget
	{ -- Right widgets
    	layout = wibox.layout.fixed.horizontal,
		...
        -- default        
        spotify_widget(),
        -- customized
        spotify_widget({
           font = 'Ubuntu Mono 9',
           play_icon = '/usr/share/icons/Papirus-Light/24x24/categories/spotify.svg',
           pause_icon = '/usr/share/icons/Papirus-Dark/24x24/panel/spotify-indicator.svg'
        }),
		...