38 lines
1.2 KiB
Bash
Executable File
38 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
type pactl >/dev/null 2>&1 || { echo >&2 "I require pactl but it's not installed. Aborting."; exit 1; }
|
|
type amixer >/dev/null 2>&1 || { echo >&2 "I require amixer but it's not installed. Aborting."; exit 1; }
|
|
type dunstify >/dev/null 2>&1 || { echo >&2 "I require dunstify but it's not installed. Aborting."; exit 1; }
|
|
|
|
function isMuted() {
|
|
if amixer get Master | grep -q off; then
|
|
muted=0;
|
|
else
|
|
muted=1;
|
|
fi
|
|
}
|
|
|
|
defaultSink=$(pactl info | grep 'Default Sink' | cut -d' ' -f3);
|
|
|
|
isMuted;
|
|
|
|
case $1 in
|
|
"up"*)
|
|
pactl set-sink-volume $defaultSink +5%;
|
|
curVolume=$(amixer get Master | grep -o \[0-9\]\\+% -m 1);
|
|
if [ $muted -eq 0 ]; then msg="(muted)"; else msg=""; fi
|
|
dunstify -r 2 'sound up'\ \($curVolume\) $msg;
|
|
;;
|
|
"down"*)
|
|
pactl set-sink-volume $defaultSink -5%;
|
|
curVolume=$(amixer get Master | grep -o \[0-9\]\\+% -m 1);
|
|
if [ $muted -eq 0 ]; then msg="(muted)"; else msg=""; fi
|
|
dunstify -r 2 'sound up'\ \($curVolume\) $msg;
|
|
;;
|
|
"toggle"*)
|
|
pactl set-sink-mute $defaultSink toggle;
|
|
if [ $muted -eq 0 ]; then msg=unmuted; else msg=muted; fi
|
|
dunstify -r 2 'sound'\ $msg;
|
|
;;
|
|
esac
|