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