Hexa's Blog

Compressing image directly on Fedora's Nautilus (File Explorer)

15/08/2025 @ Saigon Linux

I. What is it?

This post is all about compressing image on Gnome Desktop Environment with GUI. This is core script

ffmpeg -i "$img" -q:v 4 "$output_dir/$filename"

-q:v 4: refers to quality for video. It’s value range is 1-31, the smaller this value is, the higher the quality.

There are two way to executable the script

  • [1] Open gnome-terminal and execute script.
  • [2] Open nautilus (default file explorer on GNOME).

In addition, to enhance user experience, I used zenity to display progress bar.

II. How to do?

  • Create a file named 01-compress-images.sh at ~/.local/share/nautilus/scripts/
#!/bin/bash
input_dir="$1"
output_dir="${input_dir}_compressed"
mkdir -p "$output_dir"

shopt -s nullglob
files=("$input_dir"/*.{jpg,jpeg,png,webp})
total=${#files[@]}
count=0

(
for img in "${files[@]}"; do
    [ -f "$img" ] || continue
    filename=$(basename "$img")
    ffmpeg -i "$img" -q:v 4 "$output_dir/$filename" &>/dev/null
    count=$((count+1))
    echo $(( count * 100 / total ))
    echo "# [$count/$total] Compressing: $filename"
done
) | zenity --progress --title="Compress Images" --percentage=0 --auto-close

zenity --info --text="Finished! Compressed images stored at:\n$output_dir"
  • Use chmod to make 01-compress-images.sh executable.
$ chmod +x 01-compress-images.sh

III. Result

IV. Credit

Thank to ChatGPT, It helps me so much!