Display volume num
This commit is contained in:
@@ -92,14 +92,13 @@ done
|
||||
# functions {{{ #
|
||||
|
||||
if [[ -z "$MIXER" ]] ; then
|
||||
# Use the default ALSA mixer
|
||||
MIXER="default"
|
||||
if amixer -D pulse info >/dev/null 2>&1 ; then
|
||||
MIXER="pulse"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -z "$SCONTROL" ]] ; then
|
||||
SCONTROL=$(amixer -D "$MIXER" scontrols | sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" | head -n1)
|
||||
# Use the 'Master' control
|
||||
SCONTROL="Master"
|
||||
fi
|
||||
|
||||
CAPABILITY=$(amixer -D $MIXER get $SCONTROL | sed -n "s/ Capabilities:.*cvolume.*/Capture/p")
|
||||
@@ -161,41 +160,24 @@ function print_format {
|
||||
# print_block {{{ #
|
||||
|
||||
function print_block {
|
||||
# Use pactl instead of pacmd to get sink information
|
||||
SINK_INFO=$(pactl list sinks | awk '
|
||||
/^Sink #/{sink=$2}
|
||||
/Volume: front-left/{volume=$5}
|
||||
/Mute:/{muted=$2}
|
||||
/Name:/{name=$2}
|
||||
/Description:/{description=$0; sub(/Description: /, "", description)}
|
||||
/Active Port:/{port=$3}
|
||||
/^\s*$/{if (sink && sink ~ /\*/) {print sink; print name; print volume; print muted; exit}}
|
||||
')
|
||||
|
||||
# Parse the output
|
||||
INDEX=$(echo "$SINK_INFO" | sed -n '1p' | tr -d '#*')
|
||||
NAME=$(echo "$SINK_INFO" | sed -n '2p')
|
||||
VOL=$(echo "$SINK_INFO" | sed -n '3p' | grep -o "[0-9]*%" | head -1)
|
||||
# Use amixer to get volume and mute status
|
||||
VOL_INFO=$(amixer -D $MIXER get $SCONTROL | grep -m1 -oE '[0-9]+%|\[on\]|\[off\]')
|
||||
VOL=$(echo "$VOL_INFO" | grep -oE '[0-9]+%' | head -1)
|
||||
VOL="${VOL%?}"
|
||||
MUTED=$(echo "$SINK_INFO" | sed -n '4p')
|
||||
MUTED=$(echo "$VOL_INFO" | grep -oE '\[on\]|\[off\]')
|
||||
|
||||
# Default name for ALSA
|
||||
NAME=$(amixer -D $MIXER scontrols | sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" | head -n1)
|
||||
|
||||
if [[ $USE_ALSA_NAME == 1 ]] ; then
|
||||
ALSA_NAME=$(pactl list sinks | awk '
|
||||
/^Sink #/{sink=$2}
|
||||
/alsa.name =/{alsa_name=$3; gsub(/"/, "", alsa_name)}
|
||||
/^\s*$/{if (sink && sink ~ /\*/) {print alsa_name; exit}}
|
||||
')
|
||||
ALSA_NAME=$(amixer -D $MIXER scontrols | sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" | head -n1)
|
||||
NAME=${ALSA_NAME:-$NAME}
|
||||
elif [[ $USE_DESCRIPTION == 1 ]] ; then
|
||||
DESCRIPTION=$(pactl list sinks | awk '
|
||||
/^Sink #/{sink=$2}
|
||||
/Description:/{description=$0; sub(/Description: /, "", description)}
|
||||
/^\s*$/{if (sink && sink ~ /\*/) {print description; exit}}
|
||||
')
|
||||
DESCRIPTION=$(amixer -D $MIXER scontrols | sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" | head -n1)
|
||||
NAME=${DESCRIPTION:-$NAME}
|
||||
fi
|
||||
|
||||
if [[ $MUTED =~ "no" ]] ; then
|
||||
if [[ $MUTED =~ "\[on\]" ]] ; then
|
||||
SYMB=$AUDIO_HIGH_SYMBOL
|
||||
[[ $VOL -le $AUDIO_MED_THRESH ]] && SYMB=$AUDIO_MED_SYMBOL
|
||||
[[ $VOL -le $AUDIO_LOW_THRESH ]] && SYMB=$AUDIO_LOW_SYMBOL
|
||||
|
||||
Reference in New Issue
Block a user