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

---