#!/bin/bash/ #SE ENCARGA DE DESPLEGAR EN UN DMENU CON LA LISTA DE WALLPAPERS QUE HAY EN /scripts/wallpapers_list.txt #Y AL SELECCIONAR UNO MODIFICA EL ARCHIVO source ~/scripts/constantlib.sh #modifica el wallpaper recibe 3 parametros el link de steam, el monitor y el ajuste de pantalla setwallpaper='/home/arthur/scripts/set-wallpaperengine.sh' wengine_setter='/home/arthur/.config/themes/wallpaper-engine.sh' wengine_setter_tema='/home/arthur/.config/themes/wallpaper-engine.sh.' not_found="$HOME/Pictures/.cache_wgengine/not_found.jpg" hyprpaper="$HOME/.config/hypr/hyprpaper.conf" dir="$HOME/.config/rofi/launchers/type-7" theme='style-9' wallpapers_dir="$HOME/Pictures/wallpapers" opciones_monitors="" opciones_wallpapers="" lineas_wallpapers=0 label="󰍹_Monitor: " label_w="_Wallpaper: " linea4=$( sed -n '4p' ~/.bashrc ) valor_tem=$(echo $linea4 | cut -d '=' -f2) wengine_setter_tema=$wengine_setter_tema$valor_tem opciones_wallpapers=$opciones_wallpapers"kill ~ none\n" while read -r nombre url scaling; do ID=$(cut -c 56-$lenght <<< $url) img="$HOME/Pictures/.cache_wgengine/$ID.png" nombre=$(printf '%-35s' "$nombre") if [ -e "$img" ]; then opciones_wallpapers=$opciones_wallpapers$nombre" ~ "$url" ~ "$scaling"\0icon\x1f$img\n" else opciones_wallpapers=$opciones_wallpapers$nombre" ~ "$url" ~ "$scaling"\0icon\x1f$not_found\n" fi done < ~/scripts/wallpapers_list.txt wallpaper=$(echo -e "$opciones_wallpapers" | rofi -dmenu -p "$label_w" -theme ${dir}/${theme}.rasi ) if [ -z "$wallpaper" ]; then exit 1 fi IFS='~' read -r -a partes <<< "$wallpaper" wallpaper=${partes[1]} opc=${partes[0]} scaling=${partes[2]} wallpaper=$(echo "$wallpaper" | sed 's/^[ \t]*//;s/[ \t]*$//') opc=$(echo "$opc" | sed 's/^[ \t]*//;s/[ \t]*$//') #poner wallpaper al inicio del archivo de wallpapers #primero eliminar fila sed -i "/^$opc[[:space:]]/d" ~/scripts/wallpapers_list.txt sed -i "1i$opc $wallpaper $scaling" ~/scripts/wallpapers_list.txt if [ $opc == 'kill' ]; then killall linux-wallpaperengine sed -i "/^sh /c\sh ${setwallpaper} > /dev/null \&" "$wengine_setter" sed -i "/^sh /c\sh ${setwallpaper} > /dev/null \&" "$wengine_setter_tema" else temp_mon=$( hyprctl monitors -j | jq -r '.[].name' ) while IFS= read -r line do ruta=$(grep "wallpaper = $line," $hyprpaper | cut -d',' -f2) opciones_monitors="$opciones_monitors$line""\0icon\x1f$ruta\n" done <<< "$temp_mon" monitor=$( echo -e "$opciones_monitors" |rofi -dmenu -p "$label" -theme ${dir}/${theme}.rasi ) IFS='\0icon' read -r -a partes <<< "$monitor" monitor=${partes[0]} echo "MONITORES: "$monitor if [ -z "$monitor" ]; then exit 1 fi echo "HACIENDO SED DE :>>>>>>>"$monitor sed -i "/#${monitor} preload/{n;s|^sh .*|sh ${setwallpaper} ${wallpaper} ${monitor} ${scaling} > /dev/null \& |}" "$wengine_setter" #sed -i "/#${monitor} preload/{n;s|^sh .*|sh ${setwallpaper} ${wallpaper} ${monitor} ${scaling} |}" "$wengine_setter_tema" #PYWAL GENERATE lenght=$(echo $wallpaper| wc -c) workspace_ID=$(cut -c 56-$lenght <<< $wallpaper) IMG_PATH=$HOME'/Pictures/.cache_wgengine/'$workspace_ID'.png' if [ -e "$IMG_PATH" ]; then echo "El archivo existe" else linux-wallpaperengine --bg $workspace_ID --screenshot $IMG_PATH > /dev/null & sleep 3 echo "El archivo no existe" echo "archivo creado>>>"$IMG_PATH fi sh $HOME/.config/ranger/set_wallpaper.sh $IMG_PATH $monitor fi killall linux-wallpaperengine sh $wengine_setter