FollieHiyuki-dotfiles/home/.local/bin/volumecontrol

65 lines
1.8 KiB
Bash
Executable File

#!/bin/sh
if command -v mako >/dev/null
then
notification=mako
else
notification=dunst
fi
if command -v pulsemixer >/dev/null
then
_notify_volume() {
volume=$(pulsemixer --get-volume)
# 2 channels
left=$(echo "${volume}" | cut -d' ' -f1)
right=$(echo "${volume}" | cut -d' ' -f2)
notify-send -h string:x-canonical-private-synchronous:audio -h int:value:"${left}" -i "$HOME/.config/${notification}/speaker.png" "Volume: L:${left}% / R:${right}%"
}
case $1 in
increase)
pulsemixer --change-volume +5 && _notify_volume
;;
decrease)
pulsemixer --change-volume -5 && _notify_volume
;;
toggle)
pulsemixer --toggle-mute
status=$(pulsemixer --get-mute)
if [ "${status}" -eq 1 ] || [ "${status}" = "true" ]
then
notify-send -i "$HOME/.config/${notification}/mute.png" "Sound muted"
else
notify-send -i "$HOME/.config/${notification}/speaker.png" "Sound unmuted"
fi ;;
*)
;;
esac
else
_notify_volume() {
volume=$(amixer get Master | sed -nre 's/.*\\[(.*%)\\].*/\\1/p')
notify-send -h string:x-canonical-private-synchronous:audio -h int:value:"${volume}" -i "$HOME/.config/${notification}/speaker.png" "Volume: ${volume}"
}
case $1 in
increase)
amixer set Master 5+ && _notify_volume
;;
decrease)
amixer set Master 5- && _notify_volume
;;
toggle)
amixer set Master toggle
if amixer get Master | grep "off"
then
notify-send -i "$HOME/.config/${notification}/mute.png" "Sound muted"
else
notify-send -i "$HOME/.config/${notification}/speaker.png" "Sound unmuted"
fi ;;
*)
;;
esac
fi