#!/bin/sh # Prints the current volume or 🔇 if muted. Uses PulseAudio by default, # uncomment the ALSA lines if you remove PulseAudio. case $BLOCK_BUTTON in # 1) setsid "$TERMINAL" -e alsamixer & ;; # 2) amixer sset Master toggle ;; # 4) amixer sset Master 5%+ >/dev/null 2>/dev/null ;; # 5) amixer sset Master 5%- >/dev/null 2>/dev/null ;; 1) setsid "$TERMINAL" -e pulsemixer & ;; 2) pamixer -t ;; 4) pamixer --allow-boost -i 1 ;; 5) pamixer --allow-boost -d 1 ;; 3) notify-send "📢 Volume module" "\- Shows volume 🔊, 🔇 if muted. - Middle click to mute. - Scroll to change." esac #volstat="$(pactl list sinks)" ## volstat="$(amixer get Master)" # ALSA only equivalent. # ## Uses active sink if one is running, otherwise just go for the default one (First one listed in pactl list sinks) #if [ -z "$(echo "$volstat" | grep -A10 'State: RUNNING' )" ]; then # echo "$volstat" | grep -q "Mute: yes" && printf "🔇\\n" && exit #else # echo "$volstat" | grep -A10 "State: RUNNING" | grep -q "Mute: yes" && printf "🔇\\n" && exit #fi ## echo "$volstat" | grep "\[off\]" >/dev/null && printf "🔇\\n" && exit # ALSA # ## Uses active sink if one is running, otherwise just go for the default one (First one listed in pactl list sinks) #if [ -z "$(echo "$volstat" | grep -A10 'State: RUNNING' )" ]; then # vol="$(echo "$volstat" | grep '[0-9]\+%' | sed "s,.* \([0-9]\+\)%.*,\1,;1q")" #else # vol="$(echo "$volstat" | grep -A10 "State: RUNNING" | grep '[0-9]\+%' | sed "s,.* \([0-9]\+\)%.*,\1,;1q")" #fi # vol=$(echo "$volstat" | grep -o "\[[0-9]\+%\]" | sed "s/[^0-9]*//g;1q") # ALSA vol="$(pamixer --get-volume-human | tr -d '%')" if echo "$vol" | grep -q muted; then printf '🔇\n' else if [ "$vol" -gt "70" ]; then icon="🔊" elif [ "$vol" -lt "30" ]; then icon="🔈" else icon="🔉" fi printf "%s%s%%\\n" "$icon" "$vol" fi