#!/usr/bin/env sh # A simple script to adjust the volume # Requires pulse and amixer function drawBar(){ local percent="$1"; for i in {1..10}; do local boxPercent=$(($i*10)) if [ "$boxPercent" -lt "$percent" ]; then echo -n "■" elif [ "$boxPercent" -eq "$percent" ]; then echo -n "■" elif [ "$(($boxPercent-10))" -lt "$percent" ]; then echo -n "▣" else echo -n "□" fi done } case "$1" in "up") amixer -q -D default sset Master 5%+ unmute ;; "down") amixer -q -D default sset Master 5%- unmute ;; "toggle") amixer -q -D default sset Master toggle esac volume="$(amixer -D default sget Master | grep -o '\[.*\%' | head -n 1 | tr -d '[%')" speakerStatus="$(amixer -D default sget Master | grep -o '\[\(on\|off\)' | head -n 1 | tr -d '[')" if [[ "$speakerStatus" == "on" ]]; then command -v notify-send && notify-send -R "/tmp/volume" "Volume" "$(drawBar $volume) ${volume}%" else command -v notify-send && notify-send -R "/tmp/volume" "Volume" "Muted" fi