No description
  • JavaScript 82.1%
  • Python 10.1%
  • Shell 2.3%
  • Makefile 1.9%
  • GLSL 1.9%
  • Other 1.7%
Find a file
2026-07-10 14:49:21 +02:00
.claude/skills/verify Add project verify skill with the headless-shell test recipe 2026-07-10 14:31:54 +02:00
.github Add Ko-fi and Buy Me a Coffee usernames 2026-03-15 13:44:38 +08:00
effects Address EGO review #70331 rejection issues 2026-07-08 13:59:29 +02:00
lint remove super Space 2022-10-20 11:37:05 +08:00
preferences Fix extensions.gnome.org review-guideline issues 2026-07-10 13:58:48 +02:00
schemas Fix extensions.gnome.org review-guideline issues 2026-07-10 13:58:48 +02:00
screenshots add settings pane 2022-11-03 12:08:57 +08:00
tests Rename extension to SearchLightNG 2026-07-09 11:49:06 +02:00
ui Fix extensions.gnome.org review-guideline issues 2026-07-10 13:58:48 +02:00
.eslintrc.yml remove super Space 2022-10-20 11:37:05 +08:00
.gitignore Address EGO review #70331 rejection issues 2026-07-08 13:59:29 +02:00
CHANGELOG.md Fix double keybinding removal warning on disable 2026-07-10 14:31:54 +02:00
extension.js Fix extensions.gnome.org review-guideline issues 2026-07-10 13:58:48 +02:00
HACKING.md add conversion tests 2023-03-23 19:35:32 +08:00
install.sh Allow install.sh to install a specific branch 2026-07-10 12:34:20 +02:00
keybinding.js Fix double keybinding removal warning on disable 2026-07-10 14:31:54 +02:00
LICENSE remove providers - create separate extensions for them 2024-05-12 11:09:59 +08:00
Makefile Fix extensions.gnome.org review-guideline issues 2026-07-10 13:58:48 +02:00
metadata.json Fix extensions.gnome.org review-guideline issues 2026-07-10 13:58:48 +02:00
monitors.js Fix preferred monitor selection and refresh 2026-07-09 20:16:53 +02:00
NOTES.md fix test prefs 2023-09-28 05:54:12 +08:00
prefs.js Fix extensions.gnome.org review-guideline issues 2026-07-10 13:58:48 +02:00
README.md README: offer to upstream the fork or take over maintenance 2026-07-10 14:49:21 +02:00
shortcuts.js Fix extensions.gnome.org review-guideline issues 2026-07-10 13:58:48 +02:00
style.js Fix extensions.gnome.org review-guideline issues 2026-07-10 13:58:48 +02:00
stylesheet.css Fix Search Light popup sizing and animation 2026-07-10 11:47:55 +02:00
timer.js Fix extensions.gnome.org review-guideline issues 2026-07-10 13:58:48 +02:00
transpile.py cache rates within 24 hours 2024-05-06 10:42:46 +08:00


SearchLightNG

A GNOME Shell extension, personal fork

First Release

A GNOME Shell extension that takes the apps search widget out of the Overview. Like macOS Spotlight, or Alfred.

About this fork

This is my personal fork of icedman/search-light. I renamed it to SearchLightNG (UUID search-light-ng@salix.host) so it can live next to the original one. For now you install it from source or with the install script, but I'm looking to get it on extensions.gnome.org soon too. It started as just some fixes to make the extension work on GNOME 50, but since then I kept fixing and cleaning up more things.

To be clear, I didn't fork this to compete with the original or something like that. The upstream extension is not maintained anymore and it had some serious bugs, a few of them even crashed the whole GNOME Shell, so I had to fix things myself to keep using it. Everything here is GPL, so if icedman picks up development again he is free to take all of it upstream, happy to help with that. And if that works better for everyone I can also take over maintenance of the original extension or the extensions.gnome.org package instead of keeping a separate fork. Just open an issue here or on the upstream repo and we can figure something out.

What changed since the fork:

  • Fixed the code issues from EGO review #70331: the compiled GSettings schema is not shipped anymore (the shell compiles it by itself since GNOME 45), no GTK/Gdk imports reachable from the shell process, removed unused source files, and disable() now cleans up everything (signals, actors, monkeypatches, overview search widgets). The preferences window also cleans up its settings listeners and D-Bus proxy when it closes.
  • Reworked how the popup behaves. It takes a real modal grab while open, teardown doesn't happen inside signal dispatch anymore (this was causing crashes and invisible popups), and the patched app activate methods get restored when the popup closes. Escape and hiding got fixed too.
  • The popup opens with the correct size on first use now, no more layout flash or wrongly measured search entry. Also fixed the open/close animation and adjusted the default sizing.
  • The blurred wallpaper is generated in a race-safe way and saved in a private runtime cache instead of a world-readable folder.
  • Fixed the preferred monitor selection and refresh on multi-monitor setups.
  • Some preferences improvements: theme presets on the appearance page, the shortcut editors don't share state anymore, you can clear a configured shortcut, and the color chooser dialogs are not clipped anymore.
  • Panel icon fixes: styling, toggling during the search overlay transitions, and the icon gets destroyed when hidden.
  • Added an application blacklist: the shortcut does nothing while one of the listed apps has focus (handy for VMs or remote desktops that want the shortcut for themselves). You manage the list in the preferences, and entries added by hand with gsettings can also be WM classes for windows without a desktop file.
  • Added a one-shot install script, it can also install a specific branch.
  • Removed the donation UI from the preferences (there is a link to icedman below instead).

It supports GNOME Shell 48, 49 and 50 (see metadata.json). For older versions use the upstream branches (gnome-47, g44).

Features

  • Popup search box
  • Colors, background, borders customization
  • Theme presets in the appearance preferences
  • Blurred background (requires imagemagick on the system to generate the blurred image)
  • Multi-monitor support
  • Application blacklist to disable the shortcut while certain apps are focused

Easy install

One command, it downloads, installs and enables the extension for the current user:

curl -fsSL https://git.salix.host/salix/searchlightng/raw/branch/main/install.sh | bash

Then log out and back in (needed on Wayland, on X11 you can also do Alt+F2, r, Enter) and press Ctrl+Super+Space.

Installing a different branch

By default the installer builds from main. If you want to install another branch (for example to try a feature that is not merged yet), pass the branch name after bash -s --:

curl -fsSL https://git.salix.host/salix/searchlightng/raw/branch/main/install.sh | bash -s -- some-branch

or set the BRANCH environment variable:

curl -fsSL https://git.salix.host/salix/searchlightng/raw/branch/main/install.sh | BRANCH=some-branch bash

Both do the same thing, the installer just downloads the tarball of that branch instead of main. To go back, run the command again without a branch.

Installing from source

git clone https://git.salix.host/salix/searchlightng.git
cd searchlightng
make build install

make build compiles the GSettings schema locally, and make install copies the extension to ~/.local/share/gnome-shell/extensions/search-light-ng@salix.host/.

Then enable it:

gnome-extensions enable search-light-ng@salix.host

On Wayland you have to log out and back in before the shell picks up a new or updated extension (on X11, Alt+F2, r, Enter works too).

To update after pulling changes, run make build install again and re-login.

If something misbehaves, check the shell log:

journalctl --user -b 0 | grep -i search-light

Keybinding

Ctrl+Super+Space (you can change it in the preferences page). Super is the Windows logo key, or Command on a Mac keyboard.

Credits