#!/bin/sh sinkName=$(pacmd info | grep 'Default sink' | awk '{print $4}') sinkNumber=$(pacmd info | grep "sink:.*$sinkName" | awk '{print $2}') getVolume() { volumeInput=$(pactl list sinks) currentVolume=$(echo "${volumeInput#*Sink #$sinkNumber}" | grep -E 'V.*-left' | grep -oE '[0-9]+%' | tail -n 1) notify-send "Volume: $currentVolume" } case $(uname) in Linux) case "$1" in up) pactl set-sink-volume @DEFAULT_SINK@ +5%; getVolume;; down) pactl set-sink-volume @DEFAULT_SINK@ -5%; getVolume;; mute) muted=$(pactl list sinks | grep 'Mute: yes') if [ -z "$muted" ]; then pactl set-sink-mute @DEFAULT_SINK@ 1 notify-send Volume: Muted else pactl set-sink-mute @DEFAULT_SINK@ 0 getVolume fi;; *) echo error;; esac ;; OpenBSD) up="$(sndioctl output.level | awk -F= '{print $2}' | awk '{print $0+.10}')" down="$(sndioctl output.level | awk -F= '{print $2}' | awk '{print $0-.10}')" case $1 in up) sndioctl output.level="$up" ;; dn|down) sndioctl output.level="$down" ;; esac ;; esac