From 85ae438fbc238fe56bcb1c10a12ec52365053cb6 Mon Sep 17 00:00:00 2001 From: Biswakalyan Bhuyan Date: Sat, 26 Feb 2022 20:31:12 +0530 Subject: dwmbar dotfiles --- modules/volumebar | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 modules/volumebar (limited to 'modules/volumebar') diff --git a/modules/volumebar b/modules/volumebar new file mode 100755 index 0000000..219428d --- /dev/null +++ b/modules/volumebar @@ -0,0 +1,40 @@ +#!/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=$(python -c "print(($volume / 100) * $VOLUME_WIDTH)") + + 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 -- cgit v1.2.3-59-g8ed1b