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