initial commit
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
#!/bin/bash
|
||||
# TODO
|
||||
# - display both PCM & Master
|
||||
# - display mute status
|
||||
|
||||
# case $1 in
|
||||
# o) amixer sset PCM toggle > /dev/null ;;
|
||||
# +) amixer set PCM 2dB+ unmute > /dev/null;;
|
||||
# -) amixer set PCM 2dB- unmute > /dev/null;;
|
||||
# # *) echo -n "`amixer get Master | sed -ne '/Front Left/s/.*\[\(.*\)%\].*/\1/p'`" ; echo -n " / `amixer get PCM | sed -ne '/Front Left/s/.*\[\(.*\)%\].*/\1/p'`" ; ( amixer get Master | grep Front | grep -q off ) && echo -n " [MUTE]" ; exit;;
|
||||
# *) echo -n "`amixer get PCM | sed -ne '/Front Left/s/.*\[\(.*\)%\].*/\1/p'`" ; ( amixer get PCM | grep Front | grep -q off ) && echo -n " [MUTE]" ; exit;;
|
||||
# esac
|
||||
|
||||
|
||||
# VOLUME=`amixer get Master | sed -ne '/Front Left/s/.*\[\(.*\)%\].*/\1/p'`
|
||||
# xsetroot -name "Vol: $VOLUME"
|
||||
|
||||
# `( amixer get Master | grep Front | grep -q off ) || echo \"$(~/sh/vol) •\"`
|
||||
|
||||
# SINK="`pactl info | grep -P '^Default Sink: ' | sed 's/[^:]\+:\s\+//'`"
|
||||
|
||||
. $HOME/.dmenurc
|
||||
|
||||
SINK="`pactl info | grep -P '^Standard-Ziel: ' | sed 's/[^:]\+:\s\+//'`"
|
||||
[[ -z "$SINK" ]] && exit 1
|
||||
|
||||
if [[ "$SINK" =~ DragonFly ]]; then
|
||||
INCR='24'
|
||||
MIN_VOLUME=65050
|
||||
MAX_VOLUME=65146
|
||||
else
|
||||
INCR='2%'
|
||||
MIN_VOLUME=0
|
||||
MAX_VOLUME=65536
|
||||
fi
|
||||
|
||||
function volume() {
|
||||
VOLUME="`pacmd dump | grep -P '^set-sink-volume.*\s+0x[1-9a-f][0-9a-f]*$'`"
|
||||
echo "$VOLUME" | grep -qF "$SINK"
|
||||
if [[ $? -eq 0 ]]; then
|
||||
VOLUME="`echo "$VOLUME" | grep -oP '0x[1-9a-f][0-9a-f]*$'`"
|
||||
printf "%d\n" "$VOLUME"
|
||||
else
|
||||
echo 0
|
||||
fi
|
||||
unset VOLUME
|
||||
}
|
||||
|
||||
# volume
|
||||
|
||||
if [[ -z "$1" ]]; then
|
||||
notify-send "Usage: $0 <up | down | mute | unmute | toggle>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
"+")
|
||||
pactl -- set-sink-volume "$SINK" "+$INCR"
|
||||
VOLUME="`volume`"
|
||||
if [[ $VOLUME -gt $MAX_VOLUME ]]; then
|
||||
pactl -- set-sink-volume "$SINK" "$MAX_VOLUME"
|
||||
fi
|
||||
;;
|
||||
"-")
|
||||
pactl -- set-sink-volume "$SINK" "-$INCR"
|
||||
VOLUME="`volume`"
|
||||
if [[ $VOLUME -lt $MIN_VOLUME ]]; then
|
||||
pactl -- set-sink-volume "$SINK" "$MIN_VOLUME"
|
||||
fi
|
||||
;;
|
||||
mute)
|
||||
pactl -- set-sink-mute "$SINK" 1
|
||||
;;
|
||||
unmute)
|
||||
pactl -- set-sink-mute "$SINK" 0
|
||||
;;
|
||||
switch)
|
||||
pactl list short sinks | awk 'BEGIN {FS=" "}; {print $2}' | $DMENU -p "Output: " -l 3 | xargs -r pactl set-default-sink
|
||||
;;
|
||||
toggle)
|
||||
MUTED="`pacmd dump | grep -P '^set-sink-mute.*\s+yes$'`"
|
||||
echo "$MUTED" | grep -qF "$SINK"
|
||||
if [[ $? -eq 0 ]]; then
|
||||
pactl -- set-sink-mute "$SINK" 0
|
||||
else
|
||||
pactl -- set-sink-mute "$SINK" 1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
notify-send "Unknown command: $1"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# volume
|
||||
Reference in New Issue
Block a user