Review of "GNOME Launcher" version 1.0 (1)

Details Page Preview

Fast, lightweight, highly customizable launcher with fuzzy search, custom commands and actions, themes, an emoji picker, clipboard images, a password vault and optional file search.

Extension Homepage
https://github.com/MaouNour/gnome-app-launcher-extension

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 3 manual_review 2

Shexli found 6 issues that may need reviewer attention.

EGO-A-005 manual_review

extensions should not access the clipboard directly

Direct clipboard access via `St.Clipboard.get_default()` requires reviewer scrutiny.

Review Guidelines

  • clipboard/history.js:333
    St.Clipboard.get_default()
  • clipboard/history.js:770
    St.Clipboard.get_default()
  • clipboard/history.js:821
    St.Clipboard.get_default()
  • clipboard/history.js:833
    St.Clipboard.get_default()
  • emoji/paste.js:46
    St.Clipboard.get_default()

EGO-A-001 manual_review

extension code must not be minified or obfuscated

File appears obfuscated: 64% of identifiers are 1–2 characters (avg length 2.8).

Code must not be obfuscated

  • clipboard/image.js
    short identifier ratio: 64%, identifiers scored: 162

EGO-X-003 warning

extensions should not call run_dispose in extension code

Extension code should not call `run_dispose()`.

GObject.Object.run_dispose

  • emoji/paste.js:123
    this._dev?.run_dispose?.()

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

  • ui/launcher.js:184
    this.actor = new St.Bin({reactive: true, child: this.label})
  • ui/launcher.js:183
    this.label = new St.Label({x_align: Clutter.ActorAlign.CENTER, y_align: Clutter.ActorAlign.CENTER})
  • ui/launcher.js:227
    this.actor = new St.BoxLayout({vertical: true, x_expand: true})
  • ui/launcher.js:229
    this.header = new St.Bin({child: this.title, x_expand: true, visible: false})
  • ui/launcher.js:230
    this.line = new St.BoxLayout({x_expand: true})
  • ui/launcher.js:228
    this.title = new St.Label({x_align: Clutter.ActorAlign.START, y_align: Clutter.ActorAlign.END})
  • ui/launcher.js:269
    this.actor = new St.BoxLayout({reactive: true, x_expand: true})
  • ui/launcher.js:274
    this.glyph = new St.Label({visible: false, y_align: Clutter.ActorAlign.CENTER})
  • ui/launcher.js:270
    this.icon = new St.Icon({fallback_icon_name: FALLBACK_ICON, x_align: Clutter.ActorAlign.CENTER})
  • ui/launcher.js:272
    this.iconBox = new St.BoxLayout({vertical: true, y_align: Clutter.ActorAlign.CENTER})
  • ui/launcher.js:280
    this.mark = new St.Widget({y_align: Clutter.ActorAlign.CENTER, visible: false})
  • ui/launcher.js:277
    this.sub = new St.Label({x_expand: true})
  • ui/launcher.js:278
    this.tag = new St.Label({y_align: Clutter.ActorAlign.CENTER})
  • ui/launcher.js:275
    this.text = new St.BoxLayout({vertical: true, x_expand: true, y_align: Clutter.ActorAlign.CENTER})
  • ui/launcher.js:276
    this.title = new St.Label({x_expand: true})

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:122
    this._iface = new Gio.Settings({schema_id: 'org.gnome.desktop.interface'})
  • ui/launcher.js:184
    this.actor = new St.Bin({reactive: true, child: this.label})
  • ui/launcher.js:183
    this.label = new St.Label({x_align: Clutter.ActorAlign.CENTER, y_align: Clutter.ActorAlign.CENTER})
  • ui/launcher.js:227
    this.actor = new St.BoxLayout({vertical: true, x_expand: true})
  • ui/launcher.js:229
    this.header = new St.Bin({child: this.title, x_expand: true, visible: false})
  • ui/launcher.js:230
    this.line = new St.BoxLayout({x_expand: true})
  • ui/launcher.js:228
    this.title = new St.Label({x_align: Clutter.ActorAlign.START, y_align: Clutter.ActorAlign.END})
  • ui/launcher.js:269
    this.actor = new St.BoxLayout({reactive: true, x_expand: true})
  • ui/launcher.js:274
    this.glyph = new St.Label({visible: false, y_align: Clutter.ActorAlign.CENTER})
  • ui/launcher.js:270
    this.icon = new St.Icon({fallback_icon_name: FALLBACK_ICON, x_align: Clutter.ActorAlign.CENTER})
  • ui/launcher.js:272
    this.iconBox = new St.BoxLayout({vertical: true, y_align: Clutter.ActorAlign.CENTER})
  • ui/launcher.js:280
    this.mark = new St.Widget({y_align: Clutter.ActorAlign.CENTER, visible: false})
  • ui/launcher.js:277
    this.sub = new St.Label({x_expand: true})
  • ui/launcher.js:278
    this.tag = new St.Label({y_align: Clutter.ActorAlign.CENTER})
  • ui/launcher.js:275
    this.text = new St.BoxLayout({vertical: true, x_expand: true, y_align: Clutter.ActorAlign.CENTER})
  • ui/launcher.js:276
    this.title = new St.Label({x_expand: true})

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

All Versions

Version Status
2.0 (2) Unreviewed
1.0 (1) Waiting for author

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)
MaourNournar posted a review
yes it has AI generated features i will look up the rule you sent thanks for the review
MaourNournar posted a review
so yeb this extension has been majorly developed with AI (with manual patches i made for things that AI could not do ) but it was engineered correctly as to maintain performance and keep things clean you can check the repo to check it if you want I used AI to make this features faster than coding it for 3 months I understand the policy against AI , so if you reject the new patch i will rewrite the extension manually while retaining the main features it was engineered around i trimmed the code a little bit and I will sent it as new version , feel free to reject it i understand the policy of gnome shell extensions website. and thanks for your time.