volume

Print audio volume levels and draw sxalert OSD
git clone git://mcdim.xyz/volume.git
Log | Files | Refs | README

volume.sh (1827B)


      1 #!/bin/sh
      2 
      3 mute=$(pactl get-sink-mute @DEFAULT_SINK@  | cut -d" " -f2)
      4 str="yes"
      5 
      6 pidfile="${XDG_RUNTIME_DIR:-/tmp}/sxalert-volume.pid"
      7 
      8 if [ -f "$pidfile" ]; then
      9     kill "$(cat "$pidfile")" 2>/dev/null
     10 fi
     11 
     12 if [ "$mute" = "$str" ];
     13 then
     14 	echo "Muted"
     15 	sxalert " " " Muted" " " -d 730 -g 0 -r ffffff \
     16 	        -t ffffff </dev/null >/dev/null 2>&1 &
     17 	echo $! > "$pidfile"
     18 else
     19 	audio=$(pactl get-sink-volume @DEFAULT_SINK@  | tr -s ' ' \
     20 	        |  cut -d" " -f5)
     21 	echo $audio
     22 
     23 	$audioint=$(echo -n $audio | cut -d"%" -f1)
     24 
     25 	let bar=$audio/100*8
     26 	bar=$(awk -v audio="$audio" 'BEGIN { print audio / 100 * 8 }')
     27 	bar=${bar%%.*}
     28 
     29 	if [ $bar -eq 0 ]; then
     30 		visbar="▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁"
     31 	elif [ $bar -eq 1 ]; then
     32 		visbar="▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁"
     33 	elif [ $bar -eq 2 ]; then
     34 		visbar="▁▁▁ ▂▂▂ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁"
     35 	elif [ $bar -eq 3 ]; then
     36 		visbar="▁▁▁ ▂▂▂ ▃▃▃ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁"
     37 	elif [ $bar -eq 4 ]; then
     38 		visbar="▁▁▁ ▂▂▂ ▃▃▃ ▄▄▄ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁"
     39 	elif [ $bar -eq 5 ]; then
     40 		visbar="▁▁▁ ▂▂▂ ▃▃▃ ▄▄▄ ▅▅▅ ▁▁▁ ▁▁▁ ▁▁▁"
     41 	elif [ $bar -eq 6 ]; then
     42 		visbar="▁▁▁ ▂▂▂ ▃▃▃ ▄▄▄ ▅▅▅ ▆▆▆ ▁▁▁ ▁▁▁"
     43 	elif [ $bar -eq 7 ]; then
     44 		visbar="▁▁▁ ▂▂▂ ▃▃▃ ▄▄▄ ▅▅▅ ▆▆▆ ▇▇▇ ▁▁▁"
     45 	elif [ $bar -ge 8 ]; then
     46 		visbar="▁▁▁ ▂▂▂ ▃▃▃ ▄▄▄ ▅▅▅ ▆▆▆ ▇▇▇ ███"
     47 	fi
     48 	
     49 	sxalert " " " $audio $visbar" " " -d 730 -g 0 -r ffffff \
     50 	        -t ffffff </dev/null >/dev/null 2>&1 &
     51 	echo $! > "$pidfile"
     52 fi