diff --git a/.config/waybar/scripts/caway b/.config/waybar/scripts/caway deleted file mode 100755 index d20ee431..00000000 --- a/.config/waybar/scripts/caway +++ /dev/null @@ -1,115 +0,0 @@ -#!/usr/bin/bash - -# Nuke all internal spawns when script dies -trap "trap - SIGTERM && kill -- -$$" SIGINT SIGTERM - -BARS=8; -FRAMERATE=60; -EQUILIZER=1; - -# Get script options -while getopts 'b:f:m:eh' flag; do - case "${flag}" in - b) BARS="${OPTARG}" ;; - f) FRAMERATE="${OPTARG}" ;; - e) EQUILIZER=0 ;; - h) - echo "caway usage: caway [ options ... ]" - echo "where options include:" - echo - echo " -b (Number of bars to display. Default 8)" - echo " -f (Framerate of the equilizer. Default 60)" - echo " -e (Disable equilizer. Default enabled)" - echo " -h (Show help message)" - exit 0 - ;; - esac -done - -bar="▁▂▃▄▅▆▇█" -dict="s/;//g;" - -# creating "dictionary" to replace char with bar + thin space " " -i=0 -while [ $i -lt ${#bar} ] -do - dict="${dict}s/$i/${bar:$i:1} /g;" - i=$((i=i+1)) -done - -# Remove last extra thin space -dict="${dict}s/.$//;" - -clean_create_pipe() { - if [ -p $1 ]; then - unlink $1 - fi - mkfifo $1 -} - -kill_pid_file() { - if [[ -f $1 ]]; then - while read pid; do - { kill "$pid" && wait "$pid"; } 2>/dev/null - done < $1 - fi -} - -# PID of the cava process and while loop launched from the script -cava_waybar_pid="/tmp/cava_waybar_pid" - -# Clean pipe for cava -cava_waybar_pipe="/tmp/cava_waybar.fifo" -clean_create_pipe $cava_waybar_pipe - -# Custom cava config -cava_waybar_config="/tmp/cava_waybar_config" -echo " -[general] -mode = normal -framerate = $FRAMERATE -bars = $BARS - -[output] -method = raw -raw_target = $cava_waybar_pipe -data_format = ascii -ascii_max_range = 7 -" > $cava_waybar_config - -# Clean pipe for playerctl -playerctl_waybar_pipe="/tmp/playerctl_waybar.fifo" -clean_create_pipe $playerctl_waybar_pipe - -# playerctl output into playerctl_waybar_pipe -playerctl -a metadata --format '{"text": "{{artist}} - {{title}}", "tooltip": "{{playerName}} : {{markup_escape(artist)}} - {{markup_escape(title)}}", "alt": "{{status}}", "class": "{{status}}"}' -F >$playerctl_waybar_pipe & - -# Read the playerctl o/p via its fifo pipe -while read -r line; do - # Kill the cava process to stop the input to cava_waybar_pipe - kill_pid_file $cava_waybar_pid - - echo "$line" | jq --unbuffered --compact-output - - # If the class says "Playing" and equilizer is enabled - # then show the cava equilizer - if [[ $EQUILIZER == 1 && $(echo $line | jq -r '.class') == 'Playing' ]]; then - # Show the playing title for 2 seconds - sleep 2 - - # cava output into cava_waybar_pipe - cava -p $cava_waybar_config >$cava_waybar_pipe & - - # Save the PID of child process - echo $! > $cava_waybar_pid - - # Read the cava o/p via its fifo pipe - while read -r cmd2; do - # Change the "text" key to bars - echo "$line" | jq --arg a $(echo $cmd2 | sed "$dict") '.text = $a' --unbuffered --compact-output - done < $cava_waybar_pipe & # Do this fifo read in background - - # Save the while loop PID into the file as well - echo $! >> $cava_waybar_pid - fi -done < $playerctl_waybar_pipe