dwmblock-volume (1576B)
1 #!/bin/sh 2 # dwmblocks script for volume information 3 sink="$(pactl get-default-sink)" 4 source="$(pactl get-default-source)" 5 case "$BUTTON" in 6 1) 7 if pgrep -f pulsemixer >/dev/null 2>&1; then 8 wmctrl -Fa pulsemixer 9 else 10 setsid -f "$TERMINAL" -e pulsemixer 11 fi 12 pkill -RTMIN+6 dwmblocks;; 13 3) 14 pactl -- set-source-mute "$source" toggle 15 pkill -RTMIN+6 dwmblocks;; 16 4) 17 pactl -- set-sink-volume "$sink" +10% 18 pkill -RTMIN+6 dwmblocks 19 ;; 20 5) 21 pactl -- set-sink-volume "$sink" -10% 22 pkill -RTMIN+6 dwmblocks 23 ;; 24 6) "$TERMINAL" -e "$EDITOR" "$0" ;; 25 esac 26 27 case $(pactl get-sink-mute "$sink") in 28 "Mute: yes"*) 29 volume_icon='🔇' 30 ;; 31 *) 32 volume_icon='🔊' 33 ;; 34 esac 35 volume="$(pactl get-sink-volume "$sink" \ 36 | head -n 1 \ 37 | awk -v volume_icon="$volume_icon" -F ' / ' '{ 38 gsub(" ", "", $2); 39 gsub(" ", "", $4); 40 if ($2 == $4) { 41 printf("%s %s", volume_icon, $2); 42 } 43 else { 44 printf("%s %s %s", volume_icon, $2, $4); 45 } 46 }')" 47 48 case $(pactl get-source-mute "$source") in 49 "Mute: yes"*) 50 mic_icon='' 51 ;; 52 *) 53 mic_icon='🎤' 54 ;; 55 esac 56 57 pgrep -f nerd-dictation >/dev/null 2>&1 && recording=' ⏺' 58 mic="$(pactl get-source-volume "$source" \ 59 | head -n 1 \ 60 | awk -v mic_icon="$mic_icon" -F ' / ' '{ 61 gsub(" ", "", $2); 62 gsub(" ", "", $4); 63 if (NF <= 4 || $2 == $4) { 64 printf("%s %s", mic_icon, $2); 65 } 66 else { 67 printf("%s %s %s", mic_icon, $2,$4); 68 } 69 }')" 70 printf "%s %s%s" "$volume" "$mic" "$recording"