dotfiles/.config/polybar/scripts/cava.sh

47 lines
714 B
Bash
Executable file

#! /bin/bash
bar="▁▂▃▄▅▆▇█"
dict="s/;//g;"
# creating "dictionary" to replace char with bar
i=0
while [ $i -lt ${#bar} ]
do
dict="${dict}s/$i/${bar:$i:1}/g;"
i=$((i=i+1))
done
# make sure to clean pipe
pipe="/tmp/cava.fifo"
if [ -p $pipe ]; then
unlink $pipe
fi
mkfifo $pipe
# write cava config
config_file="/tmp/polybar_cava_config"
echo "
[general]
bars = 50
lower_cutoff_freq = 12
sleep_timer = 10
[output]
method = raw
raw_target = $pipe
data_format = ascii
ascii_max_range = 7
[smoothing]
; monstercat = 1
; waves = 1
" > $config_file
# run cava in the background
cava -p $config_file &
# reading data from fifo
while read -r cmd; do
echo $cmd | sed $dict
done < $pipe