Skip to main content

Integration of scripts into various Unix file managers

Project description

file-manager-integration

file_manager_integration on PyPI Code style: black License: GPL v3

A small utility for integrating scripts into various Unix/Linux file managers.

It uses a file named file_manager_integration.json specifying the script and the parameters of the file manager integration.

Requirements

Python 3.6 or newer

Installation

pip install file-manager-integration

I recommend either installing into a virtual environment or doing a user install:

pip install --user file-manager-integration

Usage

The utility can be invoked on the command line either directly (file_manager_integration) or via python3 -m (python -m in a Python 3 virtual environment):

python3 -m file_manager_integration

In the following examples, the short variant is used.

List supported file managers

file_manager_integration list-supported

Show configuration

Reads file_manager_integration.json from the current working directory and shows its contents.

file_manager_integration list-supported

Edit / create a configuration

Interactively asks the user for each parameter of a new configuration and writes the new configuration to file_manager_integration.json in the current working directory. If the file already existed before, values are read from it and used as presets.

file_manager_integration configure

Do the integration

Call file_manager_integration install with at least the name of the file manager and optionally the integration mode (actionor script). If the integration mode is omitted, the first one listed for the file manager when calling file_manager_integration list-supported will be used (that’s usually action if supported).

The action integration mode creates files, and the script integration modes creates symbolic links, both in locations specific to the file manager (see the file_managers module source).

file_manager_integration install [ Options ] <file manager> [ <integration mode> ]

Options:

  • --interactive asks for each parameter interactively, using the values from the file_manager_integration.json file as presets.
  • --force-create-directories creates required directories if they do not exist yet.
  • --force-overwrite overwrites pre-existing target files or symbolic links
  • --force-rename-existing renames an existing symbolic link pointing to the same path as the script to be integrated to the name specified in the parameters.

Scripts requirements

The scripts being integrated must support the following:

  • For script integration: Read the selected file or directory from environment variables set by the file manager:
    • CAJA_SCRIPT_SELECTED_FILE_PATHS
    • NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
    • NEMO_SCRIPT_SELECTED_FILE_PATHS
  • For action integration: Read the selected file or directory as a single command line argument.

The scripts should provide a graphical user interface.

Supported file managers

implemented

  • Caja (MATE)
  • Nautilus (GNOME)
  • Nemo (Cinnamon)

planned support

  • KDE file manager
  • PCManFM (LXDE)
  • Thunar (XFCE)

Bugs / Feature requests

Feel free to open an issue here

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

file_manager_integration-0.2.2.tar.gz (25.6 kB view hashes)

Uploaded Source

Built Distribution

file_manager_integration-0.2.2-py3-none-any.whl (27.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page