12345678910111213141516171819202122232425 |
- #!/usr/bin/env bash
- set -euo pipefail # bash strict mode
- # changeVolume
- # Arbitrary but unique message id
- msgId="991049"
- # Change the volume using alsa(might differ if you use pulseaudio)
- amixer -c 0 set Master "$@" > /dev/null
- # Query amixer for the current volume and whether or not the speaker is muted
- volume="$(amixer -c 0 get Master | tail -1 | awk '{print $4}' | sed 's/[^0-9]*//g')"
- mute="$(amixer -c 0 get Master | tail -1 | awk '{print $6}' | sed 's/[^a-z]*//g')"
- if [[ $volume == 0 || "$mute" == "off" ]]; then
- # Show the sound muted notification
- dunstify -a "changeVolume" -u low -i audio-volume-muted -r "$msgId" "Volume muted"
- else
- # Show the volume notification
- dunstify -a "changeVolume" -u low -i audio-volume-high -r "$msgId" \
- -h int:value:"$volume" "Volume: ${volume}%"
- fi
- # # Play the volume changed sound
- # canberra-gtk-play -i audio-volume-change -d "changeVolume"
|