Review of "GNOME Widget Panel" version 0.1.0 (1)

Details Page Preview

Configurable floating GNOME panel with repository-backed widgets.

Extension Homepage
https://github.com/mpashka/gnome-widget-panel/wiki

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 5

Shexli found 5 issues that may need reviewer attention.

EGO-X-004 warning

extensions should avoid synchronous file IO in shell code

Shell code should avoid synchronous file IO APIs like `GLib.file_get_contents()` and `Gio.File.load_contents()`.

File Operations

  • configStore.js:32
    GLib.file_get_contents(path)
  • plugins/ai-agent-usage/claudeHook.js:165
    GLib.file_get_contents(path)
  • plugins/ai-agent-usage/claudeHook.js:195
    GLib.file_get_contents(path)
  • plugins/ai-agent-usage/claudeHook.js:230
    GLib.file_get_contents(path)
  • plugins/ai-agent-usage/claudeHook.js:251
    GLib.file_get_contents(path)
  • plugins/ai-agent-usage/claudeHook.js:286
    GLib.file_get_contents(path)
  • plugins/cpu-load-monitor/cpuGraph.js:92
    GLib.file_get_contents('/proc/stat')
  • plugins/cpu-load-monitor/cpuGraph.js:109
    GLib.file_get_contents(path)
  • plugins/favorites/index.js:51
    GLib.file_get_contents(file)
  • systemInfo.js:37
    file.load_contents(null)

EGO-X-002 warning

extensions should not use synchronous subprocess APIs in shell code

Shell code should avoid synchronous subprocess APIs like `GLib.spawn_command_line_sync()` and `GLib.spawn_sync()`.

Complete Examples

  • systemInfo.js:49
    GLib.spawn_command_line_sync(commandLine)

EGO-P-007 warning

JavaScript files should be reachable from extension.js or prefs.js

Some JavaScript files are not reachable from `extension.js` or `prefs.js` imports.

Don't include unnecessary files

  • plugins/ai-agent-usage/helpers/codex-usage-helper.js
  • plugins/ai-agent-usage/helpers/gemini-usage-helper.js

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:202
            this._fmpQuickToggle.menu.connect('activate', (obj, menuItem) => {
                if (this._fmpQuickToggle.subtitle !== menuItem.label.text) {
                    QUICKSETTINGS.menu.close();
                    this._autoItem.setOrnament(PopupMenu.Ornament.NONE);
                    this._permItem.setOrnam
  • extension.js:235
            this._fmpQuickToggle.connect('clicked', () => {
                QUICKSETTINGS.menu.close();
                if (this._state !== State.OFF) {
                    this._hideFloatingMiniPanel();
                    this._preparePermanentMode(false);
                    this._state = State.OFF;
                    this

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

  • extension.js:316
                GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
                    if (this.visible)
                        this._relocate(false);
                    return GLib.SOURCE_REMOVE;
                })
  • extension.js:325
                GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
                    if (this.visible)
                        this._relocate(false);
                    return GLib.SOURCE_REMOVE;
                })

All Versions

Version Status
0.2.2 (3) Unreviewed
0.2.1 (2) Rejected
0.1.0 (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)
Pasha posted a review
AI-assisted development tools were used for suggestions, code completion, refactoring and review. I am the maintainer and take responsibility for the submitted code: I review and test the changes and can explain and maintain the implementation. I do not submit generated code that I do not understand. The panel host is derived from Floating Mini Panel v8; the upstream attribution and GPL-compatible license are included. I understand the EGO AI guideline. If particular files or patterns triggered the concern, please point them out and I will simplify or correct them before submitting a replacement version.
JustPerfection posted a review
Can you put empty new line between functions and classes so it is easy to read?
Pasha auto- rejected
Auto-rejected because of new version 0.2.1 (2) was uploaded