Hyprland-dotfiles/hypr/scripts/wallpaper.sh

144 lines
5.4 KiB
Bash
Raw Normal View History

2023-08-17 10:59:28 -04:00
#!/bin/bash
2023-11-10 16:12:15 -05:00
# _ _
# __ ____ _| | |_ __ __ _ _ __ ___ _ __
# \ \ /\ / / _` | | | '_ \ / _` | '_ \ / _ \ '__|
# \ V V / (_| | | | |_) | (_| | |_) | __/ |
# \_/\_/ \__,_|_|_| .__/ \__,_| .__/ \___|_|
# |_| |_|
2023-08-17 11:44:09 -04:00
#
2024-05-23 09:47:31 -04:00
# by Stephan Raabe (2024)
2023-08-17 11:44:09 -04:00
# -----------------------------------------------------
2023-08-17 10:59:28 -04:00
2024-06-13 09:06:45 -04:00
# -----------------------------------------------------
2024-06-24 10:07:26 -04:00
# Get selected wallpaper
2024-06-13 09:06:45 -04:00
# -----------------------------------------------------
2024-06-24 10:07:26 -04:00
echo ":: Using wallpaper $1"
wallpaper=$1
2024-06-13 09:06:45 -04:00
# -----------------------------------------------------
# Check to use wallpaper cache
# -----------------------------------------------------
use_cache=0
if [ -f $HOME/dotfiles/.settings/wallpaper_cache ] ;then
use_cache=1
fi
if [ "$use_cache" == "1" ] ;then
echo ":: Using Wallpaper Cache"
else
echo ":: Wallpaper Cache disabled"
fi
# -----------------------------------------------------
# File and folder names
# -----------------------------------------------------
force_generate=0
generated_versions="$HOME/.cache/ml4w-wallpaper-generated"
2023-12-21 05:05:20 -05:00
cache_file="$HOME/.cache/current_wallpaper"
2024-06-13 09:06:45 -04:00
blurred_wallpaper="$HOME/.cache/blurred_wallpaper.png"
square_wallpaper="$HOME/.cache/square_wallpaper.png"
2023-12-21 05:05:20 -05:00
rasi_file="$HOME/.cache/current_wallpaper.rasi"
2024-03-14 12:18:48 -04:00
blur_file="$HOME/dotfiles/.settings/blur.sh"
blur="50x30"
blur=$(cat $blur_file)
2023-12-21 05:05:20 -05:00
# Create rasi file if not exists
if [ ! -f $rasi_file ] ;then
touch $rasi_file
2024-05-15 05:12:53 -04:00
echo "* { current-image: url(\"$wallpaper_folder/default.jpg\", height); }" > "$rasi_file"
2023-12-21 05:05:20 -05:00
fi
2024-06-13 09:06:45 -04:00
# Create folder with generated versions of wallpaper if not exists
if [ ! -d $generated_versions ] ;then
mkdir $generated_versions
fi
# -----------------------------------------------------
# Current wallpaper
# -----------------------------------------------------
2024-06-24 10:07:26 -04:00
current_wallpaper=$wallpaper
current_wallpaper_filename=$(basename $current_wallpaper)
echo ":: Current Wallpaper: $current_wallpaper"
echo ":: Current Wallpaper Filename: $current_wallpaper_filename"
newwall=$current_wallpaper_filename
2023-08-17 11:44:09 -04:00
# -----------------------------------------------------
2024-06-13 09:06:45 -04:00
# Execute pywal
2023-08-17 11:44:09 -04:00
# -----------------------------------------------------
2024-06-24 10:07:26 -04:00
echo ":: Execute wallpaper"
wal -q -i $wallpaper
2023-08-17 10:59:28 -04:00
source "$HOME/.cache/wal/colors.sh"
2024-06-13 09:06:45 -04:00
# -----------------------------------------------------
# Wallpaper Effects
# -----------------------------------------------------
2024-05-28 09:36:16 -04:00
if [ -f $HOME/dotfiles/.settings/wallpaper-effect.sh ] ;then
effect=$(cat $HOME/dotfiles/.settings/wallpaper-effect.sh)
if [ ! "$effect" == "off" ] ;then
2024-06-24 10:07:26 -04:00
used_wallpaper=$generated_versions/$effect-$newwall
2024-06-13 09:06:45 -04:00
if [ -f $generated_versions/$effect-$newwall ] && [ "$force_generate" == "0" ] && [ "$use_cache" == "1" ] ;then
2024-06-24 10:07:26 -04:00
echo ":: Use cached wallpaper $effect-$newwall"
2024-05-28 09:36:16 -04:00
else
2024-06-13 09:06:45 -04:00
echo ":: Generate new cached wallpaper $effect-$newwall with effect $effect"
if [ "$1" == "init" ] ;then
echo ":: Init"
else
dunstify "Using wallpaper effect $effect..." "with image $newwall" -h int:value:10 -h string:x-dunst-stack-tag:wallpaper
fi
source $HOME/dotfiles/hypr/effects/wallpaper/$effect
2024-05-28 09:36:16 -04:00
fi
2024-06-24 10:07:26 -04:00
echo ":: Loading wallpaper $generated_versions/$effect-$newwall with effect $effect"
killall -e hyprpaper &
sleep 1;
wal_tpl=$(cat $HOME/dotfiles/.settings/hyprpaper.tpl)
echo $wal_tpl
output=${wal_tpl//WALLPAPER/$used_wallpaper}
echo "$output" > $HOME/dotfiles/hypr/hyprpaper.conf
hyprpaper & > /dev/null 2>&1
2024-06-13 09:06:45 -04:00
else
echo ":: Wallpaper effect is set to off"
2024-05-28 09:36:16 -04:00
fi
fi
2024-03-07 09:51:34 -05:00
# -----------------------------------------------------
# Created blurred wallpaper
2024-03-08 04:18:45 -05:00
# -----------------------------------------------------
2024-06-13 09:06:45 -04:00
if [ -f $generated_versions/blur-$blur-$newwall.png ] && [ "$force_generate" == "0" ] && [ "$use_cache" == "1" ] ;then
echo ":: Use cached wallpaper blur-$blur-$newwall.png"
else
echo ":: Generate new cached wallpaper blur-$blur-$newwall with blur $blur"
if [ "$1" == "init" ] ;then
echo ":: Init"
else
dunstify "Creating blurred version ..." "with image $newwall" -h int:value:50 -h string:x-dunst-stack-tag:wallpaper
fi
2024-06-24 10:07:26 -04:00
magick $wallpaper -resize 75% $blurred_wallpaper
2024-06-13 09:06:45 -04:00
echo ":: Resized to 75%"
if [ ! "$blur" == "0x0" ] ;then
magick $blurred_wallpaper -blur $blur $blurred_wallpaper
cp $blurred_wallpaper $generated_versions/blur-$blur-$newwall.png
echo ":: Blurred"
fi
cp $generated_versions/blur-$blur-$newwall.png $blurred_wallpaper
2024-03-18 05:50:51 -04:00
fi
2024-06-13 09:06:45 -04:00
cp $generated_versions/blur-$blur-$newwall.png $blurred_wallpaper
2024-03-18 05:50:51 -04:00
2024-04-14 07:02:29 -04:00
# -----------------------------------------------------
2024-06-13 09:06:45 -04:00
# Created square wallpaper
2024-04-14 07:02:29 -04:00
# -----------------------------------------------------
2024-06-13 09:06:45 -04:00
if [ -f $generated_versions/square-$newwall.png ] && [ "$force_generate" == "0" ] && [ "$use_cache" == "1" ] ;then
echo ":: Use cached wallpaper square-$newwall.png"
2024-04-14 07:02:29 -04:00
else
2024-06-13 09:06:45 -04:00
echo ":: Generate new cached wallpaper square-$newwall"
if [ "$1" == "init" ] ;then
echo ":: Init"
else
dunstify "Creating square version ..." "with image $newwall" -h int:value:75 -h string:x-dunst-stack-tag:wallpaper
fi
magick $wallpaper -gravity Center -extent 1:1 $square_wallpaper
cp $square_wallpaper $generated_versions/square-$newwall.png
2024-04-14 07:02:29 -04:00
fi
2024-06-13 09:06:45 -04:00
cp $generated_versions/square-$newwall.png $square_wallpaper