#!/bin/bash function get_active_sink { pactl list short sinks | grep RUNNING | awk '{print $2}' } function get_active_source { pactl list short sources | grep RUNNING | awk '{print $2}' } function get_default_sink { pactl info | grep '^Default Sink:' | awk '{print $NF}' } function get_default_source { pactl info | grep '^Default Source:' | awk '{print $NF}' } function micmute { MODE=${1:-toggle} pactl set-source-mute $(get_default_source) ${MODE} } function mute { MODE=${1:-toggle} pactl set-sink-mute $(get_default_sink) ${MODE} } function volume { VOL="${1}" if test -z "${VOL}" ; then echo "Need volume spec!" exit 1 fi pactl set-sink-volume $(get_default_sink) "${VOL}" } case "$1" in mute|micmute|volume) "$@" ;; *) echo "Unknown command!" exit 1 ;; esac