# Nautilus-Universal-File-Converter A versatile Nautilus (Files) script designed to provide a universal file conversion utility directly within your file manager's context menu. ## 🚀 Overview This script empowers your Nautilus file manager with robust file conversion capabilities. Instead of opening separate applications or remembering complex command-line syntax, you can now right-click on a variety of file types (videos, audio, images, and more) and convert them to your desired format with a few clicks. It's built to simplify your workflow for common conversion tasks, providing a seamless and integrated experience. ## ✨ Features * **Context Menu Integration:** Accessible via right-click on any selected file(s) in Nautilus. * **Multi-Format Support:** Leverages powerful backend tools (`ffmpeg`, `imagemagick`) to handle a wide array of video, audio, and image formats. * **Intuitive Interface:** Uses `zenity` for graphical dialogs, allowing you to easily select output formats, quality settings, or conversion profiles. * **Flexible Output:** Create new files in the same directory, or be prompted for a new location/name. * **Error Handling:** Provides user-friendly feedback for successful conversions or any encountered issues. ## 📋 Requirements This script relies on the following command-line tools for its conversion magic: * **`ffmpeg`**: Essential for video/audio format conversions. * **`imagemagick`**: Used for image format changes, resizing, etc. * **`zenity`**: For creating the interactive graphical dialogs for user input and selection within Nautilus. ## ⚙️ Installation The installation process involves two main steps: installing the required dependencies and then placing the script in the correct Nautilus scripts directory. ### 1. Install Dependencies Below are instructions for installing `ffmpeg`, `imagemagick`, and `zenity` on major Linux distributions. #### Debian/Ubuntu-based Distributions ```bash sudo apt update sudo apt install ffmpeg imagemagick zenity ``` #### Arch Linux ```bash sudo pacman -S ffmpeg imagemagick zenity ``` #### NixOS On NixOS, you can install these packages either system-wide (recommended for global availability) or user-specific. **System-wide (recommended - via `configuration.nix`):** Add the packages to your `environment.systemPackages` in your `/etc/nixos/configuration.nix` file: ```nix # /etc/nixos/configuration.nix { config, pkgs, ... }: { # ... other configurations ... environment.systemPackages = with pkgs; [ # ... existing packages ... ffmpeg imagemagick zenity ]; # ... other configurations ... } ``` After modifying `configuration.nix`, rebuild and switch your system: ```bash sudo nixos-rebuild switch ``` ### 2. Install the Nautilus Script 1. **Download the script:** Obtain the `File Converter script from this repository. 2. **Create the Nautilus scripts directory:** If you don't already have a `scripts` directory for Nautilus, create it: ```bash mkdir -p ~/.local/share/nautilus/scripts/ ``` 3. **Copy the script:** Move or copy the downloaded script into the `scripts` directory. It's recommended to name it something clear that will appear in your context menu, like `Convert File` or `Universal Converter`. ```bash cp ./File\ Converter ~/.local/share/nautilus/scripts/ ``` 4. **Make the script executable:** ```bash chmod +x ~/.local/share/nautilus/scripts/File\ Converter ``` ## 🚀 Usage 1. **Open Nautilus (Files)** and navigate to the directory containing the file(s) you wish to convert. 2. **Right-click** on the file you want to convert. 3. Hover over the "Scripts" menu item. 4. Click on "Convert File" (or whatever you named the script). 5. A `zenity` dialog will appear, prompting you to select the desired output format, quality, or other conversion options. Follow the on-screen instructions. 6. Once you've made your selections, the script will process the file. A progress or completion message will inform you about the conversion status. The newly converted file will typically appear in the same directory as the original, often with a new extension. ## 📄 License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. ---