mirror of
				https://github.com/ItsDrike/dotfiles.git
				synced 2025-11-04 01:16:35 +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
 |