xvol is a small bash script that will either raise or lower the audio volume for the default PulseAudio sink, and display a nice little xmessage box with an audio level indicator upon doing so. The script is linted with shellcheck.
This is a quick hack and hard coded in all manner of ways, but perhaps someone will find it useful as a reference implementation to continue hacking on.
I personally have xvol hooked up to Ctrl+Super+Up/Down arrow. In my ctwm config it looks like this:
"Up" = m4|c : all : f.exec "xvol up &" "Down" = m4|c : all : f.exec "xvol down &"
I have also configured ctwm to hide xmessage from the icon manager, and to disable xmessage's window title. Yet another fine example of why client-side decorations suck donkey balls.
Example xvol usage.