#!/usr/bin/env zsh

function print-volume {
    let volume="$(pamixer --get-volume)"
    local icon
    if [[ "$(pamixer --get-mute)" = "true" ]]; then
        icon='󰸈'
    elif (( ${volume} >= 50 )); then
        icon='󰕾'
    elif ((${volume} > 0)); then
        icon='󰖀'
    elif ((${volume} == 0)); then
        icon='󰕿'
    else
        icon='?'
    fi
    printf '%s%3d%%\n' "${icon}" "${volume}"
}

print-volume
pactl subscribe | \
    while read line; do
        case "${line}" in
            "Event 'change' on sink"*)
                print-volume
                ;;
        esac
    done