66 lines
1.3 KiB
Bash
66 lines
1.3 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
#bar="▁▂▃▄▅▆▇█"
|
||
|
|
||
|
# 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 = 9
|
||
|
|
||
|
[output]
|
||
|
method = raw
|
||
|
raw_target = $pipe
|
||
|
data_format = ascii
|
||
|
ascii_max_range = 7
|
||
|
" > $config_file
|
||
|
|
||
|
# run cava in the background
|
||
|
cava -p $config_file &
|
||
|
|
||
|
#bar="▁▂▃▄▅▆▇█"
|
||
|
# reading data from fifo
|
||
|
while read -r cmd; do
|
||
|
i=0
|
||
|
output=""
|
||
|
while [ $i -lt $((${#cmd}/2)) ]
|
||
|
do
|
||
|
number="${cmd:$i*2:1}"
|
||
|
i=$((i=i+1))
|
||
|
case "$number" in
|
||
|
0)
|
||
|
output="$output$(echo "%{F$1}▁")"
|
||
|
;;
|
||
|
1)
|
||
|
output="$output$(echo "%{F$2}▂")"
|
||
|
;;
|
||
|
2)
|
||
|
output="$output$(echo "%{F$3}▃")"
|
||
|
;;
|
||
|
3)
|
||
|
output="$output$(echo "%{F$4}▄")"
|
||
|
;;
|
||
|
4)
|
||
|
output="$output$(echo "%{F$5}▅")"
|
||
|
;;
|
||
|
5)
|
||
|
output="$output$(echo "%{F$6}▆")"
|
||
|
;;
|
||
|
6)
|
||
|
output="$output$(echo "%{F$7}▇")"
|
||
|
;;
|
||
|
7)
|
||
|
output="$output$(echo "%{F$8}█")"
|
||
|
esac
|
||
|
done
|
||
|
echo $output
|
||
|
|
||
|
done < $pipe
|