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

51 lines
717 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 = 10
lower_cutoff_freq = 12
[output]
method = raw
raw_target = $pipe
data_format = ascii
ascii_max_range = 7
[smoothing]
monstercat = 1
waves = 1
[eq]
2 = 0
3 = 0
4 = 0
" > $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