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:444
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:683
this._actionsHint = new St.BoxLayout({
style_class: "spotlight-actions-hint",
vertical: false,
y_align: Clutter.ActorAlign.CENTER,
})
extension.js:688
this._actionsKey = new St.Label({
text: ">",
style_class: "spotlight-footer-key spotlight-actions-key",
})
extension.js:531
this._contentLayer = new St.BoxLayout({
style_class: "spotlight-content",
vertical: true,
x_expand: true,
y_expand: true,
})
extension.js:552
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:678
this._footer = new St.BoxLayout({
style_class: "spotlight-footer",
vertical: false,
x_expand: true,
})
extension.js:672
this._footerDivider = new St.Widget({
style_class: "spotlight-divider spotlight-footer-divider",
x_expand: true,
})
extension.js:703
this._footerHints = new St.BoxLayout({
style_class: "spotlight-footer-hints",
vertical: false,
x_align: Clutter.ActorAlign.END,
y_align: Clutter.ActorAlign.CENTER,
})
extension.js:700
this._footerSpacer = new St.Widget({ x_expand: true })
extension.js:606
this._headerDivider = new St.Widget({
style_class: "spotlight-divider",
x_expand: true,
})
extension.js:546
this._icon = new St.Icon({
icon_name: "system-search-symbolic",
style_class: "spotlight-icon",
y_align: Clutter.ActorAlign.CENTER,
})
extension.js:541
this._inputRow = new St.BoxLayout({
style_class: "spotlight-input-row",
vertical: false,
})
extension.js:526
this._materialLayer = new St.Widget({
style_class: "spotlight-material",
x_expand: true,
y_expand: true,
})
extension.js:563
this._modeChip = new St.BoxLayout({
style_class: "spotlight-mode-chip",
vertical: false,
y_align: Clutter.ActorAlign.CENTER,
visible: false,
})
extension.js:569
this._modeChipLabel = new St.Label({
style_class: "spotlight-mode-chip-label",
y_align: Clutter.ActorAlign.CENTER,
})
extension.js:591
this._modeDot = new St.Widget({
style_class: "spotlight-mode-dot",
y_align: Clutter.ActorAlign.CENTER,
})
extension.js:579
this._modeIndicator = new St.BoxLayout({
style_class: "spotlight-mode-indicator",
vertical: false,
reactive: false,
can_focus: false,
y_align: Clutter.ActorAlign.CENTER,
})
extension.js:586
this._modeInner = new St.BoxLayout({
style_class: "spotlight-mode-inner",
vertical: false,
y_align: Clutter.ActorAlign.CENTER,
})
extension.js:612
this._resultsBox = new St.BoxLayout({
style_class: "spotlight-results-box",
vertical: true,
x_expand: true,
})
extension.js:652
this._resultsClip = new St.Widget({
style_class: "spotlight-results-clip",
layout_manager: new Clutter.BinLayout(),
x_expand: true,
clip_to_allocation: true,
})
extension.js:641
this._resultsScroll = new St.ScrollView({
style_class: "spotlight-results-scroll",
x_expand: true,
overlay_scrollbars: true,
})
extension.js:618
this._statusBox = new St.BoxLayout({
style_class: "spotlight-status",
vertical: true,
x_expand: true,
y_expand: true,
visible: 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.
extension.js:1093
dialog.connect("closed", () => {
this._conflictDialog = null;
})
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:2197
this._clipboardSaveId = GLib.timeout_add(
GLib.PRIORITY_DEFAULT_IDLE,
CLIPBOARD_SAVE_DEBOUNCE_MS,
() => {
this._clipboardSaveId = null;
this._writeClipboardHistory();
return GLib.SOURCE_REMOVE;
},
)
extension.js:992
this._conflictPromptId = GLib.timeout_add_seconds(
GLib.PRIORITY_DEFAULT,
CONFLICT_PROMPT_RETRY_SECONDS,
() => {
if (!this._enabled) {
this._conflictPromptId = null;
return GLib.SOURCE_REMOVE;
}
if (Main.actionMode === Shell.ActionMo
extension.js:1999
this._searchTimeout = GLib.timeout_add(
GLib.PRIORITY_DEFAULT,
delay,
() => {
this._searchTimeout = null;
if (this._isCurrentQuery(text, generation)) callback();
return GLib.SOURCE_REMOVE;
},
)