When designing a Conky theme, one of the most frequently requested features is media control. Imagine a desktop setup with a live music section — showing the currently playing track, with real-time updates, play/pause status, and maybe even clickable areas. Themes like Mimosa Dark are perfect candidates for this kind of interaction.
But for that to work, we need a lightweight bridge between Conky and your media player. This is where playerctl
comes into play. It's a simple, scriptable command-line utility that speaks the language of media players — perfect for lightweight desktops and minimal setups.
What is Playerctl?
playerctl
is a command-line utility that interfaces with media players using the MPRIS (Media Player Remote Interfacing Specification) protocol. It works with a wide range of players, including:
- Spotify
- VLC
- Rhythmbox
- Clementine
- MPV
- Firefox (yes, even YouTube tabs)
Key Features:
- Retrieve metadata: title, artist, album
- Control playback: play, pause, next, previous
- List available players or control a specific one
- Compatible with Conky through
${exec}
or${execi}
Installing Playerctl
Ubuntu / Debian:
sudo apt update
sudo apt install playerctl
Arch / Manjaro:
sudo pacman -S playerctl
Fedora:
sudo dnf install playerctl
openSUSE:
sudo zypper install playerctl
Void Linux:
sudo xbps-install -S playerctl
Nix / NixOS:
nix-env -iA nixpkgs.playerctl
Uninstall:
Use your distro’s package manager. For example, on Ubuntu:
sudo apt remove playerctl
Using Playerctl in Conky
1. Display Current Track Title
${exec playerctl metadata title}
2. Display Artist and Album
${exec playerctl metadata artist}
${exec playerctl metadata album}
3. Show Playback Status
${exec playerctl status}
Values can be: Playing
, Paused
, or Stopped
.
4. Control Playback (used with scripting):
playerctl play-pause
playerctl next
playerctl previous
Example: Adding Playerctl to a Conky Theme
Let’s say you want to include a Now Playing section in your Mimosa Amethyst theme:
Now Playing:
${color #ff77ff}${exec playerctl metadata artist} - ${exec playerctl metadata title}
${color #999999}${exec playerctl metadata album}
To show this only when a track is actually playing:
${if_match "${exec playerctl status}" == "Playing"}
🎶 ${exec playerctl metadata artist} - ${exec playerctl metadata title}
${endif}
Why Use Playerctl in Conky?
- Lightweight: Perfect for resource-conscious environments.
- Flexible: Can be used in scripts, Lua, or direct Conky calls.
- Universal: Works with nearly every major Linux media player.
- Customizable: Integrate with any theme aesthetic.
Tips & Notes
- Ensure MPRIS is enabled in your media player. Firefox may need additional configuration or extensions.
- If multiple players are running, specify one with:
playerctl -p spotify metadata title
- Use Unicode icons (▶, ⏸, ⏹) or styled bitmap graphics to enhance your theme's look.
Closing Thoughts
playerctl
is a small but powerful tool — essential if you want your Conky themes to display real-time music information or interact with media controls. It’s easy to use, scriptable, and supports most Linux players out-of-the-box.
For theme creators like you, it opens the door to dynamic, responsive desktop setups. Whether it’s Mimosa Verdant or Another my conky themes, adding media integration gives your theme life — turning your desktop into a personal, living dashboard.
Related article
The application I used when creating the Conky theme:
▶ JQ Command: Parsing JSON for Dynamic Conky Widgets
0 Comments