Valent Catalyst

Modern, high-performance GTK4 and Rust media transcoding engine built for Linux batch workflows.

Media Utility GPL-3.0 License Rust / GTK4 Active Status

Overview

Valent Catalyst is a streamlined batch media processor that allows users to quickly stage, inspect, and transcode media assets on Linux.

Featuring a minimalist GTK4 layout, Catalyst accepts drag-and-drop file streams over both Wayland and X11 display servers, queries magic headers to identify input mime types, and handles execution asynchronously using optimized concurrent background worker threads.

Key Features

Fluid Staging & Drop Zone

  • Wayland & X11 Drag-and-Drop: Simply drop file files directly onto the window canvas overlay. Intercepts standard text/uri-list streams cleanly.
  • Dynamic Intent Reveal: Reads magic byte signatures (PNG, JPEG, GIF, WEBP, MP4, MKV, MP3, FLAC, WAV, OGG) to expose matching conversion presets in-context.

Tokio-Clamped Pipeline

  • Main Thread Responsiveness: Offloads heavy media transformations to Tokio workers, preventing window freezing or UI lag.
  • Semaphore Concurrency Caps: Clamps active child processes (ffmpeg, convert, sox) dynamically to match CPU hardware cores, preventing thread starvation.

Invariants & Cleanup Guards

  • Collision Protection: Automatically appends ISO-timestamps and unique short hashes if output assets already exist in targets.
  • Automated Purges: Instantly deletes corrupted or partial files on cancellation or process failure, ensuring clean workspace folders.

Configuration Spec

Catalyst matches files to preset profiles inside the catalyst.toml profile config:

toml - catalyst.toml
[presets.web_optimize] name = "Web Optimize" mime = "image/*" binary = "convert" args = ["{input}", "-strip", "-quality", "82", "{output}"] output_ext = "webp" output_dir = "Pictures" [presets.silence_truncation] name = "Silence Truncation" mime = "audio/*" binary = "sox" args = ["{input}", "{output}", "silence", "1", "0.1", "1%"] output_ext = "same" output_dir = "Music"

Building & Installing

Ensure you have GTK4 development headers and target codecs installed on your system before building:

1. Install System Dependencies

bash - APT Prep
# Install GTK4 headers, FFmpeg, ImageMagick, and SoX sudo apt install libgtk-4-dev ffmpeg imagemagick sox

2. Build from Source

bash - Cargo Build
# Clone the repository git clone https://gitlab.com/quantum-hue/valent-catalyst.git cd valent-catalyst # Build the project cargo build --release # Run Catalyst cargo run --release