47 lines
1.3 KiB
Bash
Executable File
47 lines
1.3 KiB
Bash
Executable File
#! /bin/bash
|
|
|
|
FF_STREAM=$(wpctl status | grep "Firefox *$" | awk -F. '{ print $1 }')
|
|
MUSIC_STREAM=$(wpctl status | grep "Chromium *$" | awk -F. '{ print $1 }')
|
|
SPEAKER_SINK=$(wpctl status | grep "Family 17h/19h HD Audio Controller Speaker + Headphones \[" | awk -F'[. ]' '{ print $7 }')
|
|
|
|
function setvol {
|
|
VOL=$(echo "scale=2;$2/100" | bc -l)
|
|
wpctl set-volume $1 "$VOL"
|
|
}
|
|
|
|
aseqdump -p 28 | \
|
|
while IFS=" ," read src ev1 ev2 ch label1 data1 label2 data2; do
|
|
case "$data1" in
|
|
# slider music
|
|
"3")
|
|
setvol $MUSIC_STREAM $data2
|
|
;;
|
|
# slider firefox
|
|
"7")
|
|
setvol $FF_STREAM $data2
|
|
;;
|
|
# Knob speakers
|
|
"16")
|
|
setvol $SPEAKER_SINK $data2
|
|
;;
|
|
# Play and Stop buttons
|
|
"41"|"42")
|
|
xdotool key XF86AudioPlay
|
|
;;
|
|
# Previous song
|
|
"43")
|
|
if [ $data2 -eq 127 ]; then xdotool key XF86AudioPrev; fi
|
|
;;
|
|
# Next song
|
|
"44")
|
|
if [ $data2 -eq 127 ]; then xdotool key XF86AudioNext; fi
|
|
;;
|
|
# Restart script
|
|
"46")
|
|
if [ $data2 -eq 127 ]; then systemctl --user restart midi.service; fi
|
|
;;
|
|
# Mute music
|
|
"51")
|
|
;;
|
|
esac
|
|
done |