55 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
# add your volume and mute attributes here (mixerctl -af /dev/mixer?)
 | 
						|
_volumelist="outputs.master outputs.play"
 | 
						|
_mutelist="outputs.master.mute outputs.play_mute"
 | 
						|
 | 
						|
[ -z $1 ] && print "$0 [volume]" && exit 2
 | 
						|
 | 
						|
_mute() {
 | 
						|
    # $1 = device
 | 
						|
    # $2 = on/off
 | 
						|
    for _entry in $_mutelist;
 | 
						|
    do
 | 
						|
        if mixerctl -f $1 2>&1 | cut -d"=" -f1 | grep -q $_entry;
 | 
						|
        then
 | 
						|
            print "$1: $_entry => $2"
 | 
						|
            mixerctl -qf $1 $_entry=$2
 | 
						|
        fi
 | 
						|
    done
 | 
						|
}
 | 
						|
 | 
						|
_vol() {
 | 
						|
    # $1 = device
 | 
						|
    # $2 = volume
 | 
						|
    for _entry in $_volumelist;
 | 
						|
    do
 | 
						|
        if mixerctl -f $1 2>&1 | cut -d"=" -f1 | grep -q $_entry;
 | 
						|
        then
 | 
						|
            print "$1: $_entry => $2"
 | 
						|
            mixerctl -qf $1 $_entry=$2
 | 
						|
        fi
 | 
						|
    done
 | 
						|
}
 | 
						|
 | 
						|
for _mixdev in /dev/mixer*;
 | 
						|
do
 | 
						|
    # do not follow symlinks (eg. /dev/mixer)
 | 
						|
    [ -h $_mixdev ] && continue
 | 
						|
 | 
						|
    # if volume is 0 set volume and mute
 | 
						|
    # if volume is >0 set volume and unmute
 | 
						|
    if [ "$1" == "0" ]; then
 | 
						|
        _mute $_mixdev on
 | 
						|
        _vol $_mixdev 0
 | 
						|
    elif [ "$1" -gt "0" ] && [ "$1" -lt "1001" ]; then
 | 
						|
        _mute $_mixdev off
 | 
						|
        _vol $_mixdev $1
 | 
						|
    else
 | 
						|
        print "Use number between 0 and 1000"
 | 
						|
        exit 1
 | 
						|
    fi
 | 
						|
done
 | 
						|
 | 
						|
printf "VOL\n" >> /tmp/lemonbar.fifo
 |