#!/usr/bin/env bash get_status() { s=$1 if [ "$s" = "Playing" ]; then echo "" else echo "" fi } get_length_sec() { len=$1 if [ -z "$len" ]; then echo 0 else bc <<< "$len / 1000000" fi } get_length_time() { len=$1 if [ -n "$len" ]; then len=$(bc <<< "$len / 1000000 + 1") date -d@"$len" +%M:%S else echo "" fi } get_position() { pos=$1 len=$2 if [ -n "$pos" ]; then bc -l <<< "$pos / $len * 100" else echo 0 fi } get_position_time() { pos=$1 if [ -n "$pos" ]; then date -d@"$(bc <<< "$pos / 1000000")" +%M:%S else echo "" fi } get_cover() { # COVER_URL=$1 mkdir -p "eww_covers" cd "eww_covers" || exit IMGPATH="cover_art" playerctl -F metadata mpris:artUrl 2>/dev/null | while read -r COVER_URL; do if [[ "$COVER_URL" = https* ]]; then # if [ ! -e "eww_covers/$(basename "$COVER_URL")" ]; then # wget -N "$COVER_URL" -o /dev/null # # wget -N "$COVER_URL" -o "$IMGPATH" # fi # ln -s "$(basename "$COVER_URL")" "$IMGPATH" # echo "$IMGPATH" coverurl="$(playerctl metadata mpris:artUrl)" wget -O "$IMGPATH" "$coverurl" -q coverpath="$IMGPATH" wal -c themejson=$(wal -i "$IMGPATH" -n -t -e -s | grep -e 'color1' | sed 's/'\''/"/g') printf '{"image": "eww_covers/'"$coverpath"'", "color": '"$themejson"'}\n' # printf '{"image": "eww_covers/'"$coverpath"'"}\n' # echo "$themejson" | gojq '.colors' # echo 'COLORS: ' # notify-send 'eww' 'i found a url!' cd .. # notify-send 'eww color changer' "here i go in the dir that has $(ls | tr '\n' ' ')" echo '//Auto generated color theme for image at:' "$coverurl" > './tmp/_colorscheme.colorpallete' printf '$colorbg: ' >> './tmp/_colorscheme.colorpallete' echo "$themejson" | gojq '.colors.color0' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete' echo '' >> './tmp/_colorscheme.colorpallete' printf '$colortext: ' >> './tmp/_colorscheme.colorpallete' printf "$themejson" | gojq '.colors.color4' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete' echo '' >> './tmp/_colorscheme.colorpallete' printf '$color0: ' >> './tmp/_colorscheme.colorpallete' printf "$themejson" | gojq '.colors.color1' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete' echo '' >> './tmp/_colorscheme.colorpallete' printf '$color1: ' >> './tmp/_colorscheme.colorpallete' printf "$themejson" | gojq '.colors.color2' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete' echo '' >> './tmp/_colorscheme.colorpallete' printf '$color2: ' >> './tmp/_colorscheme.colorpallete' printf "$themejson" | gojq '.colors.color3' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete' echo '' >> './tmp/_colorscheme.colorpallete' printf '$color3: ' >> './tmp/_colorscheme.colorpallete' printf "$themejson" | gojq '.colors.color4' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete' echo '' >> './tmp/_colorscheme.colorpallete' printf '$color4: ' >> './tmp/_colorscheme.colorpallete' printf "$themejson" | gojq '.colors.color5' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete' echo '' >> './tmp/_colorscheme.colorpallete' printf '$color5: ' >> './tmp/_colorscheme.colorpallete' printf "$themejson" | gojq '.colors.color6' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete' echo '' >> './tmp/_colorscheme.colorpallete' printf '$color6: ' >> './tmp/_colorscheme.colorpallete' printf "$themejson" | gojq '.colors.color7' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete' echo '' >> './tmp/_colorscheme.colorpallete' printf '$color7: ' >> './tmp/_colorscheme.colorpallete' printf "$themejson" | gojq '.colors.color4' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete' echo '' >> './tmp/_colorscheme.colorpallete' # printf '$colormusic: ' >> './tmp/_colorscheme.colorpallete' # printf "$themejson" | gojq '.colors.color4' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete' # echo '' >> './tmp/_colorscheme.colorpallete' # Border gradient: color6 -> color5 -> color7 gradient1=$(echo -n "$themejson" | gojq '.colors.color6' | sed 's/"//g') gradient2=$(echo -n "$themejson" | gojq '.colors.color5' | sed 's/"//g') gradient3=$(echo -n "$themejson" | gojq '.colors.color7' | sed 's/"//g') echo '# Auto generated color theme for image at:' "$coverurl" > './tmp/colors_generated.conf' echo 'general {' >> './tmp/colors_generated.conf' echo ' col.active_border = rgba('"${gradient1#*#}FF"') rgba('"${gradient2#*#}FF"') rgba('"${gradient3#*#}FF"') 45deg' >> './tmp/colors_generated.conf' echo ' col.inactive_border = rgba('"${gradient1#*#}66"')' >> './tmp/colors_generated.conf' echo '}' >> './tmp/colors_generated.conf' # cp './tmp/_colorscheme.colorpallete' './css/_colorscheme.scss' cd "eww_covers" || exit # notify-send 'eww color changer' 'okie dokie' elif [ "$COVER_URL" = "" ]; then echo '{"image": "", "color": "$bg"}' else COVER_URL="${COVER_URL:7}" cp "$COVER_URL" "$IMGPATH" coverpath="$IMGPATH" wal -c themejson=$(wal -i "$IMGPATH" -n -t -e -s | grep -e 'color1' | sed 's/'\''/"/g') printf '{"image": "eww_covers/'"$coverpath"'", "color": '"$themejson"'}\n' # echo "$themejson" printf '{"image": "'"$COVER_URL"'", "color": '"$themejson"'}\n' # printf '{"image": "eww_covers/'"$coverpath"'"}\n' # echo "$themejson" | gojq '.colors' # echo 'COLORS: ' # notify-send 'eww' 'i found a file!' cd .. # notify-send 'eww color changer' "here i go in the dir that has $(ls | tr '\n' ' ')" echo '//Auto generated color theme for image at:' "$coverurl" > './tmp/_colorscheme.colorpallete' printf '$colorbg: ' >> './tmp/_colorscheme.colorpallete' echo "$themejson" | gojq '.colors.color0' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete' echo '' >> './tmp/_colorscheme.colorpallete' printf '$colortext: ' >> './tmp/_colorscheme.colorpallete' printf "$themejson" | gojq '.colors.color4' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete' echo '' >> './tmp/_colorscheme.colorpallete' printf '$color0: ' >> './tmp/_colorscheme.colorpallete' printf "$themejson" | gojq '.colors.color1' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete' echo '' >> './tmp/_colorscheme.colorpallete' printf '$color1: ' >> './tmp/_colorscheme.colorpallete' printf "$themejson" | gojq '.colors.color2' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete' echo '' >> './tmp/_colorscheme.colorpallete' printf '$color2: ' >> './tmp/_colorscheme.colorpallete' printf "$themejson" | gojq '.colors.color3' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete' echo '' >> './tmp/_colorscheme.colorpallete' printf '$color3: ' >> './tmp/_colorscheme.colorpallete' printf "$themejson" | gojq '.colors.color4' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete' echo '' >> './tmp/_colorscheme.colorpallete' printf '$color4: ' >> './tmp/_colorscheme.colorpallete' printf "$themejson" | gojq '.colors.color5' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete' echo '' >> './tmp/_colorscheme.colorpallete' printf '$color5: ' >> './tmp/_colorscheme.colorpallete' printf "$themejson" | gojq '.colors.color6' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete' echo '' >> './tmp/_colorscheme.colorpallete' printf '$color6: ' >> './tmp/_colorscheme.colorpallete' printf "$themejson" | gojq '.colors.color7' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete' echo '' >> './tmp/_colorscheme.colorpallete' printf '$color7: ' >> './tmp/_colorscheme.colorpallete' printf "$themejson" | gojq '.colors.color4' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete' echo '' >> './tmp/_colorscheme.colorpallete' # printf '$colormusic: ' >> './tmp/_colorscheme.colorpallete' # printf "$themejson" | gojq '.colors.color4' | sed 's/"//g' | tr '\n' ';' >> './tmp/_colorscheme.colorpallete' # echo '' >> './tmp/_colorscheme.colorpallete' # Border gradient: color6 -> color5 -> color7 gradient1=$(echo -n "$themejson" | gojq '.colors.color6' | sed 's/"//g') gradient2=$(echo -n "$themejson" | gojq '.colors.color5' | sed 's/"//g') gradient3=$(echo -n "$themejson" | gojq '.colors.color7' | sed 's/"//g') echo '# Auto generated color theme for image at:' "$coverurl" > './tmp/colors_generated.conf' echo 'general {' >> './tmp/colors_generated.conf' echo ' col.active_border = rgba('"${gradient1#*#}FF"') rgba('"${gradient2#*#}FF"') rgba('"${gradient3#*#}FF"') 45deg' >> './tmp/colors_generated.conf' echo ' col.inactive_border = rgba('"${gradient1#*#}66"')' >> './tmp/colors_generated.conf' echo '}' >> './tmp/colors_generated.conf' # cp './tmp/_colorscheme.colorpallete' './css/_colorscheme.scss' cd "eww_covers" || exit fi done } # SANITIZE FIX sanitize() { echo "$1" | sed 's/"/\"/g' } if [ "$1" = "cover" ]; then get_cover else echo '{"artist": "", "title": "", "status": "", "position": "", "position_time": "", "length": ""}' playerctl -F metadata -f '{{title}}\{{artist}}\{{status}}\{{position}}\' 2>/dev/null | while IFS="$(printf '\\')" read -r title artist status position; do len=$(playerctl metadata mpris:length) gojq --null-input -r -c \ --arg artist "$(sanitize "$artist")" \ --arg title "$(sanitize "$title")" \ --arg status "$(get_status "$status")" \ --arg pos "$(get_position "$position" "$len")" \ --arg pos_time "$(get_position_time "$position")" \ --arg length "$(get_length_time "$len")" \ '{"artist": $artist, "title": $title, "status": $status, "position": $pos, "position_time": $pos_time, "length": $length}' done fi