The most powerful search bar! macOS-style Spotlight quick launcher: instant search for apps, files, calculator with unit conversion, hotwords, timers, emoji, web suggestions and system actions. Copy-and-paste and the clipboard history uses the system clipboard.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
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()`.
extension.js:5176
f.load_contents(null)
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:951
St.Clipboard.get_default()
extension.js:1121
St.Clipboard.get_default()
extension.js:3054
St.Clipboard.get_default()
extension.js:3143
St.Clipboard.get_default()
extension.js:3163
St.Clipboard.get_default()
extension.js:3210
St.Clipboard.get_default()
extension.js:7157
St.Clipboard.get_default()
EGO-P-006 warning
unnecessary build and translation artifacts should not be shipped
Package contains files that often should not be shipped for review.
Don't include unnecessary files
install.sh
install.sh
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:1315
this._entry = new St.Entry({
style: 'background-color: transparent; border: none;' +
'font-size: 24px; color: white;',
can_focus: true,
hint_text: 'Spotlight Search',
})
extension.js:1308
this._entryIcon = new St.Icon({
icon_name: 'system-search-symbolic',
icon_size: 22,
style: 'margin-right: 10px; color: rgba(255,255,255,0.55);',
})
extension.js:1468
this._footer = new St.Label({
style: 'padding: 10px 14px 4px 14px; font-size: 11px;' +
'color: rgba(255,255,255,0.4);',
text: '↑↓ Navigate ↵ Open Esc Close',
})
extension.js:1344
this._ghostProbe = new St.Label({
text: '',
style: 'font-size: 24px; color: white;',
opacity: 0,
visible: true,
reactive: false,
can_focus: false,
})
extension.js:1285
this._glowBand = new St.DrawingArea({
reactive: false,
style: 'background-color: transparent;',
})
extension.js:1454
this._gridScroll = new St.ScrollView({
hscrollbar_policy: St.PolicyType.NEVER,
vscrollbar_policy: St.PolicyType.AUTOMATIC,
visible: true,
})
extension.js:1437
this._lsCrumb = new St.BoxLayout({
orientation: Clutter.Orientation.HORIZONTAL,
style: 'padding: 6px 12px 2px 14px; min-height: 26px;',
reactive: true,
visible: false,
})
extension.js:1329
this._lsGhost = new St.Label({
text: '',
style: 'font-size: 24px; color: rgba(255,255,255,0.30);' +
'background-color: transparent;',
visible: false,
reactive: false,
can_focus: false,
})
extension.js:1446
this._lsGrid = new St.BoxLayout({
orientation: Clutter.Orientation.VERTICAL,
style: 'padding: 2px 8px 6px 8px;',
visible: false,
})
extension.js:1461
this._lsMsg = new St.Label({
style: 'padding: 12px 14px; font-size: 14px;' +
'color: rgba(255,255,255,0.5);',
visible: false,
})
extension.js:1276
this._panel = new St.BoxLayout({
orientation: Clutter.Orientation.VERTICAL,
style: 'background-color: rgba(28, 29, 33, 0.97);' +
'border-radius: 18px;' +
'box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);' +
'padd
extension.js:1398
this._results = new St.BoxLayout({
orientation: Clutter.Orientation.VERTICAL,
style: 'padding: 0px 6px;',
})
extension.js:1406
this._resultsScroll = new St.ScrollView({
hscrollbar_policy: St.PolicyType.NEVER,
vscrollbar_policy: St.PolicyType.AUTOMATIC,
visible: true,
})
extension.js:1392
this._separator = new St.Widget({
style: 'min-height: 1px; background-color: rgba(255,255,255,0.09);' +
'margin: 2px 6px 6px 6px;',
})
extension.js:1422
this._termBox = new St.BoxLayout({
orientation: Clutter.Orientation.VERTICAL,
style: 'padding: 4px 14px 8px 14px;',
})
extension.js:1417
this._termScroll = new St.ScrollView({
hscrollbar_policy: St.PolicyType.NEVER,
vscrollbar_policy: St.PolicyType.AUTOMATIC,
visible: false,
})
extension.js:4765
row
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`.
extension.js:1315
this._entry = new St.Entry({
style: 'background-color: transparent; border: none;' +
'font-size: 24px; color: white;',
can_focus: true,
hint_text: 'Spotlight Search',
})
extension.js:1308
this._entryIcon = new St.Icon({
icon_name: 'system-search-symbolic',
icon_size: 22,
style: 'margin-right: 10px; color: rgba(255,255,255,0.55);',
})
extension.js:906
this._fileSearch = new FileSearch(
this._settings.get_int('search-depth'),
this._settings.get_int('max-entries'),
this._settings.get_int('max-matches'))
extension.js:1468
this._footer = new St.Label({
style: 'padding: 10px 14px 4px 14px; font-size: 11px;' +
'color: rgba(255,255,255,0.4);',
text: '↑↓ Navigate ↵ Open Esc Close',
})
extension.js:1344
this._ghostProbe = new St.Label({
text: '',
style: 'font-size: 24px; color: white;',
opacity: 0,
visible: true,
reactive: false,
can_focus: false,
})
extension.js:1285
this._glowBand = new St.DrawingArea({
reactive: false,
style: 'background-color: transparent;',
})
extension.js:1454
this._gridScroll = new St.ScrollView({
hscrollbar_policy: St.PolicyType.NEVER,
vscrollbar_policy: St.PolicyType.AUTOMATIC,
visible: true,
})
extension.js:1437
this._lsCrumb = new St.BoxLayout({
orientation: Clutter.Orientation.HORIZONTAL,
style: 'padding: 6px 12px 2px 14px; min-height: 26px;',
reactive: true,
visible: false,
})
extension.js:1329
this._lsGhost = new St.Label({
text: '',
style: 'font-size: 24px; color: rgba(255,255,255,0.30);' +
'background-color: transparent;',
visible: false,
reactive: false,
can_focus: false,
})
extension.js:1446
this._lsGrid = new St.BoxLayout({
orientation: Clutter.Orientation.VERTICAL,
style: 'padding: 2px 8px 6px 8px;',
visible: false,
})
extension.js:1461
this._lsMsg = new St.Label({
style: 'padding: 12px 14px; font-size: 14px;' +
'color: rgba(255,255,255,0.5);',
visible: false,
})
extension.js:1276
this._panel = new St.BoxLayout({
orientation: Clutter.Orientation.VERTICAL,
style: 'background-color: rgba(28, 29, 33, 0.97);' +
'border-radius: 18px;' +
'box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);' +
'padd
extension.js:1398
this._results = new St.BoxLayout({
orientation: Clutter.Orientation.VERTICAL,
style: 'padding: 0px 6px;',
})
extension.js:1406
this._resultsScroll = new St.ScrollView({
hscrollbar_policy: St.PolicyType.NEVER,
vscrollbar_policy: St.PolicyType.AUTOMATIC,
visible: true,
})
extension.js:1392
this._separator = new St.Widget({
style: 'min-height: 1px; background-color: rgba(255,255,255,0.09);' +
'margin: 2px 6px 6px 6px;',
})
extension.js:1422
this._termBox = new St.BoxLayout({
orientation: Clutter.Orientation.VERTICAL,
style: 'padding: 4px 14px 8px 14px;',
})
extension.js:1417
this._termScroll = new St.ScrollView({
hscrollbar_policy: St.PolicyType.NEVER,
vscrollbar_policy: St.PolicyType.AUTOMATIC,
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:1290
this._glowBand.connect('repaint', area => {
try {
this._drawBand(area.get_context());
} catch (e) {
/* ignore */
}
})
extension.js:1480
this._overlay.connect('button-press-event', (actor, event) => {
const [px, py] = event.get_coords();
const [bx, by] = this._panel.get_transformed_position();
const [bw, bh] = this._panel.get_transformed_size();
if (px >= bx && px <= bx + bw &&
extension.js:1303
this._panel.connect('notify::allocation', () => this._syncGlow())
extension.js:4738
cell.box.connect('button-press-event', () => {
this._gridActivate(idx);
return Clutter.EVENT_STOP;
})
extension.js:4742
cell.box.connect('enter-event', () => {
this._gridHover(idx);
return Clutter.EVENT_PROPAGATE;
})
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:4127
this._termRenderTimer = GLib.timeout_add(
GLib.PRIORITY_DEFAULT, 80, () => {
this._termRenderTimer = 0;
if (this._term && this._term.runId === runId &&
this._term.status === 'running') {
| Version | Status |
|---|---|
| 1.3 (1) | Unreviewed |