summaryrefslogtreecommitdiff
path: root/config/hypr/wallpapers.sh
blob: cf797abccd0fa5ef4b9d0e234496fbe6a014e9d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/env bash
# lightning-randomize-wallpapers-unique.sh

WALLPAPER_DIR="$HOME/Pictures/Wallpapers"
cd "$WALLPAPER_DIR" || exit 1

# Собираем все картинки в массив
files=(*.{jpg,jpeg,png})
[ ${#files[@]} -eq 0 ] && exit 0

# Массив для уже сгенерированных имён
declare -A used_names

# Перемешиваем массив файлов
shuffled=($(printf "%s\n" "${files[@]}" | shuf))

# Функция генерации случайного имени с проверкой уникальности
generate_unique_name() {
  local ext=$1
  local name
  while :; do
    name="$(tr -dc a-z0-9 </dev/urandom | head -c 3).$ext"
    [[ -z "${used_names[$name]}" ]] && break
  done
  used_names[$name]=1
  echo "$name"
}

# Переименовываем файлы
for file in "${shuffled[@]}"; do
  ext="${file##*.}"
  rand_name=$(generate_unique_name "$ext")
  mv "$file" "$rand_name"
done