Review of "Desktop Icons NG (DING)" version 86

Details Page Preview

Adds icons to the desktop. Fork of the original Desktop Icons extension, with several enhancements .

Extension Homepage
https://gitlab.com/rastersoft/desktop-icons-ng

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) warning 5

Shexli found 5 issues that may need reviewer attention.

EGO-X-004 warning

extensions should avoid synchronous file IO in shell code

Shell code should avoid synchronous file IO APIs like `GLib.file_get_contents()` and `Gio.File.load_contents()`.

File Operations

  • extension.js:290
    processUser.load_bytes(null)

EGO-P-007 warning

JavaScript files should be reachable from extension.js or prefs.js

Some JavaScript files are not reachable from `extension.js` or `prefs.js` imports.

Don't include unnecessary files

  • app/askRenamePopup.js
  • app/autoAr.js
  • app/createThumbnail.js
  • app/dbusInterfaces.js
  • app/dbusUtils.js
  • app/desktopGrid.js
  • app/desktopIconItem.js
  • app/desktopIconsIntegration.js
  • app/desktopIconsUtil.js
  • app/desktopManager.js
  • app/desktopMenu.js
  • app/ding.js
  • app/dndClipboardUtils.js
  • app/enums.js
  • app/fileItem.js
  • app/fileItemMenu.js
  • app/fileUtils.js
  • app/menuHelper.js
  • app/notifyX11UnderWayland.js
  • app/preferences.js

EGO-L-001 warning

extension must not create GObject instances or modify shell before enable()

Resource creation or signal/source setup was found outside `enable()`.

Only use initialization for static resources

  • extension.js:302
    new Gio.Subprocess({ argv: ['/bin/kill', filename] })

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

  • emulateX11WindowType.js:53
    window.connect('notify::title', () => {
                this._parseTitle();
            })

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

  • emulateX11WindowType.js:63
            this._moveIntoPlaceID = GLib.timeout_add(GLib.PRIORITY_LOW, 250, () => {
                if (this._fixed && (this._x !== null) && (this._y !== null)) {
                    this._window.move_frame(true, this._x, this._y);
                }
                this._moveIntoPlaceID = 0;
                return GLib.SO

All Versions

Previous Reviews on this Version

rastersoft auto- rejected
Auto-rejected because of new version 87 was uploaded
JustPerfection active
1. Please add to the description that this extension is using clipboard: [EGO Review Guidelines: Clipboard](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#clipboard-access-must-be-declared) 2. For the first shexli issue, you can use [load_bytes_async](https://gjs-docs.gnome.org/gio20~2.0/gio.file#method-load_bytes_async) 3. The app should be moved to ESM at some point though.