From 57793c2dda34ca6ff39767769f898c4df2255f2c Mon Sep 17 00:00:00 2001 From: retrilzzy Date: Sun, 9 Nov 2025 23:19:13 +0500 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D1=81=D0=BA=D1=80=D0=B8=D0=BF=D1=82=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA=D0=B8?= =?UTF-8?q?=20=D1=84=D0=BE=D0=BD=D0=B0=20=D0=B8=20=D0=B7=D0=B0=D0=BF=D1=83?= =?UTF-8?q?=D1=81=D0=BA=D0=B0=20matugen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.config/retrilz-scripts/change-wall.sh | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100755 Configs/.config/retrilz-scripts/change-wall.sh diff --git a/Configs/.config/retrilz-scripts/change-wall.sh b/Configs/.config/retrilz-scripts/change-wall.sh new file mode 100755 index 0000000..3783bb7 --- /dev/null +++ b/Configs/.config/retrilz-scripts/change-wall.sh @@ -0,0 +1,57 @@ +#!/bin/bash + +set -euo pipefail + +cache_dir="$HOME/.cache" +lock_bg_path="$cache_dir/lock_background" + +if [[ $# -lt 1 ]]; then + echo "Usage: $0 " + exit 1 +fi + +folder=${1/#\~/$HOME} +if [[ ! -d "$folder" ]]; then + echo "Error: directory '$folder' does not exist." + exit 1 +fi + +mapfile -t all_images < <( + find "$folder" -type f \( -iname '*.jpg' -o -iname '*.png' -o -iname '*.jpeg' \) | sort +) + +if ((${#all_images[@]} == 0)); then + echo "Error: no images found in '$folder'." + exit 1 +fi + +mapfile -t shuffled_images < <(shuf -e "${all_images[@]}") + +current_image=$(swww query -a | grep -oP 'image:\s*\K.*' || true) +selected_image="" + +for img in "${shuffled_images[@]}"; do + if [[ "$img" != "$current_image" ]]; then + selected_image="$img" + break + fi +done + +if [[ -z "$selected_image" ]]; then + selected_image="${all_images[RANDOM % ${#all_images[@]}]}" +fi + +echo "Selected image: $selected_image" + +swww img -t grow \ + --transition-duration 1.8 \ + --transition-step 200 \ + --transition-fps 60 \ + "$selected_image" + +matugen image "$selected_image" + +mkdir -p "$cache_dir" +cp "$selected_image" "$lock_bg_path" + +echo "Lock background saved to: $lock_bg_path"