#!/bin/bash

msgTag="volume"
TIME=1000

case "$1" in
  up)
    wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
    ;;
  down)
    wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%-
    ;;
  mute)
    wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
    volume=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | awk '{print int($2*100)}')
    mute=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | grep -q MUTED && echo "yes" || echo "no")
    if [[ "$mute" == "yes" ]]; then
        dunstify -t $TIME \
                 -a "Volume" \
                 -h string:x-dunst-stack-tag:$msgTag \
                 "muted"
    else
        dunstify -t $TIME \
                 -a "Volume" \
                 -h string:x-dunst-stack-tag:$msgTag \
                 -h int:value:"$volume" \
                 "unmuted"
    fi
    exit 0
    ;;
  *)
    echo "Usage: $0 [up/down/mute/mic]"
    exit 1
    ;;
esac

volume=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | awk '{print int($2*100)}')
mute=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | grep -q MUTED && echo "yes" || echo "no")

if [[ "$mute" != "yes" ]]; then
  dunstify -t $TIME \
           -a "Volume" \
           -h string:x-dunst-stack-tag:$msgTag \
           -h int:value:"$volume" \
           "$1"
fi
