Files
wallpapers/.set-wallpaper.sh
2026-08-08 21:11:13 +02:00

47 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
if [[ -z $WALLPAPER_HOME ]]; then
WALLPAPER_HOME="~/wallpapers/"
fi
if [[ -z $1 ]]; then
THEME=$THEME_MODE
else
THEME=$1
fi
WALLPAPER_HOME=$(realpath "${WALLPAPER_HOME/#~/$HOME}")
selected_file=$(
(
while IFS= read -r file; do
# Pass the image path as an icon
printf "%s\0icon\x1f%s\n" "$(basename "$file")" "$file"
done < <(find "$WALLPAPER_HOME" -maxdepth 1 -name '*.jpg')
) | sort | rofi -dmenu -i -show-icons -p "Wallpapers" \
-theme-str '
window { width: 600px; }
listview { lines: 5; columns: 1; }
element { orientation: horizontal; children: [ element-icon, element-text ]; spacing: 10px; padding: 10px; }
element-icon { size: 3em; }
element-text { vertical-align: 0.5; }'
)
if [ -z "$selected_file" ]; then
exit 1
fi
if [ ! -d "$WALLPAPER_HOME/current" ]; then
mkdir -p "$WALLPAPER_HOME/current/"
fi
selected="$WALLPAPER_HOME/$selected_file"
echo "$selected" > "$WALLPAPER_HOME/current/selected"
magick "$selected" -scale 10% -blur 0x2.5 -resize 1000% "$WALLPAPER_HOME/current/blurred.jpg"
cp "$selected" "$WALLPAPER_HOME/current/current.jpg"
export WALLPAPER=$(cat "$WALLPAPER_HOME/current/selected")
magick "$WALLPAPER_HOME/current/current.jpg" -gravity Center -crop 40x40%+0+0 +repage /tmp/matugen_target.jpg
hyprctl hyprpaper wallpaper ", $WALLPAPER"
matugen -t scheme-fidelity -m $THEME --source-color-index 0 image "/tmp/matugen_target.jpg" --lightness-dark 0.066
gsettings set org.gnome.desktop.interface gtk-theme 'adw-gtk-theme'
gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'