mirror of
https://git.adityakumar.xyz/dwmbar.git
synced 2024-11-21 18:12:53 +00:00
40 lines
1.1 KiB
Bash
Executable file
40 lines
1.1 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Prints out the volume percentage
|
|
|
|
# Dependencies: bc
|
|
|
|
VOLUME_WIDTH=9
|
|
VOLUME_SLIDER='⬤'
|
|
VOLUME_RAIL='◯'
|
|
VOLUME_MUTED='muted'
|
|
|
|
PREFIX=''
|
|
|
|
# If volume is >100
|
|
ALERT='!!!'
|
|
|
|
get_volume(){
|
|
active_sink=$(pacmd list-sinks | awk '/* index:/{print $3}')
|
|
curStatus=$(pacmd list-sinks | grep -A 15 "index: $active_sink$" | awk '/muted/{ print $2}')
|
|
volume=$(pacmd list-sinks | grep -A 15 "index: $active_sink$" | grep 'volume:' | grep -E -v 'base volume:' | awk -F : '{print $3}' | grep -o -P '.{0,3}%'| sed s/.$// | tr -d ' ')
|
|
slider_position=$(echo "scale=scale(1.0); x = ($volume / 100) * $VOLUME_WIDTH; scale=scale(1); x / 1" | bc)
|
|
|
|
if [ "${curStatus}" = 'yes' ]
|
|
then
|
|
echo "$VOLUME_MUTED"
|
|
exit 0
|
|
else
|
|
for i in $(seq 1 $VOLUME_WIDTH); do
|
|
[[ $i = $slider_position ]] && BAR=$BAR$VOLUME_SLIDER
|
|
[[ $i < $slider_position ]] && BAR=$BAR$VOLUME_SLIDER
|
|
[[ $i > $slider_position ]] && BAR=$BAR$VOLUME_RAIL
|
|
done
|
|
fi
|
|
|
|
[[ $volume -gt 100 ]] && PREFIX=$PREFIX$ALERT
|
|
|
|
echo "$PREFIX$BAR"
|
|
}
|
|
|
|
get_volume
|