aboutsummaryrefslogtreecommitdiffstats
path: root/config/hypr/UserScripts
diff options
context:
space:
mode:
authorJaKooLit <ejhay.games@gmail.com>2024-06-03 17:23:26 +0900
committerJaKooLit <ejhay.games@gmail.com>2024-06-03 17:23:26 +0900
commitc2578231edeb0cb812bcd038d11d295132872141 (patch)
treed384084a1caadfa09220219777e190a8ef055710 /config/hypr/UserScripts
parentd62b220ebc2c60c2f11e47f35616d9e803c07dd4 (diff)
Wallpaper-Effects (Super Shift W)
Diffstat (limited to 'config/hypr/UserScripts')
-rwxr-xr-xconfig/hypr/UserScripts/WallpaperEffects.sh96
1 files changed, 96 insertions, 0 deletions
diff --git a/config/hypr/UserScripts/WallpaperEffects.sh b/config/hypr/UserScripts/WallpaperEffects.sh
new file mode 100755
index 00000000..de4470d2
--- /dev/null
+++ b/config/hypr/UserScripts/WallpaperEffects.sh
@@ -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
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage