9 changed files with 135 additions and 8 deletions
@ -0,0 +1,96 @@ |
|||||||
|
#!/bin/bash |
||||||
|
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # |
||||||
|
# Wallpaper Effects using imagemagick |
||||||
|
# Inspiration from ML4W - Stephan Raabe https://gitlab.com/stephan-raabe/dotfiles |
||||||
|
|
||||||
|
# variables |
||||||
|
current_wallpaper="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current" |
||||||
|
wallpaper_output="$HOME/.config/hypr/wallpaper_effects/.wallpaper_modified" |
||||||
|
SCRIPTSDIR="$HOME/.config/hypr/scripts" |
||||||
|
focused_monitor=$(hyprctl monitors | awk '/^Monitor/{name=$2} /focused: yes/{print name}') |
||||||
|
|
||||||
|
# Directory for swaync |
||||||
|
iDIR="$HOME/.config/swaync/images" |
||||||
|
|
||||||
|
# swww transition config |
||||||
|
FPS=60 |
||||||
|
TYPE="wipe" |
||||||
|
DURATION=2 |
||||||
|
BEZIER=".43,1.19,1,.4" |
||||||
|
SWWW_PARAMS="--transition-fps $FPS --transition-type $TYPE --transition-duration $DURATION" |
||||||
|
|
||||||
|
# Define ImageMagick effects |
||||||
|
# https://imagemagick.org/script/magick.php |
||||||
|
|
||||||
|
declare -A effects=( |
||||||
|
["Black and White"]="magick $current_wallpaper -set colorspace Gray -separate -average $wallpaper_output" |
||||||
|
["Blurred"]="magick $current_wallpaper -blur "20x30" $wallpaper_output" |
||||||
|
["Solarize"]="magick $current_wallpaper -solarize 80% $wallpaper_output" |
||||||
|
["Sepia-Tone"]="magick $current_wallpaper -sepia-tone 65% $wallpaper_output" |
||||||
|
["Negate"]="magick $current_wallpaper -negate $wallpaper_output" |
||||||
|
["Charcoal"]="magick $current_wallpaper -charcoal "10x90" $wallpaper_output" |
||||||
|
["No Effects"]="no-effects" |
||||||
|
) |
||||||
|
|
||||||
|
# Function to apply no effects |
||||||
|
no_effects() { |
||||||
|
swww img -o "$focused_monitor" "$current_wallpaper" $SWWW_PARAMS & |
||||||
|
# Wait for swww command to complete |
||||||
|
wait $! |
||||||
|
# Run other commands after swww |
||||||
|
wallust run "$current_wallpaper" -s & |
||||||
|
# Wait to complete |
||||||
|
wait $! |
||||||
|
# Refresh rofi, waybar, wallust palettes |
||||||
|
"${SCRIPTSDIR}/Refresh.sh" |
||||||
|
notify-send -u low -i "$iDIR/bell.png" "No wallpaper effects" |
||||||
|
} |
||||||
|
|
||||||
|
# Function to run rofi menu |
||||||
|
main() { |
||||||
|
# Populate rofi menu options |
||||||
|
options="No Effects\n" |
||||||
|
for effect in "${!effects[@]}"; do |
||||||
|
if [ "$effect" != "No Effects" ]; then |
||||||
|
options+="$effect\n" |
||||||
|
fi |
||||||
|
done |
||||||
|
|
||||||
|
# rofi |
||||||
|
choice=$(echo -e "$options" | rofi -i -dmenu -config ~/.config/rofi/config-wallpaper-effect.rasi) |
||||||
|
if [ ! -z "$choice" ]; then |
||||||
|
# Check if the choice exists in the array |
||||||
|
if [[ "${effects[$choice]+exists}" ]]; then |
||||||
|
if [ "$choice" == "No Effects" ]; then |
||||||
|
no_effects |
||||||
|
else |
||||||
|
# Apply selected effect |
||||||
|
notify-send -i "$iDIR/bell.png" "Applying $choice effects" |
||||||
|
eval "${effects[$choice]}" |
||||||
|
# Wait for effects to be applied |
||||||
|
sleep 1 |
||||||
|
# Execute swww command after image conversion |
||||||
|
swww img -o "$focused_monitor" "$wallpaper_output" $SWWW_PARAMS & |
||||||
|
# Wait for swww command to complete |
||||||
|
wait $! |
||||||
|
# Run other commands after swww |
||||||
|
wallust run "$wallpaper_output" -s & |
||||||
|
# Wait for other commands to finish |
||||||
|
wait $! |
||||||
|
# Refresh rofi, waybar, wallust palettes |
||||||
|
"${SCRIPTSDIR}/Refresh.sh" |
||||||
|
notify-send -u low -i "$iDIR/bell.png" "$choice effects applied" |
||||||
|
fi |
||||||
|
else |
||||||
|
echo "Effects not recognized." |
||||||
|
fi |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
# Check if rofi is already running |
||||||
|
if pidof rofi > /dev/null; then |
||||||
|
pkill rofi |
||||||
|
exit 0 |
||||||
|
fi |
||||||
|
|
||||||
|
main |
||||||
|
After Width: | Height: | Size: 13 MiB |
|
After Width: | Height: | Size: 4.3 MiB |
Loading…
Reference in new issue