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:314
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:503
this._actionsHint = new St.BoxLayout({
style_class: "spotlight-actions-hint",
vertical: false,
y_align: Clutter.ActorAlign.CENTER,
})
extension.js:375
this._contentLayer = new St.BoxLayout({
style_class: "spotlight-content",
vertical: true,
x_expand: true,
y_expand: true,
})
extension.js:397
this._entry = new St.Entry({
hint_text: "Search",
style_class: "spotlight-entry",
can_focus: true,
x_expand: true,
y_align: Clutter.ActorAlign.CENTER,
})
extension.js:498
this._footer = new St.BoxLayout({
style_class: "spotlight-footer",
vertical: false,
x_expand: true,
})
extension.js:492
this._footerDivider = new St.Widget({
style_class: "spotlight-divider spotlight-footer-divider",
x_expand: true,
})
extension.js:524
this._footerHints = new St.BoxLayout({
style_class: "spotlight-footer-hints",
vertical: false,
x_align: Clutter.ActorAlign.END,
y_align: Clutter.ActorAlign.CENTER,
})
extension.js:521
this._footerSpacer = new St.Widget({ x_expand: true })
extension.js:435
this._headerDivider = new St.Widget({
style_class: "spotlight-divider",
x_expand: true,
})
extension.js:370
this._highlightLayer = new St.Widget({
style_class: "spotlight-highlight",
x_expand: true,
y_expand: true,
})
extension.js:391
this._icon = new St.Icon({
icon_name: "system-search-symbolic",
style_class: "spotlight-icon",
y_align: Clutter.ActorAlign.CENTER,
})
extension.js:386
this._inputRow = new St.BoxLayout({
style_class: "spotlight-input-row",
vertical: false,
})
extension.js:365
this._materialLayer = new St.Widget({
style_class: "spotlight-material",
x_expand: true,
y_expand: true,
})
extension.js:420
this._modeDot = new St.Widget({
style_class: "spotlight-mode-dot",
y_align: Clutter.ActorAlign.CENTER,
})
extension.js:408
this._modeIndicator = new St.BoxLayout({
style_class: "spotlight-mode-indicator",
vertical: false,
reactive: false,
can_focus: false,
y_align: Clutter.ActorAlign.CENTER,
})
extension.js:415
this._modeInner = new St.BoxLayout({
style_class: "spotlight-mode-inner",
vertical: false,
y_align: Clutter.ActorAlign.CENTER,
})
extension.js:441
this._resultsBox = new St.BoxLayout({
style_class: "spotlight-results-box",
vertical: true,
x_expand: true,
})
extension.js:481
this._resultsClip = new St.Widget({
style_class: "spotlight-results-clip",
layout_manager: new Clutter.BinLayout(),
x_expand: true,
clip_to_allocation: true,
})
extension.js:470
this._resultsScroll = new St.ScrollView({
style_class: "spotlight-results-scroll",
x_expand: true,
overlay_scrollbars: true,
})
extension.js:447
this._statusBox = new St.BoxLayout({
style_class: "spotlight-status",
vertical: true,
x_expand: true,
y_expand: true,
visible: false,
})
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:1495
this._clipboardPollId = GLib.timeout_add(
GLib.PRIORITY_DEFAULT,
1200,
() => {
this._pollClipboard();
return GLib.SOURCE_CONTINUE;
},
)
extension.js:3068
this._resultsHeightTimeoutId = GLib.timeout_add(
GLib.PRIORITY_DEFAULT,
0,
() => {
this._resultsHeightTimeoutId = null;
if (this._enabled) this._updateResultsHeight(false);
return GLib.SOURCE_REMOVE;
},
)
extension.js:1325
this._searchTimeout = GLib.timeout_add(
GLib.PRIORITY_DEFAULT,
delay,
() => {
this._searchTimeout = null;
if (this._isCurrentQuery(text, generation)) callback();
return GLib.SOURCE_REMOVE;
},
)
extension.js:3014
this._selectionScrollTimeoutId = GLib.timeout_add(
GLib.PRIORITY_DEFAULT,
0,
() => {
this._selectionScrollTimeoutId = null;
this._scrollToSelection();
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 |