Skip to main content

Spotify Overlay

A minimal, always-on-top Spotify overlay for Linux.

screenshot

Watch the demo video here!

Click on the link below to see the DEMO. The link is not broken, PyPI does not support video previews.

https://cdn.hackclub.com/019de041-8640-7c8e-b268-1b31af582144/spotifyoverlaydemo.mp4

or watch demo on youtube: https://www.youtube.com/watch?v=lz-RwL30tBo


Features

  • Album art, track title, artist, and album name
  • Playback controls (play/pause, next, previous, shuffle, repeat)
  • Progress bar with seek support
  • Search Spotify directly from the overlay
  • Always on top overlay (KDE Plasma)
  • Communicates with Spotify via D-Bus (MPRIS)
  • System tray icon for toggle / quit
  • Global keybind support with a Unix socket

Requirements

  • Linux with D-Bus
  • Spotify desktop client (the offcial on of course)
  • Python 3.10+
  • KDE Plasma (for the always-on-top behavior; the overlay still runs but staying on- op isn't guaranteed)
  • qdbus6 available on PATH (comes with Qt 6 / KDE Plasma 6)

Installation

From PyPI

pip install spotify-overlay
spotify-overlay --install

The --install adds Spotify Overlay to your application launcher (creates a .desktop entry and installs the icon under ~/.local/share/) so you can launch it like a normal app!

From source

git clone https://github.com/maker-lukas/spotify-overlay.git
cd spotify-overlay
pip install .
spotify-overlay --install

First Launch

  1. Make sure Spotify is running.
  2. Launch Spotify Overlay from your application menu, or run it from a terminal:
    spotify-overlay
    
  3. The overlay window appears and a system tray icon is added.

The overlay is designed to be always running in the background — you toggle it open/closed as needed via the tray icon or a global keybind (see below). Closing the overlay window only hides it; the app keeps running in the tray.


Tray Icon

Once the app is running, look for the Spotify Overlay icon in your system tray:

  • Left-click the tray icon → toggle the overlay (show/hide)
  • Right-click the tray icon → menu with:
    • Help — shows the in-app keybind cheat sheet
    • Quit — fully exits the app (this is the only way to quit; closing the window just hides it)

Setting Up a Global Keybind to Toggle the Overlay

Spotify Overlay listens on a Unix socket so any external command can toggle it. The socket lives at:

/run/user/<your-uid>/spotify-overlay

For most single-user systems your UID is 1000, so the path is /run/user/1000/spotify-overlay. You can confirm with id -u.

Any connection to this socket toggles the overlay. The simplest trigger command is:

nc -U /run/user/1000/spotify-overlay </dev/null

(socat - UNIX-CONNECT:/run/user/1000/spotify-overlay works too.)

Binding it to a hotkey

The exact menu names depend on your desktop environment / window manager, but the command you bind is always the same:

sh -c "nc -U /run/user/1000/spotify-overlay </dev/null"

(Replace 1000 with your UID from id -u if it differs.)

Common ways to bind it:

  • KDE Plasma: System Settings → Shortcuts → Custom Shortcuts → Edit → New → Global Shortcut → Command/URL. Set a trigger key, paste the command above as the action.
  • GNOME: Settings → Keyboard → Keyboard Shortcuts → Custom Shortcuts → +. Name it, paste the command, assign a key.

Make sure spotify-overlay is already running (autostarted, or launched once from the menu). The socket only exists while the app is running.

Keyboard Shortcuts (while overlay is focused)

Key Action
Space Play / Pause
→ Next track
← Previous track
↑ Cycle repeat mode (None → Playlist → Track)
↓ Toggle shuffle
Ctrl+F or / Open the search bar
Enter (in search) Submit search (opens results in Spotify)
Esc Close search bar / hide overlay

Clicking the track title, artist, or album opens the corresponding page or search in the Spotify desktop client.


Quitting

Closing the overlay window (clicking outside it, pressing Esc, etc.) only hides it — the app stays alive in the tray so the global keybind keeps working.

To fully quit, right click the tray icon and click Quit.


Metadata

Release files for spotify-overlay 1.0.11

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

Source distribution (sdist)

Source distribution for spotify-overlay 1.0.11
File Size Uploaded
spotify_overlay-1.0.11.tar.gz 19.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for spotify-overlay 1.0.11
File Interpreter ABI Platform
spotify_overlay-1.0.11-py3-none-any.whl Python 3 none any Details

Total release size: 40.4 kB

Release files / spotify_overlay-1.0.11.tar.gz

Download URL spotify_overlay-1.0.11.tar.gz
Size 19.4 kB
Tags Source
SHA-256 checksum
How to use checksums
16af9814a56418944bf7a775a80294bbca9b755fe4c9c904bf2626a1f9e4a352
BLAKE2b-256 checksum
How to use checksums
cad0693d8d502e5bebeec0a3d6f10260e940f539f51a6e6bbffd10b1ed59f53e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Release files / spotify_overlay-1.0.11-py3-none-any.whl

Download URL spotify_overlay-1.0.11-py3-none-any.whl
Size 21.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
acd6cc309ae0a4e5bd22f2fed33bf698046cc60407372e9cafe3453cbe2e7f66
BLAKE2b-256 checksum
How to use checksums
23cd67a09483e71c87d6a1a40f092e72ace51df8fd0a219a52308123b94cf321
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Release history Release notifications | RSS feed

This release

1.0.11 This release

2 release files

1.0.10

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

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