37 lines
740 B
Bash
37 lines
740 B
Bash
|
#!/bin/bash
|
||
|
|
||
|
#----- Optimized bars animation without much CPU usage increase --------
|
||
|
bar="▁▂▃▄▅▆▇█"
|
||
|
dict="s/;//g"
|
||
|
|
||
|
# Calculate the length of the bar outside the loop
|
||
|
bar_length=${#bar}
|
||
|
|
||
|
# Create dictionary to replace char with bar
|
||
|
for ((i = 0; i < bar_length; i++)); do
|
||
|
dict+=";s/$i/${bar:$i:1}/g"
|
||
|
done
|
||
|
|
||
|
# Create cava config
|
||
|
config_file="/tmp/bar_cava_config"
|
||
|
cat >"$config_file" <<EOF
|
||
|
[general]
|
||
|
bars = 10
|
||
|
|
||
|
[input]
|
||
|
method = pulse
|
||
|
source = auto
|
||
|
|
||
|
[output]
|
||
|
method = raw
|
||
|
raw_target = /dev/stdout
|
||
|
data_format = ascii
|
||
|
ascii_max_range = 7
|
||
|
EOF
|
||
|
|
||
|
# Kill cava if it's already running
|
||
|
pkill -f "cava -p $config_file"
|
||
|
|
||
|
# Read stdout from cava and perform substitution in a single sed command
|
||
|
cava -p "$config_file" | sed -u "$dict"
|