Review of "Random Wallpaper" version 39

Details Page Preview

Load new desktop wallpapers from various online sources with ease! **Features:** Various configurable wallpaper sources * Unsplash * Wallhaven * Reddit * Basically any JSON API/File (Examples) * * Chromecast Images * * NASA Picture of the day * * Bing Picture of the day * * Google Earth View * Local folders * Static URLs Multiple sources to create a pool of sources History of previous images * Save your favourite wallpaper * Add images to a block list Set the lock screen background Timer based renewal (Auto-Fetching) * Load a new wallpaper on startup * Pause the timer when desired Support for multiple monitors using third party tools * Hydra Paper * Superpaper Execute a custom command after every new wallpaper (Examples) Request new wallpapers with a keyboard shortcut/hotkey (Guide)

Extension Homepage
https://github.com/ifl0w/RandomWallpaperGnome3

No comments.

Diff Against

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

Shexli (experimental) error 2 warning 7

Shexli found 9 issues that may need reviewer attention.

EGO-X-006 warning

extensions should not use lookupByURL or lookupByUUID for current extension access

Use `this`, `this.getSettings()` or `this.path` instead of `lookupByURL()` or `lookupByUUID()` for the current extension.

`extensionUtils`

  • prefs.js:49
    ExtensionPreferences.lookupByURL(import.meta.url)
  • prefs.js:160
    ExtensionPreferences.lookupByURL(import.meta.url)
  • randomWallpaperMenu.js:117
    Extension.lookupByURL(import.meta.url)
  • wallpaperController.js:51
    Extension.lookupByURL(import.meta.url)

EGO-P-006 warning

unnecessary build and translation artifacts should not be shipped

Compiled GSettings schemas should not be shipped for 45+ packages.

Don't include unnecessary files

  • schemas/gschemas.compiled
    schemas/gschemas.compiled

EGO-P-004 error

GSettings schema XML filename must match schema id

GSettings schema filename must match `<schema-id>.gschema.xml`.

GSettings Schemas

  • schemas/org.gnome.shell.extensions.space.iflow.randomwallpaper.gschema.xml
    id='org.gnome.shell.extensions.space.iflow.randomwallpaper.backend-connection' path='/org/gnome/shell/extensions/space-iflow-randomwallpaper/backend-connection/'
  • schemas/org.gnome.shell.extensions.space.iflow.randomwallpaper.gschema.xml
    id='org.gnome.shell.extensions.space.iflow.randomwallpaper.sources.general' path=''
  • schemas/org.gnome.shell.extensions.space.iflow.randomwallpaper.gschema.xml
    id='org.gnome.shell.extensions.space.iflow.randomwallpaper.sources.unsplash-api-key' path=''
  • schemas/org.gnome.shell.extensions.space.iflow.randomwallpaper.gschema.xml
    id='org.gnome.shell.extensions.space.iflow.randomwallpaper.sources.wallhaven' path=''
  • schemas/org.gnome.shell.extensions.space.iflow.randomwallpaper.gschema.xml
    id='org.gnome.shell.extensions.space.iflow.randomwallpaper.sources.reddit' path=''
  • schemas/org.gnome.shell.extensions.space.iflow.randomwallpaper.gschema.xml
    id='org.gnome.shell.extensions.space.iflow.randomwallpaper.sources.genericJSON' path=''
  • schemas/org.gnome.shell.extensions.space.iflow.randomwallpaper.gschema.xml
    id='org.gnome.shell.extensions.space.iflow.randomwallpaper.sources.localFolder' path=''
  • schemas/org.gnome.shell.extensions.space.iflow.randomwallpaper.gschema.xml
    id='org.gnome.shell.extensions.space.iflow.randomwallpaper.sources.urlSource' path=''

EGO-P-002 error

GSettings schema path must use /org/gnome/shell/extensions base

GSettings schema path must start with `/org/gnome/shell/extensions`.

