dotfiles/bin/mute_toggle.sh

35 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# Credit to Roland Latour
# http://www.freak-search.com/en/thread/4707111/q_volume_control,_xfce
# Find default sink
sink=$(pacmd info|grep "Default sink name"|awk '{print $4}')
# Now we need to get mute status of default sink
# get line# of start of definition for default sink (plus 1, actually)
let line=$(pacmd list-sinks|grep -n $sink|sed '{s/://}'|awk '{print $1}')
# add 12 for "muted" line
let line=($line + 10)
# extract mute status from that line
mute=$(pacmd list-sinks|awk 'NR==i"'"$line"'"{print $2}')
if [[ "$mute" == "yes" ]]; then
# show the volume
# Now we need to find volume of default sink
# get line# of start of definition for default sink (plus 1, actually)
let line=$(pacmd list-sinks|grep -n $sink|sed '{s/://}'|awk '{print $1}')
# index down a bit for volume line
let line=($line + 6)
volume=$(pacmd list-sinks|awk 'NR=="'"$line"'"{print $3}'|sed '{s/%//}')
pacmd set-sink-mute "$sink" 0 > /dev/null 2>&1
volnoti-show $volume
fi
[[ "$mute" == "no" ]] && pacmd set-sink-mute "$sink" 1 > /dev/null 2>&1 && volnoti-show -m