33 lines
694 B
Bash
Executable File
33 lines
694 B
Bash
Executable File
#!/bin/bash -e
|
|
|
|
json="$(pw-dump)"
|
|
|
|
function getdevs() {
|
|
jq -r ".[] | select(.info.props.\"media.class\" == \"Audio/$1\") | \"\(.id) \(.info.props.\"node.nick\")\"" <<< "$json"
|
|
}
|
|
|
|
function getdefault() {
|
|
jq -r ".[].metadata | select(.) | .[] | select(.key == \"default.configured.audio.$1\") | .value.name" <<< "$json"
|
|
}
|
|
|
|
function getnick() {
|
|
jq -r ".[].info.props | select(.\"node.name\" == \"$1\") | .\"node.nick\"" <<< "$json"
|
|
}
|
|
|
|
case "$1" in
|
|
s)
|
|
CLASS=Sink
|
|
;;
|
|
m)
|
|
CLASS=Source
|
|
;;
|
|
*)
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
read -r id <<< "$(getdevs "$CLASS" | dmenu -l 16)"
|
|
wpctl set-default "$id"
|
|
|
|
kill -34 "$(cat "$XDG_RUNTIME_DIR/sbar/pid")"
|