View difference between Paste ID: GvQa0G2X and S8g9eBrf
SHOW: | | - or go back to the newest paste.
1
#!/bin/bash
2
3
# finds the active sink for pulse audio and increments the volume. useful when you have multiple audio outputs and have a key bound to vol-up and down
4
5
osd='yes'
6
inc=5
7
capvol='yes'
8
maxvol='200'
9
10
active_sink=`pacmd list-sinks |awk '/* index:/{print $3}'`
11-
        pactl set-sink-volume ${active_sink} -- +${inc}%
11+
limit=$(expr 100 - ${inc})
12
maxlimit=$(expr ${maxvol} - ${inc})
13
14
function volUp {
15
16
        preVol=`pacmd list-sinks |grep -A 15 'index: '${active_sink}'' |awk '/volume: 0:/{ print $3}'|sed s/.$//`
17
18
        if [ ${capvol} = 'yes' ]
19
        then
20
                if [ ${preVol} -le 100 -a ${preVol} -ge ${limit} ]
21
                then
22
                        pactl set-sink-volume ${active_sink} -- 100%
23
                elif [ ${preVol} -lt ${limit} ]
24
                then
25
                        pactl set-sink-volume ${active_sink} -- +${inc}%
26
                fi
27
        elif [ ${preVol} -le ${maxvol} -a ${preVol} -ge ${maxlimit} ]
28
        then
29
                pactl set-sink-volume ${active_sink} -- ${maxvol}%
30
        elif [ ${preVol} -lt ${maxlimit} ]
31
        then
32
                pactl set-sink-volume ${active_sink} -- +${inc}%
33
        fi
34
35
        curVol=`pacmd list-sinks |grep -A 15 'index: '${active_sink}'' |awk '/volume: 0:/{ print $3}'|sed s/.$//`
36
37
        if [ ${osd} = 'yes' ]
38
        then
39
                qdbus org.kde.kded /modules/kosd showVolume ${curVol} 0
40
        fi
41
42
}
43
44
function volDown {
45
46
        pactl set-sink-volume ${active_sink} -- -${inc}%
47
        curVol=`pacmd list-sinks |grep -A 15 'index: '${active_sink}'' |awk '/volume: 0:/{ print $3}'|sed s/.$//`
48
        if [ ${osd} = 'yes' ]
49
        then
50
                qdbus org.kde.kded /modules/kosd showVolume ${curVol} 0
51
        fi
52
53
}
54
55
function volMute {
56
57
        case "$1" in
58
                mute)
59
                        pactl set-sink-mute ${active_sink} 1
60
                        curVol=0
61
                        status=1
62
                ;;
63
                unmute)
64
                        pactl set-sink-mute ${active_sink} 0
65
                        curVol=`pacmd list-sinks |grep -A 15 'index: '${active_sink}'' |awk '/volume: 0:/{ print $3}'|sed s/.$//`
66
                        status=0
67
                ;;
68
        esac
69
70
        if [ ${osd} = 'yes' ]
71
        then
72
                qdbus org.kde.kded /modules/kosd showVolume ${curVol} ${status}
73
        fi
74
75
}
76
77
function volMuteStatus {
78
79
        curStatus=`pacmd list-sinks |grep -A 15 'index: '${active_sink}'' |awk '/muted/{ print $2}'`
80
81
        if [ ${curStatus} = 'yes' ]
82
        then
83
                volMute unmute
84
        else
85
                volMute mute
86
        fi
87
88
}
89
90
case "$1" in
91
        --up)
92
                volUp
93
        ;;
94
        --down)
95
                volDown
96
        ;;
97
        --togmute)
98
                volMuteStatus
99
        ;;
100
        --mute)
101
                volMute mute
102
        ;;
103
        --unmute)
104
                volMute unmute
105
        ;;
106
esac