mirror of
https://github.com/ItsDrike/dotfiles.git
synced 2025-04-20 02:02:27 +00:00
38 lines
919 B
Bash
Executable file
38 lines
919 B
Bash
Executable file
#!/usr/bin/env zsh
|
|
|
|
PANEL_FIFO="$1"
|
|
PREFIX="$2"
|
|
ICONS=($(echo "$3" | tr ";" "\n"))
|
|
|
|
exec 5>"$PANEL_FIFO"
|
|
|
|
main() {
|
|
local cmd=( $(amixer -M get Master) )
|
|
local playback_level="${cmd[-2][2,-3]}"
|
|
local icon=""
|
|
|
|
if [[ "${cmd[-1]}" == "[off]" ]]; then
|
|
icon="${ICONS[1]}"
|
|
else
|
|
if [[ "$playback_level" -eq 0 ]]; then
|
|
icon="${ICONS[2]}"
|
|
elif [[ "$playback_level" -lt 30 ]]; then
|
|
icon="${ICONS[3]}"
|
|
elif [[ "$playback_level" -lt 60 ]]; then
|
|
icon="${ICONS[4]}"
|
|
elif [[ "$playback_level" -lt 100 ]]; then
|
|
icon="${ICONS[5]}"
|
|
else
|
|
icon="${ICONS[6]}"
|
|
fi
|
|
fi
|
|
|
|
REPLY="$icon $playback_level%"
|
|
}
|
|
|
|
{print init; stdbuf -oL alsactl monitor pulse} | while read line; do
|
|
case ${line} in
|
|
*Master\ Playback*|init ) main; print "$PREFIX $REPLY" >&5 ;;
|
|
* ) continue ;;
|
|
esac
|
|
done
|