Skip to main content

Rofify

Spotify Menu in Rofi

This app is intended to provide an alternative method for controlling spotify playback. It's inspired by the terminal application SpoTUI, and makes heavy use of spotipy and python-rofi-menu. The included theme is based on the the rofi themes by adi1090x.

selecting from a playlist in rofify

Before you attempt to install this, it's worth noting that, at present, you need spotify premium in order to use this. You will need create an app on the spotify devolper site (go to dashboard, then create an app).

To install the package run:

pip install rofify

Setup

You will need to add a few items to the configuration to get started. To create the a config file at .config/rofify/config you can run:

python -m rofify --create-config

In the config file you will need to set the values for username, client_id and client_secret. The client_id and client_secret can be obtained on your application page on developer.spotify.com. Redirect_uri can be left the same, unless you have changed it in the application settings on developer.spotify.com.

Next, run:

python -m rofify --create-token

This is required, as the authentication uses this token in every reuqest made. This creates a token using the path specified by 'cache_path' in the config file.

Try and see if the package is working by typing running Rofi:

rofi -modi spotify:"python -m rofify" -show spotify

Hotkeys

If you want to run rofify with hotkeys you'll need to create or modify custom key bindings in your rofi config. For example:

! Previous track
rofi.kb-custom-1:   Super+Left

! Next track
rofi.kb-custom-2:   Super+Right

! Toggle pause/play
rofi.kb-custom-3:   Super+space

! Toggle shuffle
rofi.kb-custom-4:   Super+s

! Cycle repeat state
rofi.kb-custom-5:   Super+r

These are convenient keybindings for me, but some experimentation might be needed depending on your setup. Make sure that any keybinding you use isn't already used by another default rofi keybinding or it will throw an error (you can get a full list of the config options by running rofi -dump-config).

Metadata

Release files for rofify 0.0.41

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rofify 0.0.41
File Size Uploaded
rofify-0.0.41.tar.gz 18.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rofify 0.0.41
File Interpreter ABI Platform
rofify-0.0.41-py3-none-any.whl Python 3 none any Details

Total release size: 43.1 kB

Release files / rofify-0.0.41.tar.gz

Download URL rofify-0.0.41.tar.gz
Size 18.4 kB
Tags Source
SHA-256 checksum
How to use checksums
6e38d82d3af7e66ca3b9d40b651ab81f6b5a77275ea42df98a6b59f8adcd0500
BLAKE2b-256 checksum
How to use checksums
3a7680ff5adc84100aeef64f0f3d03a3063d5ab51bafa29716dc14b4f778928e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release files / rofify-0.0.41-py3-none-any.whl

Download URL rofify-0.0.41-py3-none-any.whl
Size 24.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9d5f097dec4671d97bb47b35b217bf72ca7db0bf17ba6ae23a2ca2a1f8f4a3da
BLAKE2b-256 checksum
How to use checksums
85dd47dc97e01a76dbd60fce742393610f93e2b16b4b9bdadc8d00920b163d18
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release history Release notifications | RSS feed

This release

0.0.41 This release

2 release files

0.0.40

1 release file

0.0.25

2 release files

0.0.22

2 release files

0.0.21

2 release files

0.0.11

1 release file

0.0.4

1 release file

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page