49 lines
1.7 KiB
Bash
Executable File
49 lines
1.7 KiB
Bash
Executable File
#!/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
|
|
|
|
if [ "$vol" -gt "70" ]; then
|
|
icon="🔊"
|
|
elif [ "$vol" -lt "30" ]; then
|
|
icon="🔈"
|
|
else
|
|
icon="🔉"
|
|
fi
|
|
|
|
printf "%s %s%%\\n" "$icon" "$vol"
|