#!/bin/sh
pacmd list-sinks |
    awk '
        BEGIN {
            ICONsn = "\x0c\x0b" # headphone unplugged, not muted
            ICONsm = "\x0d\x0b" # headphone unplugged, muted
            ICONhn = "\x0c\x0b" # headphone plugged in, not muted
            ICONhm = "\x0d\x0b" # headphone plugged in, muted
        }
        {
            if (f) {
                if ($1 == "index:") {
                    exit
                }
                if ($1 == "muted:" && $2 == "yes") {
                    m = 1
                } else if ($1 == "volume:") {
                    if ($3 == $10) {
                        vb = $5
                    } else {
                        vl = $5
                        vr = $12
                    }
                } else if ($1 == "active" && $2 == "port:" && $3 ~ /headphone/) {
                    h = 1
                }
            } else if ($1 == "*" && $2 == "index:") {
                f = 1
            }
        }
        END {
            if (f) {
                printf "%s", h ? (m ? ICONhm : ICONhn) : (m ? ICONsm : ICONsn)
                if (vb) {
                    print vb
                } else {
                    printf "L%s R%s\n", vl, vr
                }
            }
        }
    '