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
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
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.
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`.
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.
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']
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!