GSettings Schemas

  • schemas/org.gnome.shell.extensions.space.iflow.randomwallpaper.gschema.xml
    id='org.gnome.shell.extensions.space.iflow.randomwallpaper.sources.general' path=''
  • schemas/org.gnome.shell.extensions.space.iflow.randomwallpaper.gschema.xml
    id='org.gnome.shell.extensions.space.iflow.randomwallpaper.sources.unsplash-api-key' path=''
  • schemas/org.gnome.shell.extensions.space.iflow.randomwallpaper.gschema.xml
    id='org.gnome.shell.extensions.space.iflow.randomwallpaper.sources.wallhaven' path=''
  • schemas/org.gnome.shell.extensions.space.iflow.randomwallpaper.gschema.xml
    id='org.gnome.shell.extensions.space.iflow.randomwallpaper.sources.reddit' path=''
  • schemas/org.gnome.shell.extensions.space.iflow.randomwallpaper.gschema.xml
    id='org.gnome.shell.extensions.space.iflow.randomwallpaper.sources.genericJSON' path=''
  • schemas/org.gnome.shell.extensions.space.iflow.randomwallpaper.gschema.xml
    id='org.gnome.shell.extensions.space.iflow.randomwallpaper.sources.localFolder' path=''
  • schemas/org.gnome.shell.extensions.space.iflow.randomwallpaper.gschema.xml
    id='org.gnome.shell.extensions.space.iflow.randomwallpaper.sources.urlSource' path=''

EGO-L-002 warning

objects created by extension should be destroyed in disable()

Objects assigned in `enable()` are missing matching `.destroy()` calls in `disable()` or its helper methods.

Destroy all objects

  • historyMenuElements.js:432
            this.icon = new St.Icon({
                icon_name: 'preferences-desktop-wallpaper-symbolic',
                style_class: 'system-status-icon',
            })
  • randomWallpaperMenu.js:27
    this.previewSection = new PopupMenu.PopupMenuSection()
  • randomWallpaperMenu.js:28
    this.previewSeparator = new PopupMenu.PopupSeparatorMenuItem()

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`.

Destroy all objects

  • historyMenuElements.js:432
            this.icon = new St.Icon({
                icon_name: 'preferences-desktop-wallpaper-symbolic',
                style_class: 'system-status-icon',
            })
  • randomWallpaperMenu.js:30
    this._panelMenu = new PanelMenu.Button(0, 'Random wallpaper')
  • randomWallpaperMenu.js:27
    this.previewSection = new PopupMenu.PopupMenuSection()
  • randomWallpaperMenu.js:28
    this.previewSeparator = new PopupMenu.PopupSeparatorMenuItem()
  • settings.js:31
    this._settings = extensionObject.getSettings(schemaId)

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.

Disconnect all signals

  • historyMenuElements.js:196
            this.menu.connect('open-state-changed', (_unused, open) => {
                if (open && this._checkAlreadySaved()) {
                    copyToFavorites.sensitive = false;
                    copyToFavorites.label.set_text(_('Already Saved!'));
                }
                else {
                    copyToFav
  • randomWallpaperMenu.js:126
            this._panelMenu.menu.connect('open-state-changed', (_unused, open) => {
                if (open)
                    newWallpaperItem.show();
            })

EGO-L-008 warning

Soup.Session instances should be aborted during cleanup

Soup.Session instances should be aborted during cleanup.

Soup.Session.abort

  • soupBowl.js:12
    this._session = new Soup.Session()

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.

Remove main loop sources

  • wallpaperController.js:85
            GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE, () => {
                // This may start the timer which might load a new wallpaper on interval surpassed
                this._updateAutoFetching();
                // load a new wallpaper on startup, but don't when the timer already fetched one because of a s

All Versions

Version Status
39 Active
38 Rejected
37 Rejected
36 Active
35 Active
34 Active
33 Rejected
32 Active
31 Active
30 Active
29 Rejected
28 Active
27 Active
26 Active
25 Active
24 Active
23 Rejected
22 Active
21 Active
20 Active
19 Active
18 Active
17 Active
16 Active
15 Rejected
14 Active
13 Active
12 Rejected
11 Active
10 Active
9 Active
8 Active
7 Inactive
6 Rejected
5 Rejected
4 Active
3 Active
2 Active
1 Active

Previous Reviews on this Version

iflow.space posted a review
Regarding the shexli errors: there are multiple GSettings Schemas in the schema file but the main schema should be in line with the requirements.
fmuellner active
Yeah, shexli struggles with more obscure GSettings usage, like child- or relocatable schemas. Some of the warnings would be good to address though.