Advertisement
Guest User

volume

a guest
Oct 27th, 2019
311
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.21 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # reads sink 0 (default sink) volume and sets all sinks to
  4. # that same volume.
  5. # accepts sdtin in format '[-+][1-9]{1,3}%\?\|mute'
  6. # and sets all sinks to that volume
  7.  
  8. # stored in /usr/local/bin
  9.  
  10. PACTL_SINKS=$(pactl list sinks)
  11.  
  12. SINK_0_VOLUME=$(echo "$PACTL_SINKS" | grep 'Volume' | head -1 | grep -Eo '[0-9]{1,4}%' | head -1)
  13.  
  14. ACTIVE_SINKS=$(echo "$PACTL_SINKS" | grep 'Sink' | grep -Eo '#[0-9]{1,2}' | cut -c 2-)
  15.  
  16. if [[ "$1" == "mute" ]]; then
  17.     for SINK in $ACTIVE_SINKS;
  18.     do
  19.         pactl set-sink-mute "$SINK" toggle
  20.     done
  21.     pkill -RTMIN+12 i3blocks
  22. fi
  23.  
  24. if [[ -n "$(echo "$1" | grep -Eo '[-+][0-9]{1,3}%')" ]]; then
  25.     for SINK in $ACTIVE_SINKS;
  26.     do
  27.         pactl set-sink-volume "$SINK" "$SINK_0_VOLUME" # set all sinks equal volume
  28.         pactl set-sink-volume "$SINK" "$1" # adjust volume according to input
  29.     done
  30.     pkill -RTMIN+12 i3blocks
  31.     exit 0
  32. fi
  33.  
  34. if [[ -n "$(echo "$1" | grep -Eo '[0-9]{1,3}%')" ]]; then
  35.     for SINK in $ACTIVE_SINKS;
  36.     do
  37.         pactl set-sink-volume "$SINK" "$SINK_0_VOLUME" # set all sinks equal volume
  38.         pactl set-sink-volume "$SINK" "$1" # adjust volume according to input
  39.     done
  40.     pkill -RTMIN+12 i3blocks
  41. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement