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

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) error 1 warning 6 manual_review 1

Shexli found 8 issues that may need reviewer attention.

EGO-C49-003 error

extensions targeting GNOME 49 must not call maximize or unmaximize with Meta.MaximizeFlags

This extension explicitly targets GNOME Shell 49 but still passes `Meta.MaximizeFlags` to `maximize()` or `unmaximize()`.

Meta.Window

  • emulateX11WindowType.js:81
    window.maximize(Meta.MaximizeFlags.VERTICAL)
  • emulateX11WindowType.js:95
    window.maximize(Meta.MaximizeFlags.HORIZONTAL)

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:400
    processUser.load_bytes(null)

EGO-A-005 manual_review

extensions should not access the clipboard directly

Direct clipboard access via `St.Clipboard.get_default()` requires reviewer scrutiny.

Review Guidelines

  • extension.js:33
    St.Clipboard.get_default()

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-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/desktopIconsUtil.js
  • app/desktopManager.js
  • app/ding.js
  • app/enums.js
  • app/fileItem.js
  • app/fileItemMenu.js
  • app/fileUtils.js
  • app/notifyX11UnderWayland.js
  • app/preferences.js
  • app/prefswindow.js
  • app/promiseUtils.js
  • app/showErrorPopup.js
  • app/signalManager.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:412
    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:51
    window.connect_after('raised', () => {
                if (this._keepAtBottom && !this._keepAtTop) {
                    this._window.lower();
                }
            })

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:107
            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

JustPerfection active
JustPerfection posted a review
Please remove `schemas/gschemas.compiled`. Not needed for 45+ packages.