26 lines
		
	
	
		
			658 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			658 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
if (($# == 0)); then
 | 
						|
  data=$(amixer get Master)
 | 
						|
  vol=$(echo "$data" | sed -n 's/^.*\[\([0-9]\+\)%.*$/\1/p' | uniq)
 | 
						|
  state=$(echo "$data" | grep '\[on\]')
 | 
						|
  [[ -n $state ]] && echo $vol || echo 0
 | 
						|
  exit
 | 
						|
fi
 | 
						|
 | 
						|
case $1 in
 | 
						|
  [0-9]*) amixer set Master $1 ;;
 | 
						|
  [+-])   amixer set Master 5%$1 ;;
 | 
						|
  *mute)  amixer set Master $1 ;;
 | 
						|
  toggle) amixer set Master toggle ;;
 | 
						|
  *)  >&2 echo "Invalid command"
 | 
						|
      exit 1
 | 
						|
      ;;
 | 
						|
esac
 | 
						|
 | 
						|
# community/xosd
 | 
						|
if command -v osd_cat >/dev/null; then
 | 
						|
  killall -9 -q osd_cat &>/dev/null
 | 
						|
  osd_cat --font="10x20" --delay=2 --color=white --align=center --pos=bottom --barmode=percentage --percentage $($0) &
 | 
						|
fi
 |