volume.sh (1398B)
1 #!/bin/sh 2 3 VOLUME_CACHE_FILE="$XDG_CACHE_HOME/panel_volume/volume" 4 MUTED_CACHE_FILE="$XDG_CACHE_HOME/panel_volume/muted" 5 SINK_CACHE_FILE="$XDG_CACHE_HOME/panel_volume/sink" 6 7 if [ "$2" = "--bluez" ]; then 8 sink="$(pactl list sinks | grep "Name:" | grep "bluez" | sed 's/.*Name: //g')" 9 [ "$sink" = "" ] && exit 10 echo "bluez" > "$SINK_CACHE_FILE" 11 else 12 sink="@DEFAULT_SINK@" 13 echo "default" > "$SINK_CACHE_FILE" 14 fi 15 16 volume_up () { 17 current_volume=$(pactl get-sink-volume "$sink" | awk ' /Volume/ {print $5}' | sed 's/%//g') 18 if [ $current_volume -gt 97 ]; then 19 pactl set-sink-volume "$sink" 100% 20 echo "100" > "$VOLUME_CACHE_FILE" 21 else 22 pactl set-sink-volume "$sink" +3% 23 echo $((current_volume+3)) > "$VOLUME_CACHE_FILE" 24 fi 25 } 26 27 volume_down () { 28 current_volume=$(pactl get-sink-volume "$sink" | awk ' /Volume/ {print $5}' | sed 's/%//g') 29 if [ $current_volume -lt 3 ]; then 30 pactl set-sink-volume "$sink" 0% 31 echo "0" > "$VOLUME_CACHE_FILE" 32 else 33 pactl set-sink-volume "$sink" -3% 34 echo $((current_volume-3)) > "$VOLUME_CACHE_FILE" 35 fi 36 } 37 38 toggle_mute () { 39 pactl set-sink-mute "$sink" toggle 40 pactl get-sink-mute "$sink" | awk '{print $2}' > "$MUTED_CACHE_FILE" 41 } 42 43 if [ "$1" = "--up" ]; then 44 volume_up 45 elif [ "$1" = "--down" ]; then 46 volume_down 47 elif [ "$1" = "--toggle-mute" ]; then 48 toggle_mute 49 fi 50 51 barpid="$(cat ~/.cache/bar_pid)" 52 if ! [ "$barpid" = "" ]; then 53 kill -34 "$barpid" 54 fi