Take control of all your music and media from one stylish spot in your GNOME panel — no more switching windows just to skip a track. 🎵 What it does • Play, pause, skip, shuffle, and repeat without opening any app • Works with Spotify, YouTube, VLC, Rhythmbox, browsers, and anything that supports MPRIS • Handles multiple players at once — switch between them with tabs in the popup 🎨 Vinyl record effect • Double-click the album art to turn any app’s cover into a spinning vinyl disc • Animated tonearm glides in when music plays and parks when it stops • Each app remembers its own vinyl setting independently — Spotify can spin while your browser stays flat 🎤 Time-synced lyrics ← New • Triple-click the album art to instantly show scrolling lyrics for the current song • Lyrics are fetched automatically from lrclib.net (free, no account needed) • The active line is highlighted and centred; the view scrolls smoothly as the song progresses • Single-click anywhere on the lyrics panel to return to the album art • Each player tab remembers its own lyrics preference independently ✨ More highlights • Panel shows the current track and artist with smooth marquee scrolling • Browser web apps (YouTube Music, Spotify Web, SoundCloud) tracked separately per tab • All seen apps are remembered — re-enable vinyl or lyrics for any of them at any time • Clean, native GNOME design — fits perfectly in any shell theme • New: player tabs and vinyl art synced slider • New: element order changer • New: dynamic panel label width • New: centre-aligned track info • New: font family, style, size, and colour customiser • New: monochrome icons
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
| Version | Status |
|---|---|
| 6.5 (31) | Active |
| 6.5 (30) | Rejected |
| 6.5 (29) | Rejected |
| 6.5 (28) | Rejected |
| 6.5 (27) | Rejected |
| 6.5 (26) | Rejected |
| 6.5 (25) | Rejected |
| 6.5 (24) | Rejected |
| 6.0 (23) | Rejected |
| 6.0 (22) | Rejected |
| 6.0 (21) | Rejected |
| 20 | Active |
| 19 | Rejected |
| 18 | Rejected |
| 17 | Active |
| 16 | Rejected |
| 15 | Active |
| 14 | Active |
| 13 | Active |
| 12 | Active |
| 11 | Rejected |
| 10 | Rejected |
| 9 | Rejected |
| 8 | Active |
| 7 | Active |
| 6 | Rejected |
| 5 | Rejected |
| 4 | Rejected |
| 3 | Rejected |
| 2 | Rejected |
| 1 | Rejected |
Yeah, that's fair, those two were cruft. I was killing the _addPlayer override and poking at _onProxyReady in both to make sure they refreshed themselves; kind of a "better safe than sorry" thing. Except, of course, it wasn't necessary, since the DBus signal handling would just add them again once it knew the injection had been removed by Mpris. So, I was forcing a fix for something that didn't even need it! Removed both, no change in behavior, they didn't do anything critical
1. Avoid optional chaining for something that is always there. Something like `Main.panel.statusArea?.quickSettings` don't need `?.`. You are doing it all over the code. 2. Still many lines using unnecessary try-catch and checks.