#!/usr/bin/env bash up="" down="" mute="ﱝ" while : ; do active="" urgent="" if type -p pulseaudio-ctl 2> /dev/null; then volume="$(pulseaudio-ctl full-status | cut -d ' ' -f1)" speakerStatus="$(pulseaudio-ctl full-status | cut -d ' ' -f2 | sed 's/no/on/g')" else 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 '[')" fi if [ "$speakerStatus" = "off" ]; then volume="Muted" urgent="-u 2" else active="-a 2" fi choice="$(echo -e "$up\n$down\n$mute" | rofi -dmenu -theme 'themes/volume.rasi' -p "$volume" $urgent $active)" case "$choice" in "$up") if type -p pulseaudio-ctl 2> /dev/null; then pulseaudio-ctl up else amixer -q -D default sset Master 5%+ unmute fi ;; "$down") if type -p pulseaudio-ctl 2> /dev/null; then pulseaudio-ctl down else amixer -q -D default sset Master 5%- unmute fi ;; "$mute") if type -p pulseaudio-ctl 2> /dev/null; then pulseaudio-ctl mute else amixer -q -D default sset Master toggle fi ;; "") break esac done