A persistent i3blocks blocklet for the Spotify desktop app
Project description
i3blocks-spotify-persist
A persistent i3blocks blocklet for the Spotify desktop app.
Click the image above to watch a screencast.
Features
- near-immediate updates thanks to the event-driven model: the blocket is a constantly running process receiving D-Bus signals
- configurable output
- configurable mouse click actions (i3blocks version 1.5 or later is required)
Installation
Python version 3.5 or later is required.
The blocket can be installed from PyPI using pip
:
python3 -m pip install [--user] i3blocks-spotify-persist
Once the package is installed, there will be a blocket script named i3blocks-spotify-persist
somewhere depending on the presence of a --user
pip flag (e.g., /usr/local/bin/i3blocks-spotify-persist
or ~/.local/bin/i3blocks-spotify-persist
).
To avoid dependecy hell, pipx can be used:
pipx install i3blocks-spotify-persist
In this case the blocket script will be placed in ~/.local/bin
directory.
Dependencies
Required (installed automatically):
Optional (installed manually):
- Font Awesome (for status icons)
Usage
Add the following lines to your i3blocks config:
[spotify]
command=/path/to/bin/i3blocks-spotify-persist [-c /path/to/config.json]
interval=persist
Configuration
The blocket can be configured using a JSON config file. The config itself and all its options are optional.
Config options
format
Type: string
Default value: {status:icon} {artist} — {title}
A template string with placeholders. Placeholder formats are {field}
and {field:filter}
.
Supported fields:
status
, one of enum values:Playing
,Paused
,Stopped
artist
title
Supported fitlers:
upper
— converts a string to uppercaselower
— converts a string to lowercasecapitalize
— converts the first character of a string to uppercase and the rest to lowercaseicon
— forstatus
field only: converts a textual status to an icon (see thestatus_icons
option below)
markup_escape
Type: boolean
Default value: true
This option specifies whether to escape special characters (such as <
, >
, &
) using corresponding XML entities. Set to true
if Pango markup is used (markup=pango
in your i3blocks
config), false
otherwise.
status_icons
Type: object
Default value: {"Playing": "\uf04b", "Paused": "\uf04c", "Stopped": "\uf04d"}
This option provides a mapping for the icon
filter (see above). The default value uses icons from Font Awesome.
mouse_buttons
Type: object
Default value: {"1": "PlayPause"}
This option provides a mapping of X11 mouse buttons numbers to MPRIS methods. You can use the xev
program to determine button numbers.
Config example
{
"format": "<span font_family='monospace' color='#ffa651' weight='bold'>{status:icon} {status:upper}</span> <span color='#72bf44' weight='bold'>{artist}</span><span color='#ffa651'>᛫</span><span color='#b2d235'>{title}</span>",
"status_icons": {
"Playing": "|>",
"Paused": "||",
"Stopped": "[]"
},
"mouse_buttons": {
"1": "PlayPause",
"9": "Previous",
"8": "Next"
}
}
License
The MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for i3blocks-spotify-persist-1.0.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | d68cda86f4ac2252cc320a4ec098becd18002bc755afe1bd744393d747a01dad |
|
MD5 | fe83e1cfef410d3878210d66fad3b895 |
|
BLAKE2b-256 | 328da87c583b1a655b834c3676b1affa9ce9026d9609fc78cbb9e66445a735f4 |
Hashes for i3blocks_spotify_persist-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9683d1be9d741ca1d4af637905cf9064c32c152789da82da91ec52f5c4c10c1 |
|
MD5 | f5b93a05457416e0185f1861d288c793 |
|
BLAKE2b-256 | cc04ac102eef108d8ea0d81d2cb1c2381b6078bfb42bc75a9ce8f2d3e050ff02 |