From 21226633175515c4cae8e8bf486996abd0c3fee5 Mon Sep 17 00:00:00 2001 From: Yorick van Pelt Date: Wed, 20 Nov 2013 22:52:38 +0100 Subject: [PATCH] use amixer for volume adjustment --- bin/mute_toggle.sh | 30 ++++++------------------------ bin/vol_down.sh | 22 ++-------------------- bin/vol_up.sh | 24 +++--------------------- 3 files changed, 11 insertions(+), 65 deletions(-) diff --git a/bin/mute_toggle.sh b/bin/mute_toggle.sh index b2b35af..1b15eaf 100755 --- a/bin/mute_toggle.sh +++ b/bin/mute_toggle.sh @@ -4,31 +4,13 @@ # 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 +mute_cmd=$(amixer set Master toggle | egrep 'Playback.*?\[o' | head -n 1) +mute=$(echo "$mute_cmd" | egrep -o '\[o.+\]') +volume=$(echo "$mute_cmd" | sed '{s/://}' | awk '{print $4}') +let volume=($volume * 100 / 65536) +if [[ "$mute" == "[on]" ]]; 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 +[[ "$mute" == "[off]" ]] && volnoti-show -m diff --git a/bin/vol_down.sh b/bin/vol_down.sh index ffffbd7..4a38bee 100755 --- a/bin/vol_down.sh +++ b/bin/vol_down.sh @@ -1,23 +1,5 @@ #!/bin/bash -# Credit to Roland Latour -# http://www.freak-search.com/en/thread/4707111/q_volume_control,_xfce # lower volume by 1% - -# Find default sink -sink=$(pacmd info|grep "Default sink name"|awk '{print $4}') - -# 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 returns volume as %, but demands setting as range: 0-65535 -let volume=($volume - 1) -let volume=($volume * 65536);let volume=($volume / 100) -[[ $volume -lt 0 ]] && let volume=0 -pacmd set-sink-volume $sink $volume > /dev/null 2>&1 -volnoti-show $(((volume * 100) / 65536)) +volume=$(amixer set Master playback 1%- | grep "t: Playback" | sed '{s/://}' | awk '{print $5}' | head -n 1 | cut -c2- | rev | cut -c3- | rev) +volnoti-show $volume diff --git a/bin/vol_up.sh b/bin/vol_up.sh index 5b0c82b..ad1dfcd 100755 --- a/bin/vol_up.sh +++ b/bin/vol_up.sh @@ -1,23 +1,5 @@ #!/bin/bash -# Credit to Roland Latour -# http://www.freak-search.com/en/thread/4707111/q_volume_control,_xfce +# Raise volume by 1% -# raise volume by 1% - -# Find default sink -sink=$(pacmd info|grep "Default sink name"|awk '{print $4}') - -# 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 returns volume as %, but demands setting as range: 0-65535 -let volume=($volume + 1) -let volume=($volume * 65536);let volume=($volume / 100) -[[ $volume -gt 65536 ]] && let volume=65536 -pacmd set-sink-volume $sink $volume > /dev/null 2>&1 -volnoti-show $(((volume * 100) / 65536)) +volume=$(amixer set Master playback 1%+ | grep "t: Playback" | sed '{s/://}' | awk '{print $5}' | head -n 1 | cut -c2- | rev | cut -c3- | rev) +volnoti-show $volume