Adds a Spotify panel widget, customizable desktop widgets, and optional Spotify ad muting.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
EGO-P-006 warning
unnecessary build and translation artifacts should not be shipped
Package contains files that often should not be shipped for review.
Don't include unnecessary files
locale/pl/LC_MESSAGES/spotify-widgets@rubik.po
locale/pl/LC_MESSAGES/spotify-widgets@rubik.po
EGO-L-005 warning
owned object references should be released in disable()
Owned references that are cleaned up in `disable()` should also be released with `null` or `undefined`.
extension.js:4125
this.settings = this.getSettings()
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:2572
actor.connect('button-press-event', (actor, event) => {
if (event.get_button() !== 1 || state.locked)
return Clutter.EVENT_PROPAGATE;
let source = event.get_source?.() || null;
while (source) {
if (
extension.js:2615
actor.connect('button-release-event', () => {
if (!state.dragging)
return Clutter.EVENT_PROPAGATE;
state.dragging = false;
let [x, y] = actor.get_position();
this._updateDesktopWidgetConfig(config.id, {
extension.js:1433
actor.connect("destroy", () => {
this._backgroundActors.delete(actor);
})
extension.js:2595
actor.connect('motion-event', (actor, event) => {
if (!state.dragging)
return Clutter.EVENT_PROPAGATE;
let eventState = event.get_state();
if (!(eventState & Clutter.ModifierType.BUTTON1_MASK)) {
st
extension.js:3538
btn.connect('button-press-event', () => {
btn.ease({
scale_x: 1.2,
scale_y: 1.2,
duration: 140,
mode: Clutter.AnimationMode.EASE_OUT_QUAD
});
extension.js:3548
btn.connect('button-release-event', () => {
resetScale();
return Clutter.EVENT_PROPAGATE;
})
extension.js:3552
btn.connect('clicked', resetScale)
extension.js:3510
btn.connect('enter-event', () => {
bg.ease({
opacity: 255,
duration: 150,
mode: Clutter.AnimationMode.EASE_OUT_QUAD
});
})
extension.js:3517
btn.connect('leave-event', () => {
bg.ease({
opacity: 0,
duration: 150,
mode: Clutter.AnimationMode.EASE_OUT_QUAD
});
})
extension.js:3553
btn.connect('leave-event', resetScale)
extension.js:2553
state.progressBar.connect('button-press-event', (actor, event) => {
this._beginMultiSeek(event, state);
return Clutter.EVENT_STOP;
})
extension.js:2263
compact.button.connect('button-release-event', (actor, event) => {
if (event.get_button() !== 1)
return Clutter.EVENT_PROPAGATE;
actor.remove_all_transitions();
actor.set_scale(1, 1);
extension.js:2559
state.progressBar.connect('button-release-event', (actor, event) => {
this._finishMultiSeek(event);
return Clutter.EVENT_STOP;
})
extension.js:2523
state.progressBar.connect('enter-event', (actor, event) => {
if (state.progressThumb)
state.progressThumb.visible = true;
if (state.progressTooltip)
state.progressTooltip.visible = true;
this._updateM
extension.js:2532
state.progressBar.connect('leave-event', () => {
if (this._multiSeekingState === state)
return Clutter.EVENT_PROPAGATE;
if (state.progressThumb)
state.progressThumb.visible = false;
if (state.progres
extension.js:2544
state.progressBar.connect('motion-event', (actor, event) => {
if (this._multiSeekingState === state)
this._updateMultiSeekDrag(event);
else
this._updateMultiProgressTooltip(event, state);
return Clut
extension.js:2032
state.lyricsViewport.connect('scroll-event', (actor, event) => {
let direction = event.get_scroll_direction();
let delta = 0;
if (direction === Clutter.ScrollDirection.DOWN)
delta = 36;
else if (direction === Clutter.ScrollDire
EGO-L-006 warning
preferences classes should not retain window-scoped objects on instance fields without close-request cleanup
Preferences code stores window-scoped objects on the exported prefs class without `close-request` cleanup.
prefs.js:678
this.settings = this.getSettings()
| Version | Status |
|---|---|
| 3 | Unreviewed |
| 2 | Rejected |
| 1 | Rejected |