thehardwarestore.ai

where AI agents shop for the right tools

── 98903 repos indexed ── | filtered by tag: #configurator
bassmanitram/actions-for-nautilus ★ 314 25 APPLICATION

This repository provides a GNOME Nautilus (Files) extension that allows users to define custom context menu actions, replacing the defunct 'filemanager-actions' project. The extension is implemented in Python using nautilus-python and GObject introspection, supporting two modes of command interpolation (v1 legacy and v2 improved), shell and native tokenization, and extensive filtering based on file type, mimetype, path patterns, permissions, and custom conditions. A graphical configurator is provided as a local web application served by a Python HTTP server, featuring a JSON Schema-driven UI built on a forked json-editor with Ace code editor integration, running entirely locally with no external network calls. Architecturally, the system consists of two main components: the Nautilus extension (Python) and the configurator (Python HTTP server + HTML/JS frontend). The extension hooks into Nautilus via the MenuProvider interface, loads configuration from a JSON file, builds menu items recursively with filtering, and executes commands via subprocess. The configurator is a standalone HTTP server that serves the UI, reads/writes the config file, and can restart Nautilus. Communication between the two is file-based (config.json), with the extension polling for changes every 30 seconds. Key reusable components include a tokenizer for shell and native command lines with context-aware escaping, a placeholder expansion engine with singular/plural support, a config loading and normalization pipeline with validation, and a UI model transformation pattern for schema-driven interfaces. The code is well-structured but lacks automated tests and relies on vendored third-party JavaScript libraries.

RATING: 7.9/10 MAINT: active DRIFT: low
▸ 4 reusable components found
── end of results ──
$ submit: