Review of "Lamplight" version 0.3.0 (3)

Details Page Preview

RGB keyboard lighting for laptops and devices with Windows Dynamic Lighting (HID LampArray), such as ASUS Vivobook S models: effects, colors, brightness and speed, in sync with the Fn backlight keys. After installing, open the Lighting tile and choose "Set up keyboard access" once (asks for your password). Needs Python 3 with PyGObject, which GNOME systems normally have. Settings (live preview, color calibration) are behind the gear icon. More: https://github.com/egeisik35/lamplight

Extension Homepage
https://github.com/egeisik35/lamplight

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 3

Shexli found 4 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

  • extension.js:126
    this._brightness = new SliderRow('display-brightness-symbolic', 'Brightness')
  • extension.js:120
    this._color = new ColorRow('Color', SWATCHES, hex => this._pickColor('color', hex))
  • extension.js:122
            this._color2 = new ColorRow('Second color', ['000000', ...SWATCHES.slice(0, 8)],
                hex => this._pickColor('color2', hex))
  • extension.js:140
    this._direction = new PopupMenu.PopupSubMenuMenuItem('', false)
  • extension.js:114
    this._modeMenu = new PopupMenu.PopupSubMenuMenuItem('', false)
  • extension.js:133
    this._speed = new SliderRow('media-seek-forward-symbolic', 'Speed')

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:126
    this._brightness = new SliderRow('display-brightness-symbolic', 'Brightness')
  • extension.js:120
    this._color = new ColorRow('Color', SWATCHES, hex => this._pickColor('color', hex))
  • extension.js:122
            this._color2 = new ColorRow('Second color', ['000000', ...SWATCHES.slice(0, 8)],
                hex => this._pickColor('color2', hex))
  • extension.js:140
    this._direction = new PopupMenu.PopupSubMenuMenuItem('', false)
  • extension.js:114
    this._modeMenu = new PopupMenu.PopupSubMenuMenuItem('', false)
  • extension.js:133
    this._speed = new SliderRow('media-seek-forward-symbolic', 'Speed')

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:162
            sub.connect('open-state-changed', (_m, isOpen) => {
                if (!isOpen && this._picking === item) {
                    this._picking = null;
                    this.sync();
                }
            })

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=['48', '49', '50', '51']

All Versions

Version Status
0.3.0 (3) Unreviewed
2 Rejected
1 Inactive

Previous Reviews on this Version

gedold posted a review
Hi! Notes for review: lamplight.py is a small Python helper that talks to the keyboard through /dev/hidraw (HID feature reports via ioctl), which GJS can't do; it only drives HID LampArray (usage page 0x59) devices. "Set up keyboard access" runs pkexec once, only when the user clicks it, to install a udev rule (TAG+="uaccess") for the detected device. Shexli flags shell-version 51, but 51 is the current stable release (tested on 51.1). The tile is destroyed via Indicator.destroy(). Thanks!