Skip to content

brilliantnz/flickernaut

Repository files navigation

GNOME Shell Extension - Flickernaut

Image GitHub Weblate project translated GitHub issues GitHub last commit GitHub stars

A GNOME extension that adds custom entries to the Nautilus context menu for your installed dev tools, IDEs, and custom apps.

Screenshots

Flickernaut Preview

Flickernaut Preview Flickernaut Preview Flickernaut Preview

Requirements

To use this extension, you need the nautilus-python package. This provides Python bindings for Nautilus extensions.

Fedora

sudo dnf install nautilus-python

Ubuntu / Debian

sudo apt install python3-nautilus gir1.2-nautilus-3.0

Arch Linux

sudo pacman -S nautilus-python

Note

After changing extension preferences, restart Nautilus with nautilus -q for changes to take effect.

Development

Prerequisites

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

Fedora

sudo dnf install blueprint-compiler gettext glib2-devel nodejs

Ubuntu / Debian

sudo apt install blueprint-compiler gettext libglib2.0-bin nodejs

Arch Linux

sudo pacman -S blueprint-compiler gettext glib2-devel nodejs

Enable corepack to use pnpm:

corepack enable pnpm

Building

git clone https://github.com/brilliantnz/flickernaut
cd flickernaut
pnpm install
pnpm build:ui       # compile .blp Blueprint files → .ui
pnpm build          # full build → .shell-extension.zip

The 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.

Available Scripts

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 Development

UI files are written in Blueprint, a markup language for GTK user interfaces. Edit .blp files in resources/ui/, then compile them:

pnpm build:ui

The compiled .ui files are output to src/ui/ and committed to the repository so CI builds can skip the Blueprint step.

Testing

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) session

Reload GNOME Shell after installing (Alt+F2, r — X11 only).

Viewing Logs

# extension preferences
journalctl -o cat -f /usr/bin/gjs

# nautilus extension
journalctl -o cat -f /usr/bin/nautilus

Translations

Help translate the extension on Weblate or by opening a pull request.

Translation status

License

GPL-3.0-or-later

About

Flickernaut is a GNOME extension that adds custom entry to Nautilus context menu for your installed dev tools, IDEs, and custom apps.

Resources

License

Stars

19 stars

Watchers

1 watching

Forks

Contributors