Review of "DDC Monitor Control" version 2

Details Page Preview

Control external monitor brightness, contrast, volume, input source and color preset over DDC/CI from Quick Settings. Requires ddcutil.

Extension Homepage
https://github.com/kobi3455/ddc-monitor-control

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 4

Shexli found 5 issues that may need reviewer attention.

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

  • libs/libpanel/main.js:576
            this._width_constraint = new Clutter.BindConstraint({
                coordinate: Clutter.BindCoordinate.WIDTH,
                source: null,
            })

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

  • libs/libpanel/main.js:576
            this._width_constraint = new Clutter.BindConstraint({
                coordinate: Clutter.BindCoordinate.WIDTH,
                source: null,
            })

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

  • libs/libpanel/main.js:451
            this.actor.connect('destroy', () => {
                if (this._timeout_id)
                    clearTimeout(this._timeout_id);
            })
  • libs/libpanel/main.js:432
            this.actor.connect_after('notify::allocation', () => {
                if (!this._single_column) {
                    // The `setTimeout` fixes the following warning:
                    // Can't update stage views actor ... is on because it needs an allocation.
                    if ((this._alignment == 

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

  • libs/libpanel/main.js:438
                        this._timeout_id = setTimeout(() => {
                            this._timeout_id = null;
                            this._add_column();
                        }, 0)

EGO-M-004 error

metadata shell-version must only include plausible stable releases and at most one development release

Field `shell-version` contains invalid values, more than one development release, or implausible future releases.

metadata.json must be well-formed

  • metadata.json
    shell-version=['50', '51']

All Versions

Version Status
2 Unreviewed
1 Rejected