nixos-configs/eww/scripts/mic

65 lines
1 KiB
Text
Raw Normal View History

2023-05-28 18:05:51 -04:00
#!/usr/bin/env bash
# @requires: pactl
SINK=$(pactl list short sinks | sed -e 's,^\([0-9][0-9]*\)[^0-9].*,\1,' | head -n 1)
status () {
status=$(pactl get-source-mute $SINK | awk '{print $2}')
if [[ $status == 'yes' ]]; then
echo no
else
echo yes
fi
}
set_volume () {
local max_db=65536
local percent=$1
# getting the $percent% of $max_db
local value=$(jq -n ${percent}/100*${max_db} | sed 's/\./ /g' | awk '{print $1}')
# set volume
pacmd set-source-volume $SINK $value
}
get () {
local enabled=$(status)
if [[ $enabled == 'no' ]]; then
echo '0'
else
pacmd list short sinks | grep volume:\ front | tail -n 1 | awk '{print $5}' | sed 's/%//g'
fi
}
percentage () {
local val=$(get)
echo "${val}%"
}
_ () {
${@}
exit 0
}
if [[ $1 == "status" ]]; then
_ status
fi
if [[ $1 == "toggle" ]]; then
_ pactl set-source-mute $SINK toggle
fi
if [[ $1 == "set" ]]; then
_ set_volume ${2}
fi
if [[ $1 == "get" ]]; then
_ get
fi
if [[ $1 == "percent" ]]; then
_ percentage
fi