Review of "DDC Monitor Control" version 1

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.

FAQ

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 5

Shexli found 6 issues that may need reviewer attention.

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

  • libs/libpanel/gschemas.compiled
    libs/libpanel/gschemas.compiled

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

  • extension.js:328
    this._indicator = new Indicator(this._displays)
  • extension.js:266
    this._settings = this.getSettings()
  • 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

  • extension.js:139
    slider.connect('drag-begin', () => (slider._ddcDragging = true))
  • extension.js:140
            slider.connect('drag-end', () => {
                slider._ddcDragging = false;
                this._apply(code);
            })
  • extension.js:133
            slider.connect('notify::value', () => {
                percent.text = `${Math.round(slider.value * 100)}%`;
                if (slider._blockDdcWrite || slider._ddcDragging)
                    return;
                this._queueApply(code);
            })
  • 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

Previous Reviews on this Version

kobi3455 auto- rejected
Auto-rejected because of new version 2 was uploaded