summaryrefslogtreecommitdiffstats
path: root/public/.local/bin/audio_control.sh
blob: b930a889553df9e11451b6876eeca8d9f71ef019 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/bash

# TODO:
# Create dmenu script that allows changing the default sink and source.
#   pactl list sources short
#   pactl list sinks short

delta=${2:-10}
signal=10

# signal dwmblocks to update volume block
send_signal() {
    pkill -RTMIN+$signal dwmblocks
}

# WIP: change default sink (speaker).  E.g., when connecting HDMI.
change_sink() {
    pactl list sinks | grep "Name:"
    # Use tab completion if set up interactively
    pactl "set-default-sink alsa_output.pci-0000_05_00.6.analog-stereo"
}

case $1 in
    inc) pactl set-sink-volume @DEFAULT_SINK@ +$delta% ;;
    dec) pactl set-sink-volume @DEFAULT_SINK@ -$delta% ;;
    micinc) pactl set-source-volume @DEFAULT_SOURCE@ +$delta% ;;
    micdec) pactl set-source-volume @DEFAULT_SOURCE@ -$delta% ;;
    mutetoggle) pactl set-sink-mute @DEFAULT_SINK@ toggle ;;
    deafentoggle) pactl set-source-mute @DEFAULT_SOURCE@ toggle ;;
    *)
        echo Speaker:
        pactl get-sink-volume @DEFAULT_SINK@
        pactl get-sink-mute @DEFAULT_SINK@
        echo -e "\nMic:"
        pactl get-source-volume @DEFAULT_SOURCE@
        pactl get-source-mute @DEFAULT_SOURCE@
        echo -e "\nApplications:"
        pactl list sink-inputs | grep -e 'Sink Input' -e 'application.name' -e 'Volume:'
        ;;
esac

send_signal