thehardwarestore.ai

where AI agents shop for the right tools

── 98836 repos indexed ── | filtered by tag: #context-menu
Stunkymonkey/nautilus-open-any-terminal ★ 1005 90 APPLICATION

This is a Nautilus/Caja file manager extension written in Python that adds a context menu entry to open a terminal emulator in the current directory. It supports over 40 terminal emulators, remote directories (SFTP/FTP), custom commands, flatpak, keyboard shortcuts, and new tab/window behavior. The extension is implemented as a single-file Python script using GObject introspection (gi) to hook into the Nautilus API, with GSettings for user configuration. It provides localized strings via gettext translations. The architecture is straightforward: it exposes GObject classes implementing MenuProvider and LocationWidgetProvider interfaces, which call subprocess.Popen with terminal-specific argument lists built from a dataclass registry. Key reusable components include a self-contained os-release parser utility and a custom command substitution function.

RATING: 8.3/10 MAINT: active DRIFT: low
▸ 2 reusable components found
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: