#! /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