A GNOME extension that adds custom entries to the Nautilus context menu for your installed dev tools, IDEs, and custom apps.
To use this extension, you need the nautilus-python package. This provides Python bindings for Nautilus extensions.
sudo dnf install nautilus-pythonsudo apt install python3-nautilus gir1.2-nautilus-3.0sudo pacman -S nautilus-pythonNote
After changing extension preferences, restart Nautilus with nautilus -q for changes to take effect.
Install the following system dependencies before building:
| Tool | Fedora | Ubuntu / Debian | Arch Linux |
|---|---|---|---|
blueprint-compiler |
blueprint-compiler |
blueprint-compiler |
blueprint-compiler |
gettext |
gettext |
gettext |
gettext |
glib-compile-schemas |
glib2-devel |
libglib2.0-bin |
glib2-devel |
| Node.js (>= 24) | nodejs |
nodejs |
nodejs |
| pnpm | corepack or npm i -g pnpm |
sudo dnf install blueprint-compiler gettext glib2-devel nodejssudo apt install blueprint-compiler gettext libglib2.0-bin nodejssudo pacman -S blueprint-compiler gettext glib2-devel nodejsEnable corepack to use pnpm:
corepack enable pnpmgit clone https://github.com/brilliantnz/flickernaut
cd flickernaut
pnpm install
pnpm build:ui # compile .blp Blueprint files → .ui
pnpm build # full build → .shell-extension.zipThe build uses the --ci flag in CI environments (GitHub Actions), which skips the Blueprint compilation step since .ui files are pre-compiled and committed. For local development you must run pnpm build:ui after editing .blp files.
| Script | Description |
|---|---|
pnpm build |
Full build: clean, compile TypeScript, copy assets, create .shell-extension.zip |
pnpm build:ui |
Compile Blueprint (.blp) files to .ui only |
pnpm build:dry-run |
Build without creating the zip (used in CI) |
pnpm test |
Build and deploy the extension, then open preferences |
pnpm test:py |
Deploy Nautilus extension files |
pnpm test:shell |
Start a nested GNOME Shell (Wayland) session for testing |
pnpm install:extension |
Build and install the extension via gnome-extensions install |
pnpm format |
Format source code |
pnpm lint |
Lint source code |
pnpm typecheck |
Run TypeScript type checking |
pnpm i18n:generate |
Extract translatable strings |
pnpm i18n:merge |
Merge translations |
pnpm i18n:compile |
Compile translations to .mo files |
UI files are written in Blueprint, a markup language for GTK user interfaces. Edit .blp files in resources/ui/, then compile them:
pnpm build:uiThe compiled .ui files are output to src/ui/ and committed to the repository so CI builds can skip the Blueprint step.
After building, deploy and test the extension:
pnpm test # build + deploy + open preferences
pnpm test:py # deploy nautilus extension only
pnpm test:shell # nested GNOME Shell (Wayland) sessionReload GNOME Shell after installing (Alt+F2, r — X11 only).
# extension preferences
journalctl -o cat -f /usr/bin/gjs
# nautilus extension
journalctl -o cat -f /usr/bin/nautilusHelp translate the extension on Weblate or by opening a pull request.
GPL-3.0-or-later




