Review of "Keychron K5 Pro Controls" version 1

Details Page Preview

Panel controls, battery status, lighting profiles and wired VIA RGB controls for the Keychron K5 Pro.

Extension Homepage
https://github.com/Royza/Keychron-K5-Pro-Gnome-Ext

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) warning 3

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

  • controller.js:141
    this._statusItem = new PopupMenu.PopupMenuItem('Keyboard', {reactive: false})

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

  • controller.js:141
    this._statusItem = new PopupMenu.PopupMenuItem('Keyboard', {reactive: false})

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

  • controller.js:126
            this.menu.connect('open-state-changed', (_menu, open) => {
                if (open)
                    this._extension.refreshState();
                else
                    this._extension.flushPendingLightingSave();
            })

All Versions

Version Status
5 Unreviewed
4 Rejected
3 Rejected
2 Active
1 Rejected

Previous Reviews on this Version

JustPerfection waiting for author
Is this code generated by AI? If so, we have a rule for that: - [EGO Review Guidelines: AI](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#extensions-must-not-be-ai-generated) - [Extensions Best Practices Guidelines](https://gjs.guide/extensions/review-guidelines/best-practices.html#submissions-require-maintainership)
Roizo posted a review
I used AI through Cursor/Codex during development and refactoring of the extension, mainly to help capture and convert existing information, work around the official Keychron launcher not working in all browsers, and debug it for the hardware I actually use. The extension has been tested locally on my own K5 Pro. I understand that the requirement is that I need to be able to maintain and debug the submitted code myself, and I’ll continue maintaining it on GitHub regardless of the outcome here. If the amount of AI assistance used means the current submission isn’t eligible, I'll withdraw the extension and keep it for personal use. Let me know if that’s your decision, or if there’s anything else you need from me.
JustPerfection rejected
1. Timeout should be removed on destroy and before creating a new one (line 402 `hid.js`): [EGO Review Guidelines: Timeout](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#remove-main-loop-sources) 2. `this._enabled` is a bad practice. Please remove that: [Extension Best Practices Guidelines](https://gjs.guide/extensions/review-guidelines/best-practices.html) If you need any help with your extension you can ask us on: - [GNOME Extensions Matrix Channel](https://matrix.to/#/#extensions:gnome.org) - IRC Bridge: irc://irc.gimpnet.org/shell-extensions