Superbar is a keyboard-driven, system-wide launcher and command bar for GNOME Shell. It reads the clipboard to provide clipboard history, forwards generic queries to GNOME application search providers enabled by the user, and sends user-entered weather locations, dictionary terms, and currency conversions to open-meteo.com, dictionaryapi.dev, and frankfurter.app.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
EGO-A-005 manual_review
extensions should not access the clipboard directly
Direct clipboard access via `St.Clipboard.get_default()` requires reviewer scrutiny.
extension.js:54
St.Clipboard.get_default()
extension.js:1150
St.Clipboard.get_default()
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:76
this._entry = new St.Entry({
hint_text: "Search apps, calculate...",
style_class: "spotlight-entry",
can_focus: true,
x_expand: true,
y_align: Clutter.ActorAlign.CENTER,
})
extension.js:70
this._icon = new St.Icon({
icon_name: "system-search-symbolic",
style_class: "spotlight-icon",
y_align: Clutter.ActorAlign.CENTER,
})
extension.js:65
this._inputRow = new St.BoxLayout({
style_class: "spotlight-input-row",
vertical: false,
})
extension.js:88
this._resultsBox = new St.BoxLayout({
style_class: "spotlight-results-box",
vertical: true,
x_expand: true,
})
extension.js:105
this._resultsClip = new St.Widget({
style_class: "spotlight-results-clip",
layout_manager: new Clutter.BinLayout(),
x_expand: true,
clip_to_allocation: true,
})
extension.js:94
this._resultsScroll = new St.ScrollView({
style_class: "spotlight-results-scroll",
x_expand: true,
overlay_scrollbars: true,
})
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.
extension.js:1116
GLib.timeout_add(GLib.PRIORITY_DEFAULT, 0, () => {
const [, naturalHeight] = this._resultsBox.get_preferred_height(
this._resultsBox.width,
);
this._animateResultsHeight(Math.min(naturalHeight, 450));
return GLib.SOURCE_REMOVE;
})
| Version | Status |
|---|---|
| 14 | Unreviewed |
| 13 | Rejected |
| 12 | Rejected |
| 11 | Rejected |
| 10 | Rejected |
| 9 | Rejected |
| 8 | Rejected |
| 7 | Rejected |
| 6 | Rejected |
| 5 | Rejected |
| 4 | Rejected |
| 3 | Rejected |
| 2 | Rejected |
| 1 | Rejected |
1. Don't need to use any parameters for `this.getSettings()` since you already have that in `metadata.json`. 2. Please use `connectObject()` and `disconnectObject()` so it is easier to track for cleanup. 3. Timeout should be removed before creating a new one (line 505 `extension.js`). 4. Allowing to do that with spawn (line 765 `extension.js`) since you want to make it consistent with other times. But you should use gjs for d-bus. Also any other thing in `_searchSystemCommands()` can be done with gjs. 5. That can lead to security issues since the `text` is not anesthetized (line 819 `extension.js`). 6. You should add to the description that this extension is using `open-meteo.com`, `dictionaryapi.dev`, `frankfurter.app` services. 7. Timeout should be removed on disable and also before creating a new one (line 1116 `extension.js`): [EGO Review Guidelines: Timeout](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#remove-main-loop-sources) 8. You have `Main.getStyleVariant()` which returns (`light`, `dark` or empty string) that you can use instead (line 1250 `extension.js`). 9. Please add to the description that this extension is using clipboard: [EGO Review Guidelines: Clipboard](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#clipboard-access-must-be-declared) You can also add `donations` to the `metadata.json`, so people can donate to you if they want: [Extension Anatomy: donations](https://gjs.guide/extensions/overview/anatomy.html#donations) 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
Addressed all feedback from version 3: metadata-based settings lookup, connectObject/disconnectObject cleanup, tracked main-loop sources, GJS system actions, safe argv-based subprocesses, sanitized input handling, service and clipboard disclosures, Main.getStyleVariant(), and donation metadata.