Animated Now Playing indicator with a compact media card: cover art, a seekable progress bar and transport controls for any MPRIS player.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
EGO-L-003 warning
signals connected by extension should be disconnected in disable()
Signals assigned in `enable()` are missing matching disconnect calls in `disable()` or its helper methods.
extension.js:334
this._frameId = this._timeline.connect('new-frame',
() => this._onFrame())
extension.js:603
this._frameId = this._timeline.connect('new-frame',
() => this._onFrame())
EGO-L-004 warning
main loop sources should be removed in disable()
Main loop sources assigned in `enable()` are missing matching removals in `disable()` or its helper methods.
extension.js:1243
this._artRetryId = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
ART_RETRY_INTERVAL, () => {
this._artRetryTries++;
const artwork = this._artworkIcon(coverUrl);
// A picture that arrived is worth showing even before it can
extension.js:1537
this._pollId = GLib.timeout_add(GLib.PRIORITY_LOW, delayMs, () => {
this._pollId = null;
this._fetchPosition();
this._updatePoll();
return GLib.SOURCE_REMOVE;
})
extension.js:1471
this._seekPendingId = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
SEEK_COALESCE_MS, () => {
this._seekPendingId = null;
this._seekToSlider();
return GLib.SOURCE_REMOVE;
})
extension.js:1166
this._volumePendingId = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
VOLUME_COALESCE_MS, () => {
this._volumePendingId = null;
this._pushVolume();
return GLib.SOURCE_REMOVE;
})
extension.js:2019
this._retryId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, PROPERTY_RETRY_MS,
() => {
this._retryId = null;
missing.forEach(([proxy, iface]) => this._fetchProperties(proxy, iface));
return GLib.SOURCE_REMOVE;
})
| Version | Status |
|---|---|
| 1.0.2 (3) | Unreviewed |
| 1.0.1 (2) | Rejected |
| 1.0 (1) | Unreviewed |
Version 1 (1.0) can be rejected too, it lists GNOME 51 and everything in it is in 1.0.2. It only escaped the automatic rejection because its shell list differs. Changes over 1.0.1 are cosmetic: the volume slider and the loop buttons are hidden by default, and the card in the popup is 24em wide instead of 23em, so a card with every row on stops overrunning its own padding. The two warnings are false positives. Both timelines are disconnected from the actor's destroy handler instead of from disable(): extension.js:262 and 470 connect destroy to _stopTimer() and _stop(), and the disconnects are at 434 and 646. disable() destroys the model, the actors go with it and the handlers with them. Tested on GNOME Shell 50.4 on Fedora and openSUSE Tumbleweed with three MPRIS players at once.