*Actually, problem solved last night. Let me be the one that gives back to the community for once.
it's enough to use imagemagick. I made a lil script to run it on all the pictures that are in /home/user/input folder.
---------------------------------
#! /bin/bash
# make sure to have your target pictures all in /home/user/input folder
mkdir -p /home/user/output/
for file in /home/user/input/*.{jpg,jpeg,png,bmp}; do
INDENT [ -f "$file" ] && convert "$file" -strip -set colorspace sRGB -define modulate:colorspace=LCHab -modulate 100,100,156 -colorspace sRGB "/home/ale/output/$(basename "$file")"
done
echo "END"
read
--------------------------------------------
Copy this text above in a file.txt, remove "INDENT" (make sure there's an actual indent there), rename it asyouwant.sh, make it executable, run it in the terminal. Works beautifully and fast. Grok3 FTW!
The 3 values control brightness, saturation, and hue. 100,100,100 leaves the image unchanged. The first 2 are percentage multipliers and go from 0 to, I don't know, millions. The third controls the hue wheel in the LCH color space, and go from 0 to 200. Try changing that number to play with the color spectrum till you achieve the desired hue. So yeah perfect for adjusting multicolor icon themes.
Alright, my job here is done!
.
Addendum: what about subfolders and maintaining the same directory tree in the output folder?
There you go:
-------------------------------------
#!/bin/bash
INPUT_DIR="/home/user/input"
OUTPUT_DIR="/home/user/output"
mkdir -p "$OUTPUT_DIR"
find "$INPUT_DIR" -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.bmp" \) | while read -r file; do
INDENT REL_PATH="${file#$INPUT_DIR/}"
INDENT OUT_DIR="$OUTPUT_DIR/$(dirname "$REL_PATH")"
INDENT mkdir -p "$OUT_DIR"
INDENT convert "$file" -strip -set colorspace sRGB -define modulate:colorspace=LCHab -modulate 100,100,16 -colorspace sRGB "$OUT_DIR/$(basename "$file")"
done
echo "END"
read
-----------------------------------